Class: Lurch::Paginator

Inherits:
Object
  • Object
show all
Defined in:
lib/lurch/paginator.rb

Instance Method Summary collapse

Constructor Details

#initialize(store, document, inflector, config) ⇒ Paginator

Returns a new instance of Paginator.



3
4
5
6
7
8
9
# File 'lib/lurch/paginator.rb', line 3

def initialize(store, document, inflector, config)
  @store = store
  @links = document["links"]
  @meta = document["meta"]
  @config = config
  @inflector = inflector
end

Instance Method Details

#first?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/lurch/paginator.rb', line 45

def first?
  !!first_link
end

#first_collectionObject



29
30
31
# File 'lib/lurch/paginator.rb', line 29

def first_collection
  first_link && @store.load_from_url(first_link)
end

#last?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/lurch/paginator.rb', line 49

def last?
  !!last_link
end

#last_collectionObject



33
34
35
# File 'lib/lurch/paginator.rb', line 33

def last_collection
  last_link && @store.load_from_url(last_link)
end

#next?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/lurch/paginator.rb', line 37

def next?
  !!next_link
end

#next_collectionObject



21
22
23
# File 'lib/lurch/paginator.rb', line 21

def next_collection
  next_link && @store.load_from_url(next_link)
end

#page_countObject



16
17
18
19
# File 'lib/lurch/paginator.rb', line 16

def page_count
  key = @inflector.encode_key(@config.pagination_page_count_key)
  @meta[key]
end

#prev?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/lurch/paginator.rb', line 41

def prev?
  !!prev_link
end

#prev_collectionObject



25
26
27
# File 'lib/lurch/paginator.rb', line 25

def prev_collection
  prev_link && @store.load_from_url(prev_link)
end

#record_countObject



11
12
13
14
# File 'lib/lurch/paginator.rb', line 11

def record_count
  key = @inflector.encode_key(@config.pagination_record_count_key)
  @meta[key]
end