class NameSimilarityParameters
This class encapsulates parameters that are needed for name-similarity in Rosette API.
Attributes
genre[RW]
genre to categorize the input data
name1[RW]
Name to be compared to name2
name2[RW]
Name to be compared to name1
rosette_options[RW]
Rosette API options (optional, should be a hash)
Public Instance Methods
load_params()
click to toggle source
Converts this class to Hash with its keys in lower CamelCase.
Returns the new Hash.
# File name_similarity_parameters.rb, line 45 def load_params validate_params to_hash .compact .transform_keys { |key| key.to_s.split('_').map(&:capitalize).join.sub!(/\D/, &:downcase) } end
to_hash()
click to toggle source
Converts this class to Hash.
Returns the new Hash.
# File name_similarity_parameters.rb, line 55 def to_hash { genre: @genre, name1: @name1.is_a?(NameParameter) ? @name1.load_param : @name1, name2: @name2.is_a?(NameParameter) ? @name2.load_param : @name2, options: @rosette_options } end
validate_params()
click to toggle source
Validates the parameters by checking if name1 and name2 are instances of a String or NameParameter
.
# File name_similarity_parameters.rb, line 31 def validate_params n1_msg = 'name1 option can only be an instance of a String or NameParameter' raise BadRequestError.new(n1_msg) if [String, NameParameter].none? { |clazz| @name1.is_a? clazz } n2_msg = 'name2 option can only be an instance of a String or NameParameter' raise BadRequestError.new(n2_msg) if [String, NameParameter].none? { |clazz| @name2.is_a? clazz } opt_msg = 'rosette_options can only be an instance of a Hash' raise BadRequestError.new(opt_msg) if @rosette_options && !(@rosette_options.is_a? Hash) end
Protected Instance Methods
initialize(name1, name2, options = {})
click to toggle source
# File name_similarity_parameters.rb, line 18 def initialize(name1, name2, options = {}) # :notnew: options = { genre: nil, rosette_options: nil }.update options @genre = options[:genre] @name1 = name1 @name2 = name2 @rosette_options = options[:rosette_options] end