Class: Rmodel::Scope

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/rmodel/scope.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(repo, raw_query) ⇒ Scope

Returns a new instance of Scope.



7
8
9
10
# File 'lib/rmodel/scope.rb', line 7

def initialize(repo, raw_query)
  @repo = repo
  @raw_query = raw_query
end

Instance Attribute Details

#raw_queryObject (readonly)

Returns the value of attribute raw_query.



5
6
7
# File 'lib/rmodel/scope.rb', line 5

def raw_query
  @raw_query
end

Class Method Details

.define_scope(name, &block) ⇒ Object



29
30
31
32
33
34
# File 'lib/rmodel/scope.rb', line 29

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

Instance Method Details

#delete_allObject



16
17
18
# File 'lib/rmodel/scope.rb', line 16

def delete_all
  @repo.delete_all(self)
end

#destroy_allObject



20
21
22
# File 'lib/rmodel/scope.rb', line 20

def destroy_all
  @repo.destroy_all(self)
end

#each(&block) ⇒ Object



12
13
14
# File 'lib/rmodel/scope.rb', line 12

def each(&block)
  @repo.find_all(self).each(&block)
end

#find(id) ⇒ Object



24
25
26
27
# File 'lib/rmodel/scope.rb', line 24

def find(id)
  new_raw_query = @raw_query.find_by_id(id)
  self.class.new(@repo, new_raw_query).first
end