Guest User

Untitled

a guest
Jul 17th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.49 KB | None | 0 0
  1. # lazy_hash.rb
  2. module LazyHash
  3. class << self
  4. def lazy_add(hash, key, value, pre = nil)
  5. skeys = key.split(".")
  6. f = skeys.shift
  7. if skeys.empty?
  8. pre.nil? ? hash.send("[]=", f, value) : pre.send("[]=", f, value)
  9. else
  10. pre = pre.nil? ? hash.send("[]", f) : pre.send("[]", f)
  11. lazy_add(hash, skeys.join("."), value, pre)
  12. end
  13. end
  14.  
  15. def build_hash
  16. lazy = lambda { |h,k| h[k] = Hash.new(&lazy) }
  17. Hash.new(&lazy)
  18. end
  19. end
  20. end
Add Comment
Please, Sign In to add comment