Module: WillPaginate::DataMapper::CollectionMethods
Instance Attribute Summary collapse
Instance Method Summary
collapse
#next_page, #out_of_bounds?, #previous_page, #total_pages
Instance Attribute Details
#current_page ⇒ Object
Returns the value of attribute current_page.
39
40
41
|
# File 'lib/will_paginate/data_mapper.rb', line 39
def current_page
@current_page
end
|
#total_entries ⇒ Object
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/will_paginate/data_mapper.rb', line 54
def total_entries
@total_entries ||= begin
if loaded? and @array.size < per_page and (current_page == 1 or @array.size > 0)
offset + @array.size
else
clean_query = query.merge(:reload => true)
clean_query.instance_variable_set('@limit', nil)
clean_query.instance_variable_set('@offset', 0)
new_collection(clean_query).count
end
end
end
|
Instance Method Details
#offset ⇒ Object
50
51
52
|
# File 'lib/will_paginate/data_mapper.rb', line 50
def offset
query.offset
end
|
#paginated? ⇒ Boolean
42
43
44
|
# File 'lib/will_paginate/data_mapper.rb', line 42
def paginated?
!current_page.nil?
end
|
#per_page ⇒ Object
46
47
48
|
# File 'lib/will_paginate/data_mapper.rb', line 46
def per_page
query.limit || model.per_page
end
|
#to_a ⇒ Object
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/will_paginate/data_mapper.rb', line 70
def to_a
if paginated?
::WillPaginate::Collection.create(current_page, per_page) do |col|
col.replace super
col.total_entries ||= total_entries
end
else
super
end
end
|