class MarkMapper::Normalizers::OptionsHashValue
Public Class Methods
new(args = {})
click to toggle source
Public: Initialize an OptionsHashValue
.
args - The hash of arguments (default: {})
:key_normalizer - The key normalizer to use, must respond to call :value_normalizers - Hash where key is name of options hash key to normalize and value is what should be used to normalize the value accordingly (must respond to call). Allows adding normalizers for new keys and overriding existing default normalizers.
Examples
MarkMapper::Normalizers::OptionsHashValue.new({ :key_normalizer => lambda { |key| key}, # key normalizer must responds to call :value_normalizers => { :new_key => lambda { |key| key.to_s.upcase }, # add normalizer for :new_key :fields => lambda { |key| key }, # override normalizer for fields to one that does nothing } })
Returns the duplicated String
.
# File lib/mark_mapper/normalizers/options_hash_value.rb, line 31 def initialize(args = {}) @key_normalizer = args.fetch(:key_normalizer) { raise ArgumentError, "Missing required key :key_normalizer" } @value_normalizers = { :fields => default_fields_value_normalizer, :sort => default_sort_value_normalizer, :limit => default_limit_value_normalizer, :skip => default_skip_value_normalizer, } if (value_normalizers = args[:value_normalizers]) @value_normalizers.update(value_normalizers) end end
Public Instance Methods
call(key, value)
click to toggle source
Public: Returns value normalized for MarkLogic
key - The name of the key whose value is being normalized value - The value to normalize
Returns value normalized for MarkLogic.
# File lib/mark_mapper/normalizers/options_hash_value.rb, line 54 def call(key, value) if (value_normalizer = @value_normalizers[key]) value_normalizer.call(value) else value end end
default_fields_value_normalizer()
click to toggle source
Private
# File lib/mark_mapper/normalizers/options_hash_value.rb, line 63 def default_fields_value_normalizer Normalizers::FieldsValue.new end
default_limit_value_normalizer()
click to toggle source
Private
# File lib/mark_mapper/normalizers/options_hash_value.rb, line 73 def default_limit_value_normalizer Normalizers::Integer.new end
default_skip_value_normalizer()
click to toggle source
Private
# File lib/mark_mapper/normalizers/options_hash_value.rb, line 78 def default_skip_value_normalizer Normalizers::Integer.new end
default_sort_value_normalizer()
click to toggle source
Private
# File lib/mark_mapper/normalizers/options_hash_value.rb, line 68 def default_sort_value_normalizer Normalizers::SortValue.new(:key_normalizer => Normalizers::HashKey.new({:id => :_id})) end