27 lines
582 B
Ruby
27 lines
582 B
Ruby
class Class # :nodoc:
|
|
def class_inheritable_option(sym, default_value=nil)
|
|
write_inheritable_attribute sym, default_value
|
|
class_eval <<-EOS
|
|
def self.#{sym}(value=nil)
|
|
if !value.nil?
|
|
write_inheritable_attribute(:#{sym}, value)
|
|
else
|
|
read_inheritable_attribute(:#{sym})
|
|
end
|
|
end
|
|
|
|
def self.#{sym}=(value)
|
|
write_inheritable_attribute(:#{sym}, value)
|
|
end
|
|
|
|
def #{sym}
|
|
self.class.#{sym}
|
|
end
|
|
|
|
def #{sym}=(value)
|
|
self.class.#{sym} = value
|
|
end
|
|
EOS
|
|
end
|
|
end
|