class MarkMapper::Plugins::Querying::DecoratedMarkMapperQuery

Public Instance Methods

criteria_hash() click to toggle source
Calls superclass method MarkMapper::Query#criteria_hash
# File lib/mark_mapper/plugins/querying/decorated_markmapper_query.rb, line 32
def criteria_hash
  @model.dealias_keys super
end
delete(*ids) click to toggle source
# File lib/mark_mapper/plugins/querying/decorated_markmapper_query.rb, line 10
def delete(*ids)
  where(:_id => ids.flatten).remove
end
delete_all(options = {}) click to toggle source
# File lib/mark_mapper/plugins/querying/decorated_markmapper_query.rb, line 14
def delete_all(options = {})
  where(options).remove
end
destroy(*ids) click to toggle source
# File lib/mark_mapper/plugins/querying/decorated_markmapper_query.rb, line 18
def destroy(*ids)
  [find!(*ids.flatten.compact.uniq)].flatten.each { |doc| doc.destroy }
end
destroy_all(options={}) click to toggle source
# File lib/mark_mapper/plugins/querying/decorated_markmapper_query.rb, line 22
def destroy_all(options={})
  find_each(options) { |document| document.destroy }
end
find!(*ids) click to toggle source
# File lib/mark_mapper/plugins/querying/decorated_markmapper_query.rb, line 50
def find!(*ids)
  ids = Array(ids).flatten.uniq
  raise DocumentNotFound, "Couldn't find without an ID" if ids.size == 0

  find(*ids).tap do |result|
    if result.nil? || ids.size != Array(result).size
      raise DocumentNotFound, "Couldn't find all of the ids (#{ids.join(',')}). Found #{Array(result).size}, but was expecting #{ids.size}"
    end
  end
end
model(model=nil) click to toggle source
# File lib/mark_mapper/plugins/querying/decorated_markmapper_query.rb, line 26
def model(model=nil)
  return @model if model.nil?
  @model = model
  self
end
options_hash() click to toggle source
Calls superclass method MarkMapper::Query#options_hash
# File lib/mark_mapper/plugins/querying/decorated_markmapper_query.rb, line 36
def options_hash
  super.tap do |options|
    case options[:fields]
    when Hash
      options[:fields] = @model.dealias options[:fields]
    when Array
      options[:fields] = options[:fields].map do |field|
        key = keys[field.to_s]
        key && key.abbr || field
      end
    end
  end
end

Protected Instance Methods

method_missing(method, *args, &block) click to toggle source
# File lib/mark_mapper/plugins/querying/decorated_markmapper_query.rb, line 63
def method_missing(method, *args, &block)
  return super unless model.respond_to?(method)
  result = model.send(method, *args, &block)
  if result.is_a?(MarkMapper::Query)
    merge(result)
  else
    result
  end
end