Skip to content

Instantly share code, notes, and snippets.

@apeiros
Created March 13, 2014 12:13
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save apeiros/9527275 to your computer and use it in GitHub Desktop.
Implement Hash#map_keys, #map_keys!, #map_values, #map_values!, #map_pairs and #map_pairs!
class Hash
def map_keys
map_pairs { |key, value| [yield(key), value] }
end
def map_keys!
map_pairs! { |key, value| [yield(key), value] }
end
def map_values
map_pairs { |key, value| [key, yield(value)] }
end
def map_values!
map_pairs! { |key, value| [key, yield(value)] }
end
def map_pairs(&block)
Hash[map(&block)]
end
def map_pairs!(&block)
replace(map_pairs(&block))
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment