Sha256: fa90278d03261d15e29ed974bc9cd50f754557c164edfcf84fce06a8ca917027

Contents?: true

Size: 650 Bytes

Versions: 1

Compression:

Stored size: 650 Bytes

Contents

class Hash

  unless self.method_defined?(:extract!)
    #Imported from Rails 3
    def extract!(*keys)
      result = {}
      keys.each { |key| result[key] = delete(key) }
      result
    end
  end


  def map_key_value(key_method, value_method = nil)
    value_method ||= key_method
    each.with_object({}) do |(k,v), new_hash|
      new_hash[k.send(key_method)] = v.send(value_method)
    end
  end


  def map_key(method)
    each.with_object({}) do |(k,v), new_hash|
      new_hash[k.send(method)] = v
    end
  end


  def map_value(method)
    each.with_object({}) do |(k,v), new_hash|
      new_hash[k] = v.send(method)
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ruby_core_extensions-0.0.1 lib/ruby_core_extensions/hash.rb