class AddressSimilarityParameters
This class encapsulates parameters that are needed for address-similarity in Analytics API.
Attributes
Address to be compared to address2
Address to be compared to address1
Parameters map sent to the API (optional, should be a hash)
Public Instance Methods
Source
# File 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
Converts this class to Hash with its keys in lower CamelCase.
Returns the new Hash.
Source
# File 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
Converts this class to Hash.
Returns the new Hash.
Source
# File 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
Validates the parameters by checking if address1 and address2 are instances of AddressParameters or Strings.
Protected Instance Methods
Source
# File address_similarity_parameters.rb, line 17 def initialize(address1, address2, address_parameters = nil) # :notnew: @address1 = address1 @address2 = address2 @parameters = address_parameters end