module Mongoid::Genesis::Storage
Public Instance Methods
field_preserved?(field_name)
click to toggle source
# File lib/mongoid/genesis/storage.rb, line 4 def field_preserved?(field_name) self.attribute_present? field_name end
method_missing(*args, &block)
click to toggle source
# File lib/mongoid/genesis/storage.rb, line 30 def method_missing(*args, &block) if self.alter.respond_to? args[0].to_s self.read_attribute args[0] else raise NoMethodError.new("undefined local variable or method '#{args.first}' for #{self.class}") end end
preserve(field_name)
click to toggle source
# File lib/mongoid/genesis/storage.rb, line 8 def preserve(field_name) self.write_attribute(field_name, self.alter.read_attribute(field_name)) if not field_preserved? field_name end
restore(field_name)
click to toggle source
# File lib/mongoid/genesis/storage.rb, line 12 def restore(field_name) if field_preserved? field_name self.alter.write_attribute(field_name, self.read_attribute(field_name)) self.remove_attribute(field_name) end end
reverse()
click to toggle source
# File lib/mongoid/genesis/storage.rb, line 19 def reverse self.attributes.each do |name, value| if not ['_id', '_type'].include? name buffer = self.alter.read_attribute(name) self.alter.write_attribute(name, self.read_attribute(name)) self.write_attribute(name, buffer) end end end