Class: PaychexAPI::ApiArray

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/paychex_api/api_array.rb

Constant Summary collapse

MAX_PAGES =
100

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response, api_client) ⇒ ApiArray

Returns a new instance of ApiArray.



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/paychex_api/api_array.rb', line 18

def initialize(response, api_client)
  @meta_fields = %w[metadata links]
  @api_client = api_client
  @links = []
   = {}
  case response.status
  when *((200..206).to_a + [302])
    (response)
    @members = get_response_content(response)
  end
end

Instance Attribute Details

#headersObject (readonly)

Returns the value of attribute headers.



11
12
13
# File 'lib/paychex_api/api_array.rb', line 11

def headers
  @headers
end

Returns the value of attribute links.



11
12
13
# File 'lib/paychex_api/api_array.rb', line 11

def links
  @links
end

#membersObject (readonly)

Returns the value of attribute members.



11
12
13
# File 'lib/paychex_api/api_array.rb', line 11

def members
  @members
end

#metadataObject (readonly)

Returns the value of attribute metadata.



11
12
13
# File 'lib/paychex_api/api_array.rb', line 11

def 
  
end

#next_pageObject



50
51
52
# File 'lib/paychex_api/api_array.rb', line 50

def next_page
  load_page(@next_page)
end

#statusObject (readonly)

Returns the value of attribute status.



11
12
13
# File 'lib/paychex_api/api_array.rb', line 11

def status
  @status
end

Class Method Details

.process_response(response, api_client) ⇒ Object



14
15
16
# File 'lib/paychex_api/api_array.rb', line 14

def self.process_response(response, api_client)
  ApiArray.new(response, api_client)
end

Instance Method Details

#[](index) ⇒ Object



34
35
36
# File 'lib/paychex_api/api_array.rb', line 34

def [](index)
  @members[index]
end

#all_pages!Object



65
66
67
68
69
70
# File 'lib/paychex_api/api_array.rb', line 65

def all_pages!
  return self unless pages?
  combine_page
  combine_pages
  self
end

#eachObject



42
43
44
# File 'lib/paychex_api/api_array.rb', line 42

def each
  @members.each { |member| yield(member) }
end

#each_page {|@members, @linked, @meta| ... } ⇒ Object

Yields:



54
55
56
57
58
59
60
61
62
63
# File 'lib/paychex_api/api_array.rb', line 54

def each_page
  yield(@members, @linked, @meta)
  while @next_page
    response = get_page(@next_page)
    (response, false)
    @members = get_response_content(response)
    yield(@members, @linked, @meta)
  end
  @link_hash = {}
end

#lastObject



38
39
40
# File 'lib/paychex_api/api_array.rb', line 38

def last
  @members.last
end

#lengthObject



30
31
32
# File 'lib/paychex_api/api_array.rb', line 30

def length
  @members.length
end

#pages?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/paychex_api/api_array.rb', line 46

def pages?
  !@next_page.nil?
end