From 8593964d9741704ff030e3bdf61e0ed64526ecec Mon Sep 17 00:00:00 2001 From: Carlos Antonio da Silva Date: Fri, 25 May 2012 09:42:28 -0300 Subject: Refactor and use class_attribute --- activerecord/lib/active_record/store.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'activerecord/lib') diff --git a/activerecord/lib/active_record/store.rb b/activerecord/lib/active_record/store.rb index f5c7a9f034..d13491502e 100644 --- a/activerecord/lib/active_record/store.rb +++ b/activerecord/lib/active_record/store.rb @@ -1,5 +1,6 @@ require 'active_support/concern' require 'active_support/core_ext/hash/indifferent_access' +require 'active_support/core_ext/class/attribute' module ActiveRecord # Store gives you a thin wrapper around serialize for the purpose of storing hashes in a single column. @@ -42,7 +43,7 @@ module ActiveRecord extend ActiveSupport::Concern included do - config_attribute :stored_attributes + class_attribute :stored_attributes self.stored_attributes = {} end @@ -53,7 +54,8 @@ module ActiveRecord end def store_accessor(store_attribute, *keys) - keys.flatten.each do |key| + keys = keys.flatten + keys.each do |key| define_method("#{key}=") do |value| initialize_store_attribute(store_attribute) send(store_attribute)[key] = value @@ -66,7 +68,7 @@ module ActiveRecord end end - self.stored_attributes[store_attribute] = keys.flatten + self.stored_attributes[store_attribute] = keys end end -- cgit v1.2.3