class NameTranslationParameters
This class encapsulates parameters that are needed for name-translation in Rosette API.
Attributes
Name's entity type (PERSON, LOCATION, ORGANIZATION) (optional)
genre to categorize the input data
Name to translate
Rosette API options (optional, should be a hash)
ISO 693-3 code of the name's native language the name originates in (optional)
ISO 693-3 code of the name's language of use (optional)
ISO 15924 code of the name's script (optional)
ISO 639-3 code of the translation language
Transliteration scheme for the translation (optional)
ISO 15924 code of name's script (optional)
Public Instance Methods
Converts this class to Hash with its keys in lower CamelCase.
Returns the new Hash.
# File lib/name_translation_parameters.rb, line 65 def load_params validate_params to_hash .select { |_key, value| value } .map { |key, value| [key.to_s.split('_').map(&:capitalize).join.sub!(/\D/, &:downcase), value] } .to_h end
Converts this class to Hash.
Returns the new Hash.
# File lib/name_translation_parameters.rb, line 76 def to_hash { entity_type: @entity_type, genre: @genre, name: @name, options: @rosette_options, source_language_of_origin: @source_language_of_origin, source_language_of_use: @source_language_of_use, source_script: @source_script, target_language: @target_language, target_scheme: @target_scheme, target_script: @target_script } end
Validates the parameters by checking if rosette_options
is an instance of a Hash.
# File lib/name_translation_parameters.rb, line 55 def validate_params msg = 'rosette_options can only be an instance of a Hash' if @rosette_options raise BadRequestError.new(msg) unless @rosette_options.is_a? Hash end end
Protected Instance Methods
# File lib/name_translation_parameters.rb, line 30 def initialize(name, target_language, options = {}) #:notnew: options = { entity_type: nil, genre: nil, rosette_options: nil, source_language_of_origin: nil, source_language_of_use: nil, source_script: nil, target_scheme: nil, target_script: nil }.update options @name = name @entity_type = options[:entity_type] @genre = options[:genre] @rosette_options = options[:rosette_options] @source_language_of_origin = options[:source_language_of_origin] @source_language_of_use = options[:source_language_of_use] @source_script = options[:source_script] @target_language = target_language @target_scheme = options[:target_scheme] @target_script = options[:target_script] end