Mongoid::Document::OrmAdapter

Public Class Methods

except_classes() click to toggle source

Do not consider these to be part of the class list

# File lib/orm_adapter/adapters/mongoid.rb, line 11
def self.except_classes
  @@except_classes ||= []
end
model_classes() click to toggle source

Gets a list of the available models for this adapter

# File lib/orm_adapter/adapters/mongoid.rb, line 16
def self.model_classes
  ObjectSpace.each_object(Class).to_a.select {|klass| klass.ancestors.include? Mongoid::Document}
end

Public Instance Methods

column_names() click to toggle source

get a list of column names for a given class

# File lib/orm_adapter/adapters/mongoid.rb, line 21
def column_names
  klass.fields.keys
end
create!(attributes) click to toggle source

@see OrmAdapter::Base#create!

# File lib/orm_adapter/adapters/mongoid.rb, line 48
def create!(attributes)
  klass.create!(attributes)
end
find_all(options) click to toggle source

@see OrmAdapter::Base#find_all

# File lib/orm_adapter/adapters/mongoid.rb, line 42
def find_all(options)
  conditions, order = extract_conditions_and_order!(options)
  klass.where(conditions_to_fields(conditions)).order_by(order)
end
find_first(options) click to toggle source

@see OrmAdapter::Base#find_first

# File lib/orm_adapter/adapters/mongoid.rb, line 36
def find_first(options)
  conditions, order = extract_conditions_and_order!(options)
  klass.limit(1).where(conditions_to_fields(conditions)).order_by(order).first
end
get(id) click to toggle source

@see OrmAdapter::Base#get

# File lib/orm_adapter/adapters/mongoid.rb, line 31
def get(id)
  klass.where(:_id => wrap_key(id)).first
end
get!(id) click to toggle source

@see OrmAdapter::Base#get!

# File lib/orm_adapter/adapters/mongoid.rb, line 26
def get!(id)
  klass.find(wrap_key(id))
end

Protected Instance Methods

conditions_to_fields(conditions) click to toggle source

converts and documents to ids

# File lib/orm_adapter/adapters/mongoid.rb, line 55
def conditions_to_fields(conditions)
  conditions.inject({}) do |fields, (key, value)|
    if value.is_a?(Mongoid::Document) && klass.fields.keys.include?("#{key}_id")
      fields.merge("#{key}_id" => value.id)
    else
      fields.merge(key => value)
    end
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.