2016-03-25 14:50:22 +03:00
|
|
|
module Devops
|
|
|
|
|
module Helpers
|
|
|
|
|
class ResultObject
|
2016-03-28 00:16:11 +03:00
|
|
|
attr_reader :code, :reason
|
2016-03-25 14:50:22 +03:00
|
|
|
|
|
|
|
|
def initialize(code)
|
|
|
|
|
@code = code
|
2016-03-28 00:16:11 +03:00
|
|
|
@reason = self.class.result_codes.key(@code) || :unknown_error
|
2016-03-25 14:50:22 +03:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def ok?
|
|
|
|
|
@code == 0
|
|
|
|
|
end
|
|
|
|
|
|
2016-03-27 23:37:57 +03:00
|
|
|
def failed?
|
|
|
|
|
!ok?
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
class << self
|
|
|
|
|
def result_codes
|
|
|
|
|
@result_codes || {ok: 0}
|
|
|
|
|
end
|
2016-03-25 14:50:22 +03:00
|
|
|
|
2016-03-27 23:37:57 +03:00
|
|
|
def code_of_reason(reason)
|
|
|
|
|
result_codes.fetch(reason)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def from_reason(reason)
|
|
|
|
|
new(code_of_reason(reason))
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
|
|
# defines methods like :bootstrap_error?
|
|
|
|
|
def set_result_codes(new_result_codes)
|
2016-04-15 11:08:20 +03:00
|
|
|
@result_codes = new_result_codes.merge(ok: 0)
|
2016-03-27 23:37:57 +03:00
|
|
|
@result_codes.each do |pretendent_reason, pretendent_code|
|
|
|
|
|
define_method "#{pretendent_reason}?" do
|
|
|
|
|
code == pretendent_code
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
2016-03-25 14:50:22 +03:00
|
|
|
end
|
|
|
|
|
|
2016-03-27 23:37:57 +03:00
|
|
|
|
2016-03-25 14:50:22 +03:00
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|