Module: InheritableAccessors::InheritableSetAccessor::ClassMethods

Defined in:
lib/inheritable_accessors/inheritable_set_accessor.rb

Instance Method Summary collapse

Instance Method Details

#inheritable_set_accessor(name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/inheritable_accessors/inheritable_set_accessor.rb', line 6

def inheritable_set_accessor(name)
  name = name.to_s

  module_eval "    def self.inheritable_set?\n      true\n    end\n\n    def self.\#{name}\n      @__\#{name}__ ||= begin\n        if superclass.respond_to?(:inheritable_set?)\n          superclass.\#{name}.inherit_copy\n        else\n          ::InheritableAccessors::InheritableSet.new\n        end\n      end\n    end\n\n    def \#{name}\n      @__\#{name}__ ||= self.class.\#{name}.inherit_copy\n    end\n  METHODS\nend\n"