Class: ModelSet::RawQuery

Inherits:
Query
  • Object
show all
Defined in:
lib/model_set/raw_query.rb

Instance Attribute Summary collapse

Attributes inherited from Query

#limit, #set_class, #sort_order

Instance Method Summary collapse

Methods inherited from Query

#after_query, after_query, before_query, #before_query, #clear_cache!, #clear_limited_cache!, #condition_ops, #initialize, #limit!, #limit_enabled?, #model_class, #model_name, #offset, on_exception, #on_exception, #order_by!, #page, #page!, #pages, #table_name, #transform_condition, #unlimited!, #unsorted!

Constructor Details

This class inherits a constructor from ModelSet::Query

Instance Attribute Details

#recordsObject (readonly)

Returns the value of attribute records.



3
4
5
# File 'lib/model_set/raw_query.rb', line 3

def records
  @records
end

Instance Method Details

#anchor!(query, raw_method = 'find_raw_by_id') ⇒ Object



5
6
7
# File 'lib/model_set/raw_query.rb', line 5

def anchor!(query, raw_method = 'find_raw_by_id')
  @records = model_class.send(raw_method, query.ids.to_a)
end

#countObject



37
38
39
# File 'lib/model_set/raw_query.rb', line 37

def count
  records.size
end

#idsObject



21
22
23
24
25
26
27
# File 'lib/model_set/raw_query.rb', line 21

def ids
  if limit
    (records[offset, limit] || []).collect {|r| r['id'].to_i}
  else
    records.collect {|r| r['id'].to_i}
  end
end

#reject!(&block) ⇒ Object



13
14
15
# File 'lib/model_set/raw_query.rb', line 13

def reject!(&block)
  records.reject!(&block)
end

#select!(&block) ⇒ Object



9
10
11
# File 'lib/model_set/raw_query.rb', line 9

def select!(&block)
  records.select!(&block)
end

#sizeObject



29
30
31
32
33
34
35
# File 'lib/model_set/raw_query.rb', line 29

def size
  if limit
    [count - offset, limit].min
  else
    count
  end
end

#sort_by!(&block) ⇒ Object



17
18
19
# File 'lib/model_set/raw_query.rb', line 17

def sort_by!(&block)
  @records = records.sort_by(&block)
end