class Class
A dumbed down version of ActiveSupport's Class#class_attribute
helper.
Public Instance Methods
class_attribute(*attrs)
click to toggle source
# File lib/sucker_punch/core_ext.rb, line 8 def class_attribute(*attrs) instance_writer = true attrs.each do |name| class_eval <<-RUBY, __FILE__, __LINE__ + 1 def self.#{name}() nil end def self.#{name}?() !!#{name} 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 def #{name} defined?(@#{name}) ? @#{name} : self.class.#{name} end def #{name}? !!#{name} end RUBY attr_writer name if instance_writer end end
Private Instance Methods
singleton_class?()
click to toggle source
# File lib/sucker_punch/core_ext.rb, line 45 def singleton_class? ancestors.first != self end