Sha256: 412eda5dec7844445b43d85b44978091952a81ff63512100ac5d91758763ebb0
Contents?: true
Size: 533 Bytes
Versions: 2
Compression:
Stored size: 533 Bytes
Contents
module HashDelegate class Accessor < Struct.new :klass def define_getter(key, hash) define_delegation key do data = self.send(hash) || {} data[key.to_s] || data[key.to_sym] end end def define_setter(key, hash) define_delegation "#{key}=" do |value| data = self.send(hash) || self.send("#{hash}=", {}) data[key.to_s] = value end end private def define_delegation(name, &block) klass.class_eval { define_method name, &block } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hash_delegate-0.0.5 | lib/hash_delegate/accessor.rb |
hash_delegate-0.0.4 | lib/hash_delegate/accessor.rb |