Module: PhonyRails::Extension

Extended by:
ActiveSupport::Concern
Included in:
Mongoid::Phony
Defined in:
lib/phony_rails.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#cache_original_attribute(current_instance, attribute) ⇒ Object



178
179
180
181
182
183
# File 'lib/phony_rails.rb', line 178

def cache_original_attribute(current_instance, attribute)
  attribute_name = "#{attribute}_original"
  current_instance.define_singleton_method("#{attribute_name}=") { |value| instance_variable_set("@#{attribute_name}", value) }
  current_instance.define_singleton_method(attribute_name) { instance_variable_get("@#{attribute_name}") }
  current_instance.public_send("#{attribute}_original=", current_instance.public_send(attribute.to_s))
end