Class: AddressSimilarityParameters
- Inherits:
-
Object
- Object
- AddressSimilarityParameters
- Defined in:
- lib/address_similarity_parameters.rb
Overview
This class encapsulates parameters that are needed for address-similarity in Analytics API.
Instance Attribute Summary collapse
-
#address1 ⇒ Object
Address to be compared to address2.
-
#address2 ⇒ Object
Address to be compared to address1.
-
#parameters ⇒ Object
Parameters map sent to the API (optional, should be a hash).
Instance Method Summary collapse
-
#initialize(address1, address2, address_parameters = nil) ⇒ AddressSimilarityParameters
constructor
:notnew:.
-
#load_params ⇒ Object
Converts this class to Hash with its keys in lower CamelCase.
-
#to_hash ⇒ Object
Converts this class to Hash.
-
#validate_params ⇒ Object
Validates the parameters by checking if address1 and address2 are instances of AddressParameters or Strings.
Constructor Details
#initialize(address1, address2, address_parameters = nil) ⇒ AddressSimilarityParameters
:notnew:
17 18 19 20 21 |
# File 'lib/address_similarity_parameters.rb', line 17 def initialize(address1, address2, address_parameters = nil) # :notnew: @address1 = address1 @address2 = address2 @parameters = address_parameters end |
Instance Attribute Details
#address1 ⇒ Object
Address to be compared to address2
10 11 12 |
# File 'lib/address_similarity_parameters.rb', line 10 def address1 @address1 end |
#address2 ⇒ Object
Address to be compared to address1
12 13 14 |
# File 'lib/address_similarity_parameters.rb', line 12 def address2 @address2 end |
#parameters ⇒ Object
Parameters map sent to the API (optional, should be a hash)
15 16 17 |
# File 'lib/address_similarity_parameters.rb', line 15 def parameters @parameters end |
Instance Method Details
#load_params ⇒ Object
Converts this class to Hash with its keys in lower CamelCase.
Returns the new Hash.
39 40 41 42 43 44 |
# File 'lib/address_similarity_parameters.rb', line 39 def load_params validate_params to_hash .compact .transform_keys { |key| key.to_s.split('_').map(&:capitalize).join.sub!(/\D/, &:downcase) } end |
#to_hash ⇒ Object
Converts this class to Hash.
Returns the new Hash.
49 50 51 52 53 54 55 |
# File 'lib/address_similarity_parameters.rb', line 49 def to_hash { address1: @address1.is_a?(AddressParameter) ? @address1.load_param : @address1, address2: @address2.is_a?(AddressParameter) ? @address2.load_param : @address2, parameters: @parameters } end |
#validate_params ⇒ Object
Validates the parameters by checking if address1 and address2 are instances of AddressParameters or Strings.
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/address_similarity_parameters.rb', line 25 def validate_params a1_msg = 'address1 option can only be an instance of an AddressParameter or a String' raise BadRequestError.new(a1_msg) if [String, AddressParameter].none? { |clazz| @address1.is_a? clazz } a2_msg = 'address2 option can only be an instance of an AddressParameter or a String' raise BadRequestError.new(a2_msg) if [String, AddressParameter].none? { |clazz| @address2.is_a? clazz } opt_msg = 'parameters can only be an instance of a Hash' raise BadRequestError.new(opt_msg) if @parameters && !(@parameters.is_a? Hash) end |