Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions lib/ramaze/helper/paginate.rb
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,7 @@ def needed?
# these methods are actually on the pager, but we def them here for
# convenience (method_missing in helper is evil and even slower)
def page_count ; @pager.page_count ; end
def all ; @pager.all ; end
def each(&block); @pager.each(&block); end
def first_page? ; @pager.first_page? ; end
def prev_page ; @pager.prev_page ; end
Expand Down Expand Up @@ -276,12 +277,14 @@ def last_page?
page_count == @page
end

def each(&block)
def all
from = ((@page - 1) * @limit)
to = from + @limit
@array[from...to] || []
end

a = @array[from...to] || []
a.each(&block)
def each(&block)
all.each(&block)
end

include Enumerable
Expand Down
10 changes: 10 additions & 0 deletions spec/ramaze/helper/paginate.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ def iteration
out.inspect
end

def all
pager = paginate(ALPHA)
pager.all.inspect
end

def preserve_params
request.params['single'] = 'zero'
request.params['multiple'] = %w[ one two three ]
Expand Down Expand Up @@ -87,6 +92,11 @@ def preserve_params
got.body.scan(/\w+/).should == SpecHelperPaginateArray::ALPHA.first(10)
end

it 'returns all the items in the pager range' do
got = get('/array/all')
got.body.scan(/\w+/).should == SpecHelperPaginateArray::ALPHA.first(10)
end

it 'sets default css elements on page 1' do
doc = Nokogiri::HTML(get('/array/navigation').body)
# Paginator outputs spans for disabled elements
Expand Down