Class: Pastis::Collection
- Inherits:
-
Array
- Object
- Array
- Pastis::Collection
- Defined in:
- lib/pastis/collection.rb
Overview
Represents a collection of pastes paginated
Instance Attribute Summary collapse
-
#page ⇒ Object
readonly
Returns the value of attribute page.
-
#pages_count ⇒ Object
readonly
Returns the value of attribute pages_count.
Instance Method Summary collapse
- #first_page ⇒ Object
- #first_page? ⇒ Boolean
- #goto_page(page) ⇒ Object (also: #goto)
-
#initialize(page, &block) ⇒ Collection
constructor
A new instance of Collection.
- #last_page ⇒ Object
- #last_page? ⇒ Boolean
- #next_page ⇒ Object (also: #next)
- #previous_page ⇒ Object (also: #previous)
Constructor Details
#initialize(page, &block) ⇒ Collection
Returns a new instance of Collection.
4 5 6 7 8 9 |
# File 'lib/pastis/collection.rb', line 4 def initialize(page, &block) @page, @block = page, block parse_url(yield(page)) super(@pastes) end |
Instance Attribute Details
#page ⇒ Object (readonly)
Returns the value of attribute page.
11 12 13 |
# File 'lib/pastis/collection.rb', line 11 def page @page end |
#pages_count ⇒ Object (readonly)
Returns the value of attribute pages_count.
11 12 13 |
# File 'lib/pastis/collection.rb', line 11 def pages_count @pages_count end |
Instance Method Details
#first_page ⇒ Object
25 26 27 |
# File 'lib/pastis/collection.rb', line 25 def first_page move(1) end |
#first_page? ⇒ Boolean
43 44 45 |
# File 'lib/pastis/collection.rb', line 43 def first_page? page == 1 end |
#goto_page(page) ⇒ Object Also known as: goto
33 34 35 36 |
# File 'lib/pastis/collection.rb', line 33 def goto_page(page) raise PaginationError, "page out of range" unless page.between?(1, pages_count) move(page) end |
#last_page ⇒ Object
29 30 31 |
# File 'lib/pastis/collection.rb', line 29 def last_page move(pages_count) end |
#last_page? ⇒ Boolean
39 40 41 |
# File 'lib/pastis/collection.rb', line 39 def last_page? page == pages_count end |
#next_page ⇒ Object Also known as: next
13 14 15 16 |
# File 'lib/pastis/collection.rb', line 13 def next_page raise PaginationError, "last page" if last_page? move(page + 1) end |
#previous_page ⇒ Object Also known as: previous
19 20 21 22 |
# File 'lib/pastis/collection.rb', line 19 def previous_page raise PaginationError, "first page" if first_page? move(page - 1) end |