def enumerated_attributes(all=true)
return @enumerated_attributes unless all
return @all_enumerated_attributes_cache if @all_enumerated_attributes_cache
@all_enumerated_attributes_cache = @enumerated_attributes ? @enumerated_attributes.dup : {}
klass = self.superclass
while (klass)
if (klass.respond_to?(:enumerated_attributes))
if (sub_enums = klass.enumerated_attributes)
@all_enumerated_attributes_cache = sub_enums.merge @all_enumerated_attributes_cache
break
end
end
klass = klass.superclass
end
@all_enumerated_attributes_cache
end