Sha256: 2c436e06eb3736d4935c308e15ade15d05ab8bd2351494d514203f72b7e0ec82

Contents?: true

Size: 652 Bytes

Versions: 1

Compression:

Stored size: 652 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.1.0 lib/ruby_core_extensions/hash.rb