Sha256: a4a31630d6da08536ea93ec76ad573196591c8845a364d063929d728c9fb78f2
Contents?: true
Size: 877 Bytes
Versions: 2
Compression:
Stored size: 877 Bytes
Contents
module RestCore class Clash Empty = Hash.new(&(l = lambda{|_,_|Hash.new(&l).freeze})).freeze attr_accessor :data def initialize data self.data = data end def [] k if data.key?(k) convert(data[k]) else Empty end end def == rhs if rhs.kind_of?(Clash) data == rhs.data else data == rhs end end private def convert value case value when Hash Clash.new(value) when Array value.map{ |ele| convert(ele) } else value end end def respond_to_missing? msg, include_private=false data.respond_to?(msg, include_private) end def method_missing msg, *args, &block if data.respond_to?(msg) data.public_send(msg, *args, &block) else super end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rest-core-4.0.1 | lib/rest-core/util/clash.rb |
rest-core-4.0.0 | lib/rest-core/util/clash.rb |