Class: Rmodel::Mongo::RepositoryExt::Query

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/rmodel/mongo/repository_ext/query.rb

Defined Under Namespace

Classes: Queryable

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(repo, queryable = nil) ⇒ Query

Returns a new instance of Query.



12
13
14
15
# File 'lib/rmodel/mongo/repository_ext/query.rb', line 12

def initialize(repo, queryable = nil)
  @repo = repo
  @queryable = queryable || Queryable.new
end

Class Method Details

.define_scope(name, &block) ⇒ Object



26
27
28
29
30
31
# File 'lib/rmodel/mongo/repository_ext/query.rb', line 26

def self.define_scope(name, &block)
  define_method name do |*args|
    new_queryable = @queryable.instance_exec(*args, &block)
    self.class.new(@repo, new_queryable)
  end
end

Instance Method Details

#each(&block) ⇒ Object



17
18
19
20
# File 'lib/rmodel/mongo/repository_ext/query.rb', line 17

def each(&block)
  @repo.find_by_query(@queryable.selector, @queryable.options).each(&block)
  self
end

#removeObject



22
23
24
# File 'lib/rmodel/mongo/repository_ext/query.rb', line 22

def remove
  @repo.execute_query(@queryable.selector, @queryable.options).delete_many
end