Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.36 KB | None | 0 0
  1. module HashFill
  2. def fill!(*keys, val)
  3. raise 'at least one hash key must be listed' if keys.empty?
  4. nest = self
  5. keys[0...-1].each do |key|
  6. nest[key] = {} unless nest[key].is_a? Hash
  7. nest = nest[key]
  8. end
  9.  
  10. nest[keys.last] = val
  11. end
  12. end
  13.  
  14. Hash.include HashFill
  15.  
  16. h = {}
  17. # {}
  18.  
  19. h.fill! :foo, :bar, :baz
  20. # :baz
  21. h
  22. # {:foo=>{:bar=>:baz}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement