Module: Io::Flow::V0::HttpClient::Preconditions
- Defined in:
- lib/flow_commerce/flow_api_v0_client.rb
Class Method Summary collapse
- .assert_boolean(field_name, value) ⇒ Object
- .assert_boolean_or_nil(field_name, value) ⇒ Object
-
.assert_class(field_name, value, klass) ⇒ Object
Asserts that value is not nill and is_?(klass).
- .assert_class_or_nil(field_name, value, klass) ⇒ Object
- .assert_collection_of_class(field_name, values, klass) ⇒ Object
-
.assert_empty_opts(opts) ⇒ Object
Throws an error if opts is not empty.
- .assert_hash_of_class(field_name, hash, klass) ⇒ Object
- .check_argument(expression, error_message = nil) ⇒ Object
- .check_not_blank(field_name, reference, error_message = nil) ⇒ Object
- .check_not_nil(field_name, reference, error_message = nil) ⇒ Object
- .check_state(expression, error_message = nil) ⇒ Object
-
.require_keys(hash, fields, error_prefix = nil) ⇒ Object
Requires that the provided hash has the specified keys.
Class Method Details
.assert_boolean(field_name, value) ⇒ Object
34084 34085 34086 34087 34088 34089 34090 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34084 def Preconditions.assert_boolean(field_name, value) Preconditions.check_not_nil('field_name', field_name) Preconditions.check_not_nil('value', value, "Value for %s cannot be nil. Expected an instance of TrueClass or FalseClass" % field_name) Preconditions.check_state(value.is_a?(TrueClass) || value.is_a?(FalseClass), "Value for #{field_name} is of type[#{value.class}] - class[TrueClass or FalseClass] is required. value[#{value.inspect.to_s}]") value end |
.assert_boolean_or_nil(field_name, value) ⇒ Object
34092 34093 34094 34095 34096 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34092 def Preconditions.assert_boolean_or_nil(field_name, value) if !value.nil? Preconditions.assert_boolean(field_name, value) end end |
.assert_class(field_name, value, klass) ⇒ Object
Asserts that value is not nill and is_?(klass). Returns value. Common use is
amount = Preconditions.assert_class(‘amount’, amount, BigDecimal)
34069 34070 34071 34072 34073 34074 34075 34076 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34069 def Preconditions.assert_class(field_name, value, klass) Preconditions.check_not_nil('field_name', field_name) Preconditions.check_not_nil('klass', klass) Preconditions.check_not_nil('value', value, "Value for %s cannot be nil. Expected an instance of class %s" % [field_name, klass.name]) Preconditions.check_state(value.is_a?(klass), "Value for #{field_name} is of type[#{value.class}] - class[#{klass}] is required. value[#{value.inspect.to_s}]") value end |
.assert_class_or_nil(field_name, value, klass) ⇒ Object
34078 34079 34080 34081 34082 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34078 def Preconditions.assert_class_or_nil(field_name, value, klass) if !value.nil? Preconditions.assert_class(field_name, value, klass) end end |
.assert_collection_of_class(field_name, values, klass) ⇒ Object
34098 34099 34100 34101 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34098 def Preconditions.assert_collection_of_class(field_name, values, klass) Preconditions.assert_class(field_name, values, Array) values.each { |v| Preconditions.assert_class(field_name, v, klass) } end |
.assert_empty_opts(opts) ⇒ Object
Throws an error if opts is not empty. Useful when parsing arguments to a function
34049 34050 34051 34052 34053 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34049 def Preconditions.assert_empty_opts(opts) if !opts.empty? raise PreconditionException.new("Invalid opts: #{opts.keys.inspect}\n#{opts.inspect}") end end |
.assert_hash_of_class(field_name, hash, klass) ⇒ Object
34103 34104 34105 34106 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34103 def Preconditions.assert_hash_of_class(field_name, hash, klass) Preconditions.assert_class(field_name, hash, Hash) values.each { |k, v| Preconditions.assert_class(field_name, v, klass) } end |
.check_argument(expression, error_message = nil) ⇒ Object
34019 34020 34021 34022 34023 34024 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34019 def Preconditions.check_argument(expression, =nil) if !expression raise PreconditionException.new( || "check_argument failed") end nil end |
.check_not_blank(field_name, reference, error_message = nil) ⇒ Object
34040 34041 34042 34043 34044 34045 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34040 def Preconditions.check_not_blank(field_name, reference, =nil) if reference.to_s.strip == "" raise PreconditionException.new( || "argument for %s cannot be blank" % field_name) end reference end |
.check_not_nil(field_name, reference, error_message = nil) ⇒ Object
34033 34034 34035 34036 34037 34038 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34033 def Preconditions.check_not_nil(field_name, reference, =nil) if reference.nil? raise PreconditionException.new( || "argument for %s cannot be nil" % field_name) end reference end |
.check_state(expression, error_message = nil) ⇒ Object
34026 34027 34028 34029 34030 34031 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34026 def Preconditions.check_state(expression, =nil) if !expression raise PreconditionException.new( || "check_state failed") end nil end |
.require_keys(hash, fields, error_prefix = nil) ⇒ Object
Requires that the provided hash has the specified keys.
34057 34058 34059 34060 34061 34062 34063 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 34057 def Preconditions.require_keys(hash, fields, error_prefix=nil) missing = fields.select { |f| !hash.has_key?(f) } if !missing.empty? msg = "Missing required fields: " + missing.join(", ") raise PreconditionException.new(error_prefix.empty? ? msg : "#{error_prefix}: #{msg}") end end |