Module: Io::Flow::V0::HttpClient::Preconditions

Defined in:
lib/flow_commerce/flow_api_v0_client.rb

Class Method Summary collapse

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, error_message=nil)
  if !expression
    raise PreconditionException.new(error_message || "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, error_message=nil)
  if reference.to_s.strip == ""
    raise PreconditionException.new(error_message || "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, error_message=nil)
  if reference.nil?
    raise PreconditionException.new(error_message || "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, error_message=nil)
  if !expression
    raise PreconditionException.new(error_message || "check_state failed")
  end
  nil
end

.require_keys(hash, fields, error_prefix = nil) ⇒ Object

Requires that the provided hash has the specified keys.

Parameters:

  • fields

    A list of symbols



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