暂无描述

hash.rb 313B

12345678910111213141516
  1. class Hash
  2. def except(*blacklist)
  3. reject {|key, value| blacklist.include?(key) }
  4. end
  5. def only(*whitelist)
  6. reject {|key, value| !whitelist.include?(key) }
  7. end
  8. def smash(prefix = nil)
  9. inject({}) do |acc, (k, v)|
  10. Hash === v ? acc.merge(v.smash(k)) : acc.merge(k => v)
  11. end
  12. end
  13. end