Class: Class

Inherits:
Object show all
Defined in:
lib/core_ext.rb

Instance Method Summary collapse

Instance Method Details

#inherited_accessor(accessor, default = nil) ⇒ Object



76
77
78
79
80
81
82
83
84
85
# File 'lib/core_ext.rb', line 76

def inherited_accessor(accessor, default = nil)
  instance_eval "    class << self; attr_writer :\#{accessor}; end\n    @\#{accessor} = default\n\n    def \#{accessor}\n      @\#{accessor} ||= superclass.send(:\#{accessor}).dup\n    end\n  RUBY\nend\n", __FILE__, __LINE__ + 1

#inherited_property(accessor, default = nil) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/core_ext.rb', line 48

def inherited_property(accessor, default = nil)
  instance_eval "    @\#{accessor} = default\n\n    def set_\#{accessor}(value)\n      @\#{accessor} = value\n    end\n    alias \#{accessor} set_\#{accessor}\n\n    def get_\#{accessor}\n      return @\#{accessor} if instance_variable_defined?(:@\#{accessor})\n      superclass.send(:get_\#{accessor})\n    end\n  RUBY\n\n  # @path = default\n  #\n  # def set_path(value)\n  #   @path = value\n  # end\n  # alias_method path, set_path\n\n  # def get_path\n  #   return @path if instance_variable_defined?(:path)\n  #   superclass.send(:path)\n  # end\nend\n", __FILE__, __LINE__ + 1