Sha256: 5e8b68a4e34c2ffbd94c7dc5118671c2d6cbf2ea727d2118c84ac6bbbd3ad2a5
Contents?: true
Size: 1.01 KB
Versions: 13
Compression:
Stored size: 1.01 KB
Contents
module ObjectAttorney module Delegation module MissingMethods def method_missing(method, *args, &block) represented_object.send(method, *args, &block) end end 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_attribute_key getter end def delegate_setter(setter) delegate "#{setter}=", to: :represented_object end end end
Version data entries
13 entries across 13 versions & 1 rubygems