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