class Module

Public Instance Methods

attr_class(*attributes) click to toggle source

Define static attributes on a class.

Example:

>> class BaseTest
>>   attr_class :name
>> end
>>
>> class Test < BaseTest
>>   name "Test"
>> end
>>
>> test = Test.new
>> test.name
=> "Test"
# File lib/freshen/helpers/module.rb, line 17
        def attr_class(*attributes)
                attributes.each do |attribute|
                        module_eval <<-EOS
                                class << self
                                        def #{attribute}(val=nil)
                                                val.nil? ? @#{attribute} : @#{attribute} = val
                                        end
                                end
                                
                                def #{attribute}
                                        self.class.#{attribute}
                                end
                        EOS
                end
        end