Class: BridgeAPI::ApiArray

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

Constant Summary collapse

META_FIELDS =
%w(meta linked).freeze

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.



17
18
19
20
21
22
23
24
25
26
# File 'lib/bridge_api/api_array.rb', line 17

def initialize(response, api_client)
  @api_client = api_client
  @linked = {}
  @meta = {}
  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/bridge_api/api_array.rb', line 11

def headers
  @headers
end

#membersObject (readonly)

Returns the value of attribute members.



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

def members
  @members
end

#statusObject (readonly)

Returns the value of attribute status.



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

def status
  @status
end

Class Method Details

.process_response(response, api_client) ⇒ Object



13
14
15
# File 'lib/bridge_api/api_array.rb', line 13

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

Instance Method Details

#[](i) ⇒ Object



32
33
34
# File 'lib/bridge_api/api_array.rb', line 32

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

#all_pages!Object



71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/bridge_api/api_array.rb', line 71

def all_pages!
  if pages?
    response = get_page(@next_page)
    (response)
    @members.concat(get_response_content(response))
    while @next_page
      response = get_page(@next_page)
      (response)
      @members.concat(get_response_content(response))
    end
  end
  self
end

#each(&block) ⇒ Object



40
41
42
# File 'lib/bridge_api/api_array.rb', line 40

def each(&block)
  @members.each { |member| block.call(member) }
end

#each_page(&block) ⇒ Object



60
61
62
63
64
65
66
67
68
69
# File 'lib/bridge_api/api_array.rb', line 60

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

#lastObject



36
37
38
# File 'lib/bridge_api/api_array.rb', line 36

def last
  @members.last
end

#lengthObject



28
29
30
# File 'lib/bridge_api/api_array.rb', line 28

def length
  @members.length
end

#linkedObject



52
53
54
# File 'lib/bridge_api/api_array.rb', line 52

def linked
  @linked
end

#metaObject



48
49
50
# File 'lib/bridge_api/api_array.rb', line 48

def meta
  @meta
end

#next_pageObject



56
57
58
# File 'lib/bridge_api/api_array.rb', line 56

def next_page
  load_page(@next_page)
end

#pages?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/bridge_api/api_array.rb', line 44

def pages?
  !@next_page.nil?
end