Sha256: 21824b29fbe93f56e041db1bba1831fa8a240db6634e050f9c235c8dc1ac8661
Contents?: true
Size: 923 Bytes
Versions: 2
Compression:
Stored size: 923 Bytes
Contents
module ObjectAttorney module Delegation def zuper_method(method_name, *args) self.superclass.send(method_name, *args) if self.superclass.respond_to?(method_name) end def properties(*_properties) _properties.each { |property| delegate_property(property) } end def getters(*_getters) _getters.each { |getter| delegate_getter(getter) } end def setters(*_setters) _setters.each { |getter| delegate_setter(getter) } end protected ##################### PROTECTED ##################### def delegate_property(property) delegate_getter(property) delegate_setter(property) end def delegate_getter(getter) delegate getter, to: :represented_object add_exposed_getters(getter) end def delegate_setter(setter) delegate "#{setter}=", to: :represented_object add_exposed_setters(setter) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
object_attorney-2.8.1 | lib/object_attorney/delegation.rb |
object_attorney-2.8.0 | lib/object_attorney/delegation.rb |