Class: Pagelux::Query

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(page = nil, limit = nil) ⇒ Query

Returns a new instance of Query.



5
6
7
8
# File 'lib/pagelux/query.rb', line 5

def initialize(page=nil, limit=nil)
  @limit = (limit || self.class.default_limit).to_i
  @page =  normalize_page(page)
end

Instance Attribute Details

#limitObject

Returns the value of attribute limit.



3
4
5
# File 'lib/pagelux/query.rb', line 3

def limit
  @limit
end

#pageObject

Returns the value of attribute page.



3
4
5
# File 'lib/pagelux/query.rb', line 3

def page
  @page
end

Class Method Details

.default_limitObject



14
15
16
# File 'lib/pagelux/query.rb', line 14

def self.default_limit
  100
end

.default_pageObject



10
11
12
# File 'lib/pagelux/query.rb', line 10

def self.default_page
  1
end

Instance Method Details

#normalize_page(n) ⇒ Object



18
19
20
21
22
# File 'lib/pagelux/query.rb', line 18

def normalize_page(n)
  n = (n  || self.class.default_page).to_i
  n = self.class.default_page if n < self.class.default_page
  n
end

#perform(query) ⇒ Object



24
25
26
# File 'lib/pagelux/query.rb', line 24

def perform(query)
  query.offset((page-1) * limit).limit(limit)
end