lib/medea/inheritable_attributes.rb in medea-0.2.3 vs lib/medea/inheritable_attributes.rb in medea-0.2.4

- old
+ new

@@ -1,31 +1,31 @@ -#This module allows for an attribute to be defined on a superclass and carry down into sub-classes with its default. -#Taken from http://railstips.org/blog/archives/2006/11/18/class-and-instance-variables-in-ruby/ - -module ClassLevelInheritableAttributes - def self.included(base) - base.extend(ClassMethods) - end - - module ClassMethods - def inheritable_attributes(*args) - #for some reason, in rails, @inheritable_attributes is set to be an empty hash here... - #check for this strange case and account for it. - @inheritable_attributes = [:inheritable_attributes] if @inheritable_attributes == {} || - @inheritable_attributes == nil - @inheritable_attributes += args - args.each do |arg| - class_eval %( - class << self; attr_accessor :#{arg} end - ) - end - @inheritable_attributes - end - - def inherited(subclass) - @inheritable_attributes.each do |inheritable_attribute| - instance_var = "@#{inheritable_attribute}" - subclass.instance_variable_set(instance_var, instance_variable_get(instance_var)) - end - end - end +#This module allows for an attribute to be defined on a superclass and carry down into sub-classes with its default. +#Taken from http://railstips.org/blog/archives/2006/11/18/class-and-instance-variables-in-ruby/ + +module ClassLevelInheritableAttributes + def self.included(base) + base.extend(ClassMethods) + end + + module ClassMethods + def inheritable_attributes(*args) + #for some reason, in rails, @inheritable_attributes is set to be an empty hash here... + #check for this strange case and account for it. + @inheritable_attributes = [:inheritable_attributes] if @inheritable_attributes == {} || + @inheritable_attributes == nil + @inheritable_attributes += args + args.each do |arg| + class_eval %( + class << self; attr_accessor :#{arg} end + ) + end + @inheritable_attributes + end + + def inherited(subclass) + @inheritable_attributes.each do |inheritable_attribute| + instance_var = "@#{inheritable_attribute}" + subclass.instance_variable_set(instance_var, instance_variable_get(instance_var)) + end + end + end end \ No newline at end of file