Module: Mongo::Options::Mapper
Overview
Utility class for various options mapping behavior.
Instance Method Summary collapse
-
#transform(options, mappings) ⇒ Hash
Transforms the provided options to a new set of options given the provided mapping.
-
#transform_documents(options, mappings, document = BSON::Document.new) ⇒ BSON::Document
Transforms the provided options to a new set of options given the provided mapping.
-
#transform_keys_to_strings(options) ⇒ Hash
Coverts all the keys of the options to strings.
-
#transform_keys_to_symbols(options) ⇒ Hash
Coverts all the keys of the options to symbols.
-
#transform_values_to_strings(options) ⇒ Hash
Coverts all the symbol values to strings.
Instance Method Details
#transform(options, mappings) ⇒ Hash
Transforms the provided options to a new set of options given the provided mapping.
Options which are not present in the provided mapping are returned unmodified.
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/mongo/options/mapper.rb', line 39 def transform(, mappings) map = transform_keys_to_strings(mappings) opts = transform_keys_to_strings() opts.reduce({}) do |transformed, (key, value)| if map[key] transformed[map[key]] = value else transformed[key] = value end transformed end end |
#transform_documents(options, mappings, document = BSON::Document.new) ⇒ BSON::Document
Transforms the provided options to a new set of options given the provided mapping. Expects BSON::Documents in and out so no explicit string conversion needs to happen.
66 67 68 69 70 71 72 |
# File 'lib/mongo/options/mapper.rb', line 66 def transform_documents(, mappings, document = BSON::Document.new) .reduce(document) do |transformed, (key, value)| name = mappings[key] transformed[name] = value if name && !value.nil? transformed end end |
#transform_keys_to_strings(options) ⇒ Hash
Coverts all the keys of the options to strings.
84 85 86 87 88 89 |
# File 'lib/mongo/options/mapper.rb', line 84 def transform_keys_to_strings() .reduce({}) do |transformed, (key, value)| transformed[key.to_s] = value transformed end end |
#transform_keys_to_symbols(options) ⇒ Hash
Coverts all the keys of the options to symbols.
101 102 103 104 105 106 |
# File 'lib/mongo/options/mapper.rb', line 101 def transform_keys_to_symbols() .reduce({}) do |transformed, (key, value)| transformed[key.to_sym] = value transformed end end |
#transform_values_to_strings(options) ⇒ Hash
Coverts all the symbol values to strings.
118 119 120 121 122 123 |
# File 'lib/mongo/options/mapper.rb', line 118 def transform_values_to_strings() .reduce({}) do |transformed, (key, value)| transformed[key] = value.is_a?(Symbol) ? value.to_s : value transformed end end |