class A9n::Hash

Public Class Methods

deep_prepare(hash, scope) click to toggle source
# File lib/a9n/ext/hash.rb, line 4
def deep_prepare(hash, scope)
  hash.inject({}) do |result, (key, value)|
    key_name = key.respond_to?(:to_sym) ? key.to_sym : key
    result[key_name] = get_value(key, value, scope)
    result
  end
end
merge(*items) click to toggle source
# File lib/a9n/ext/hash.rb, line 12
def merge(*items)
  return nil if items.compact.empty?

  items.compact.inject({}) { |sum, item| sum.merge!(item) }
end

Private Class Methods

get_value(key, value, scope) click to toggle source
# File lib/a9n/ext/hash.rb, line 20
def get_value(key, value, scope)
  if value.is_a?(::Hash)
    deep_prepare(value, scope).freeze
  elsif value.is_a?(Symbol) && value == :env
    A9n.env_var(scope.env_key_name(key), strict: A9n.strict?)
  else
    value.freeze
  end
end