Sha256: 08bd7e555cb38345928b886dcfa7815aec63e4069a6a3ca36237336f7f614978
Contents?: true
Size: 686 Bytes
Versions: 23
Compression:
Stored size: 686 Bytes
Contents
# Extend Hash to provide following features: # - create by SuperHash.new(<hash>) # - can access values by method, instead of [] # -------------------------------------------- # class CityGrid module Abstraction class SuperHash < Hash def self.new attrs self[attrs] end def method_missing sym, *args, &block val = self[sym] || self[sym.to_s] # create new SuperHash if value is hash if val.is_a? Hash SuperHash.new val elsif val.is_a? Array SuperArray.new val elsif keys.include?(sym) || keys.include?(sym.to_s) val else super end end end end end
Version data entries
23 entries across 23 versions & 1 rubygems