Module: LoadMore::ActiveRecord::ClassMethods

Defined in:
lib/load_more.rb

Instance Method Summary collapse

Instance Method Details

#last_load(id = nil) ⇒ Object



68
69
70
# File 'lib/load_more.rb', line 68

def last_load(id = nil)
  load_more(last_load: id)
end

#load_limitObject



31
32
33
# File 'lib/load_more.rb', line 31

def load_limit
  defined?(@@load_limit) ? @@load_limit : LoadMore.config.load_limit
end

#load_limit=(limit) ⇒ Object



27
28
29
# File 'lib/load_more.rb', line 27

def load_limit=(limit)
  @@load_limit = limit
end

#load_more(options = {}) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/load_more.rb', line 51

def load_more(options = {})
  load_limit = options.delete(:load_limit) || self.load_limit
  sort_column = options.delete(:sort_column) || self.sort_column
  sort_method = options.delete(:sort_method) || self.sort_method
  last_load_id = options.delete(:last_load)
  rel = order(sort_column => sort_method).limit(load_limit)
  if last_load_id
    where_query = if sort_method == :desc
                    "#{self.table_name}.#{sort_column} < ?"
                  else
                    "#{self.table_name}.#{sort_column} > ?"
                  end
    rel = rel.where(where_query, last_load_id)
  end
  rel
end

#sort_columnObject



39
40
41
# File 'lib/load_more.rb', line 39

def sort_column
  defined?(@@sort_column) ? @@sort_column : LoadMore.config.sort_column
end

#sort_column=(col) ⇒ Object



35
36
37
# File 'lib/load_more.rb', line 35

def sort_column=(col)
  @@sort_column = col
end

#sort_methodObject



47
48
49
# File 'lib/load_more.rb', line 47

def sort_method
  defined?(@@sort_method) ? @@sort_method : LoadMore.config.sort_method
end

#sort_method=(method) ⇒ Object



43
44
45
# File 'lib/load_more.rb', line 43

def sort_method=(method)
  @@sort_method = method
end