Class: Pastis::Collection

Inherits:
Array
  • Object
show all
Defined in:
lib/pastis/collection.rb

Overview

Represents a collection of pastes paginated

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#pageObject (readonly)

Returns the value of attribute page.



11
12
13
# File 'lib/pastis/collection.rb', line 11

def page
  @page
end

#pages_countObject (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_pageObject



25
26
27
# File 'lib/pastis/collection.rb', line 25

def first_page
  move(1)
end

#first_page?Boolean

Returns:

  • (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

Raises:



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_pageObject



29
30
31
# File 'lib/pastis/collection.rb', line 29

def last_page
  move(pages_count)
end

#last_page?Boolean

Returns:

  • (Boolean)


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

def last_page?
  page == pages_count
end

#next_pageObject Also known as: next

Raises:



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_pageObject Also known as: previous

Raises:



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