Class: Mashery::RpcClient::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/mashery/rpc_client/response.rb

Constant Summary collapse

MASHERY_WAIT_TIME =

Can’t call Mashery too many times, or they get mad

0.1

Instance Method Summary collapse

Constructor Details

#initialize(query_builder) ⇒ Response

Returns a new instance of Response.



4
5
6
7
# File 'lib/mashery/rpc_client/response.rb', line 4

def initialize(query_builder)
  @query_builder = query_builder
  @json          = query_builder.to_json
end

Instance Method Details

#current_pageObject



70
71
72
# File 'lib/mashery/rpc_client/response.rb', line 70

def current_page
  result["current_page"]
end

#errorObject



13
14
15
# File 'lib/mashery/rpc_client/response.rb', line 13

def error
  @json["error"]
end

#error?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/mashery/rpc_client/response.rb', line 36

def error?
  error.present?
end

#find_each(&block) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/mashery/rpc_client/response.rb', line 27

def find_each(&block)
  to_objects.each(&block)

  if next_page?
    response = next_page!
    response.find_each(&block)
  end
end

#itemsObject



17
18
19
# File 'lib/mashery/rpc_client/response.rb', line 17

def items
  result["items"]
end

#items_per_pageObject



74
75
76
# File 'lib/mashery/rpc_client/response.rb', line 74

def items_per_page
  result["items_per_page"]
end

#lengthObject



40
41
42
# File 'lib/mashery/rpc_client/response.rb', line 40

def length
  items.length
end

#more_pages?Boolean Also known as: next_page?

Returns:

  • (Boolean)


44
45
46
# File 'lib/mashery/rpc_client/response.rb', line 44

def more_pages?
  current_page < total_pages
end

#next_page!Object



57
58
59
60
# File 'lib/mashery/rpc_client/response.rb', line 57

def next_page!
  sleep(MASHERY_WAIT_TIME)
  Response.new(@query_builder.page(next_page_number))
end

#next_page_numberObject



50
51
52
# File 'lib/mashery/rpc_client/response.rb', line 50

def next_page_number
  current_page + 1
end

#resultObject



9
10
11
# File 'lib/mashery/rpc_client/response.rb', line 9

def result
  @json["result"]
end

#to_objectsObject



21
22
23
24
25
# File 'lib/mashery/rpc_client/response.rb', line 21

def to_objects
  items.map do |item|
    @query_builder.reify(item)
  end
end

#total_itemsObject



62
63
64
# File 'lib/mashery/rpc_client/response.rb', line 62

def total_items
  result["total_items"]
end

#total_pagesObject



66
67
68
# File 'lib/mashery/rpc_client/response.rb', line 66

def total_pages
  result["total_pages"]
end