Skip to content

Instantly share code, notes, and snippets.

@groeneman
Created November 21, 2014 19:43
Show Gist options
  • Save groeneman/c76bb7e6437923c15278 to your computer and use it in GitHub Desktop.
Save groeneman/c76bb7e6437923c15278 to your computer and use it in GitHub Desktop.
Hash#megamap
class Hash
def mega_map(key_transform, value_transform)
new_keys = keys.map(&key_transform)
new_values = values.map(&value_transform)
Hash[new_keys.zip(new_values)]
end
end
hash = {"succeeded"=>"node2", "flagged"=>"node3"}
transform = ->(v){v.to_sym}
hash.mega_map(transform, transform)
# => {:succeeded=>:node2, :flagged=>:node3}
@groeneman
Copy link
Author

I dream of this

@onlyverysmall
Copy link

👍 A++ would use again

@JKring
Copy link

JKring commented Nov 21, 2014

So fancy! Very cool passage of the transform lambda into map.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment