module Oat::ClassAttribute
Public Instance Methods
class_attribute(*attrs)
click to toggle source
# File lib/support/class_attribute.rb, line 3 def class_attribute(*attrs) attrs.each do |name| class_eval <<-RUBY, __FILE__, __LINE__ + 1 def self.#{name}() nil end def self.#{name}=(val) singleton_class.class_eval do define_method(:#{name}) { val } end if singleton_class? class_eval do def #{name} defined?(@#{name}) ? @#{name} : singleton_class.#{name} end end end val end RUBY end end
Private Instance Methods
singleton_class()
click to toggle source
# File lib/support/class_attribute.rb, line 29 def singleton_class class << self self end end
singleton_class?()
click to toggle source
# File lib/support/class_attribute.rb, line 35 def singleton_class? ancestors.first != self end