Class: Tablets::Data::Query

Inherits:
Object
  • Object
show all
Defined in:
lib/tablets/data/query.rb

Overview

Incapsulates database query.

Instance Method Summary collapse

Constructor Details

#initialize(relation, params, columns) ⇒ Query

Initializes query with relation, params and columns.



10
11
12
13
14
# File 'lib/tablets/data/query.rb', line 10

def initialize(relation, params, columns)
  @relation = relation
  @params = params
  @columns = columns
end

Instance Method Details

#fetchObject

Applies all processings on relation and returns it.



17
18
19
20
21
22
23
# File 'lib/tablets/data/query.rb', line 17

def fetch
  result = relation
  result = order(result)
  result = filter(result)
  result = paginate(result)
  result
end

#filteredObject

Returns records count after filter is applied but before pagination.



31
32
33
# File 'lib/tablets/data/query.rb', line 31

def filtered
  filter(relation).count(:all)
end

#totalObject

Returns total records count before filter and pagination is applied.



26
27
28
# File 'lib/tablets/data/query.rb', line 26

def total
  relation.count(:all)
end