Sha256: 98fb215a2b6ec1be522769fa7e292b0e729d36737a3830e09be23fec245900f4
Contents?: true
Size: 582 Bytes
Versions: 10
Compression:
Stored size: 582 Bytes
Contents
class Hash # Define a fallback object for #fetch and #[]. # # f = Hash[:b=>2] # h = Hash[:a=>1].having_fallback(f) # h[:b] => 2 def having_fallback(parent=nil) @fallback = parent unless @fallsback def self.[](key) return @fallback[key] if @fallback and not key?(key) rescue super super end def self.fetch(key, *args, &blk) return @fallback.fetch(key, *args, &blk) if @fallback and not key?(key) rescue super super end @fallsback = true end self end attr_accessor :fallback end
Version data entries
10 entries across 10 versions & 1 rubygems