Class: Mavenlink::List

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/mavenlink/list.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass, response, options = {}) ⇒ List

Returns a new instance of List.



12
13
14
15
16
17
18
19
20
# File 'lib/mavenlink/list.rb', line 12

def initialize(klass, response, options = {})
  @meta = response["meta"]
  @klass = klass
  @page_number = @meta["page_number"]
  @page_count = @meta["page_count"]
  @options = options
  results = setup_results(response)
  @data = results.map { |thing| klass.new(thing) }
end

Instance Attribute Details

#dataObject

Returns the value of attribute data.



7
8
9
# File 'lib/mavenlink/list.rb', line 7

def data
  @data
end

#page_countObject (readonly)

Returns the value of attribute page_count.



10
11
12
# File 'lib/mavenlink/list.rb', line 10

def page_count
  @page_count
end

#page_numberObject (readonly)

Returns the value of attribute page_number.



9
10
11
# File 'lib/mavenlink/list.rb', line 9

def page_number
  @page_number
end

Instance Method Details

#auto_paging_each(&blk) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/mavenlink/list.rb', line 26

def auto_paging_each(&blk)
  return enum_for(:auto_paging_each) unless block_given?

  page = self
  loop do
    page.each(&blk)

    break if page.last_page?

    page = page.next_page
  end
end

#each(&blk) ⇒ Object



22
23
24
# File 'lib/mavenlink/list.rb', line 22

def each(&blk)
  @data.each(&blk)
end

#last_page?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/mavenlink/list.rb', line 39

def last_page?
  @page_number == @page_count
end

#next_pageObject



43
44
45
# File 'lib/mavenlink/list.rb', line 43

def next_page
  @klass.list({ page: @page_number + 1 }, @options)
end