Module: Infienity::Model

Defined in:
lib/infienity/model.rb

Instance Method Summary collapse

Instance Method Details

#paginate(per_page: 10, start: 0, search: nil, sort: nil) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/infienity/model.rb', line 3

def paginate(per_page: 10, start: 0, search: nil, sort: nil)
  entry_assign = self

  if search.present? && search.key?(:attribute) && search.key?(:search_string)
    entry_assign = entry_assign.search(attribute: search[:attribute], search_string: search[:search_string])
  end

  if sort.present?
    entry_assign = entry_assign.order(sort[0] => sort[1])
  end

  #paginate
  entry_assign.limit(per_page.to_i).offset(start.to_i * per_page.to_i)
end

#paginate_count(search: nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/infienity/model.rb', line 18

def paginate_count(search: nil)
  entry_assign = self
  if search.present?
    if search.key?(:attribute) && search.key?(:search_string)
      entry_assign = entry_assign.search(attribute: search[:attribute], search_string: search[:search_string])
    end
  end

  entry_assign.count
end

#search(attribute:, search_string:) ⇒ Object

case sensitive or no?



30
31
32
# File 'lib/infienity/model.rb', line 30

def search(attribute: , search_string:)
  where("#{attribute} ILIKE ?", "%#{search_string}%")
end