module Mongo::Options::Mapper

Utility class for various options mapping behavior.

@since 2.0.0

Public Instance Methods

transform(options, mappings) click to toggle source

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.

@example Transform the options.

Mapper.transform({ name: 1 }, { :name => :nombre })

@param [ Hash ] options The options to transform @param [ Hash ] mappings The key mappings.

@return [ Hash ] The transformed options.

@since 2.0.0

# File lib/mongo/options/mapper.rb, line 39
def transform(options, mappings)
  map = transform_keys_to_strings(mappings)
  opts = transform_keys_to_strings(options)
  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) click to toggle source

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.

@example Transform the options.

Mapper.transform_documents({ name: 1 }, { :name => :nombre })

@param [ BSON::Document ] options The options to transform @param [ BSON::Document ] mappings The key mappings. @param [ BSON::Document ] document The output document.

@return [ BSON::Document ] The transformed options.

@since 2.0.0

# File lib/mongo/options/mapper.rb, line 66
def transform_documents(options, mappings, document = BSON::Document.new)
  options.reduce(document) do |transformed, (key, value)|
    name = mappings[key]
    transformed[name] = value if name && !value.nil?
    transformed
  end
end
transform_keys_to_strings(options) click to toggle source

Coverts all the keys of the options to strings.

@example Convert all option keys to strings.

Mapper.transform({ :name => 1 })

@param [ Hash ] options The options to transform.

@return [ Hash ] The transformed options.

@since 2.0.0

# File lib/mongo/options/mapper.rb, line 84
def transform_keys_to_strings(options)
  options.reduce({}) do |transformed, (key, value)|
    transformed[key.to_s] = value
    transformed
  end
end
transform_keys_to_symbols(options) click to toggle source

Coverts all the keys of the options to symbols.

@example Convert all option keys to symbols.

Mapper.transform({ 'name' => 1 })

@param [ Hash ] options The options to transform.

@return [ Hash ] The transformed options.

@since 2.2.2

# File lib/mongo/options/mapper.rb, line 101
def transform_keys_to_symbols(options)
  options.reduce({}) do |transformed, (key, value)|
    transformed[key.to_sym] = value
    transformed
  end
end
transform_values_to_strings(options) click to toggle source

Coverts all the symbol values to strings.

@example Convert all option symbol values to strings.

Mapper.transform({ :name => 1 })

@param [ Hash ] options The options to transform.

@return [ Hash ] The transformed options.

@since 2.0.0

# File lib/mongo/options/mapper.rb, line 118
def transform_values_to_strings(options)
  options.reduce({}) do |transformed, (key, value)|
    transformed[key] = value.is_a?(Symbol) ? value.to_s : value
    transformed
  end
end