class Hash

Public Instance Methods

clean() click to toggle source
# File lib/awein/hash.rb, line 18
def clean
  each do |k, v|
    if v.is_a?(Hash)
      v.clean
    elsif v.to_s.empty?
      delete(k)
    end
  end
end
evaluate(*args) click to toggle source
# File lib/awein/hash.rb, line 2
def evaluate(*args)
  options = {:default => nil}.merge(args.last.is_a?(Hash) ? args.pop : {})
  target = self # Initial target is self.
  while target && key = args.shift
    target = target[key]
  end

  return target if target
  return options[:default]
end
get(*keys) click to toggle source
# File lib/awein/hash.rb, line 13
def get(*keys)
  return nil if keys.blank?
  self.fetch keys.shift, self.get(*keys)
end
symbolize_keys_recursive() click to toggle source
# File lib/awein/hash.rb, line 28
def symbolize_keys_recursive
  inject({}) do |options, (key, value)|
    value = value.symbolize_keys_recursive if value.instance_of? Hash
    value = value.symbolize_keys_recursive if value.instance_of? Array
    options[key.to_sym || key] = value
    options
  end
end