esi-sdk 2.1.3 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -8
  3. data/.yardext.rb +5 -5
  4. data/CHANGELOG.md +21 -0
  5. data/Gemfile +15 -15
  6. data/Gemfile.lock +10 -6
  7. data/Rakefile +105 -138
  8. data/bin/console +3 -3
  9. data/esi-sdk.gemspec +18 -17
  10. data/exe/esi-sdk +1 -1
  11. data/lib/esi/client/alliance.rb +5 -5
  12. data/lib/esi/client/assets.rb +4 -4
  13. data/lib/esi/client/calendar.rb +5 -5
  14. data/lib/esi/client/character.rb +16 -14
  15. data/lib/esi/client/clones.rb +2 -2
  16. data/lib/esi/client/contacts.rb +9 -9
  17. data/lib/esi/client/contracts.rb +3 -3
  18. data/lib/esi/client/corporation.rb +15 -15
  19. data/lib/esi/client/dogma.rb +7 -7
  20. data/lib/esi/client/faction_warfare.rb +14 -14
  21. data/lib/esi/client/fittings.rb +3 -3
  22. data/lib/esi/client/fleets.rb +14 -14
  23. data/lib/esi/client/incursions.rb +2 -2
  24. data/lib/esi/client/industry.rb +8 -8
  25. data/lib/esi/client/insurance.rb +2 -2
  26. data/lib/esi/client/killmails.rb +1 -1
  27. data/lib/esi/client/location.rb +3 -3
  28. data/lib/esi/client/loyalty.rb +2 -2
  29. data/lib/esi/client/mail.rb +8 -8
  30. data/lib/esi/client/market.rb +12 -12
  31. data/lib/esi/client/opportunities.rb +7 -7
  32. data/lib/esi/client/planetary_interaction.rb +3 -3
  33. data/lib/esi/client/routes.rb +4 -4
  34. data/lib/esi/client/search.rb +5 -5
  35. data/lib/esi/client/skills.rb +3 -3
  36. data/lib/esi/client/sovereignty.rb +6 -6
  37. data/lib/esi/client/status.rb +2 -2
  38. data/lib/esi/client/universe.rb +45 -45
  39. data/lib/esi/client/user_interface.rb +14 -14
  40. data/lib/esi/client/wallet.rb +6 -6
  41. data/lib/esi/client/wars.rb +4 -4
  42. data/lib/esi/client.rb +116 -87
  43. data/lib/esi/version.rb +1 -1
  44. data/lib/esi-sdk.rb +2 -2
  45. metadata +22 -8
@@ -30,7 +30,7 @@ module ESI
30
30
  #
31
31
  # @see https://esi.evetech.net/ui/#/User Interface/post_ui_autopilot_waypoint
32
32
  def post_ui_autopilot_waypoint(add_to_beginning:, clear_other_waypoints:, destination_id:, headers: {}, params: {})
33
- post_ui_autopilot_waypoint_raw(add_to_beginning: add_to_beginning, clear_other_waypoints: clear_other_waypoints, destination_id: destination_id, headers: headers, params: params).json
33
+ parse_response(post_ui_autopilot_waypoint_raw(add_to_beginning: add_to_beginning, clear_other_waypoints: clear_other_waypoints, destination_id: destination_id, headers: headers, params: params))
34
34
  end
35
35
 
36
36
  # Set a solar system as autopilot waypoint.
@@ -59,8 +59,8 @@ module ESI
59
59
  #
60
60
  # @see https://esi.evetech.net/ui/#/User Interface/post_ui_autopilot_waypoint
61
61
  def post_ui_autopilot_waypoint_raw(add_to_beginning:, clear_other_waypoints:, destination_id:, headers: {}, params: {})
62
- params.merge!("add_to_beginning" => add_to_beginning, "clear_other_waypoints" => clear_other_waypoints, "destination_id" => destination_id)
63
- post("/ui/autopilot/waypoint/", headers: headers, params: params)
62
+ params.merge!('add_to_beginning' => add_to_beginning, 'clear_other_waypoints' => clear_other_waypoints, 'destination_id' => destination_id)
63
+ post('/ui/autopilot/waypoint/', headers: headers, params: params)
64
64
  end
65
65
 
66
66
  # Open the contract window inside the client.
@@ -87,7 +87,7 @@ module ESI
87
87
  #
88
88
  # @see https://esi.evetech.net/ui/#/User Interface/post_ui_openwindow_contract
89
89
  def post_ui_openwindow_contract(contract_id:, headers: {}, params: {})
90
- post_ui_openwindow_contract_raw(contract_id: contract_id, headers: headers, params: params).json
90
+ parse_response(post_ui_openwindow_contract_raw(contract_id: contract_id, headers: headers, params: params))
91
91
  end
92
92
 
93
93
  # Open the contract window inside the client.
@@ -114,8 +114,8 @@ module ESI
114
114
  #
115
115
  # @see https://esi.evetech.net/ui/#/User Interface/post_ui_openwindow_contract
116
116
  def post_ui_openwindow_contract_raw(contract_id:, headers: {}, params: {})
117
- params.merge!("contract_id" => contract_id)
118
- post("/ui/openwindow/contract/", headers: headers, params: params)
117
+ params.merge!('contract_id' => contract_id)
118
+ post('/ui/openwindow/contract/', headers: headers, params: params)
119
119
  end
120
120
 
121
121
  # Open the information window for a character, corporation or alliance inside the client.
@@ -142,7 +142,7 @@ module ESI
142
142
  #
143
143
  # @see https://esi.evetech.net/ui/#/User Interface/post_ui_openwindow_information
144
144
  def post_ui_openwindow_information(target_id:, headers: {}, params: {})
145
- post_ui_openwindow_information_raw(target_id: target_id, headers: headers, params: params).json
145
+ parse_response(post_ui_openwindow_information_raw(target_id: target_id, headers: headers, params: params))
146
146
  end
147
147
 
148
148
  # Open the information window for a character, corporation or alliance inside the client.
@@ -169,8 +169,8 @@ module ESI
169
169
  #
170
170
  # @see https://esi.evetech.net/ui/#/User Interface/post_ui_openwindow_information
171
171
  def post_ui_openwindow_information_raw(target_id:, headers: {}, params: {})
172
- params.merge!("target_id" => target_id)
173
- post("/ui/openwindow/information/", headers: headers, params: params)
172
+ params.merge!('target_id' => target_id)
173
+ post('/ui/openwindow/information/', headers: headers, params: params)
174
174
  end
175
175
 
176
176
  # Open the market details window for a specific typeID inside the client.
@@ -197,7 +197,7 @@ module ESI
197
197
  #
198
198
  # @see https://esi.evetech.net/ui/#/User Interface/post_ui_openwindow_marketdetails
199
199
  def post_ui_openwindow_marketdetails(type_id:, headers: {}, params: {})
200
- post_ui_openwindow_marketdetails_raw(type_id: type_id, headers: headers, params: params).json
200
+ parse_response(post_ui_openwindow_marketdetails_raw(type_id: type_id, headers: headers, params: params))
201
201
  end
202
202
 
203
203
  # Open the market details window for a specific typeID inside the client.
@@ -224,8 +224,8 @@ module ESI
224
224
  #
225
225
  # @see https://esi.evetech.net/ui/#/User Interface/post_ui_openwindow_marketdetails
226
226
  def post_ui_openwindow_marketdetails_raw(type_id:, headers: {}, params: {})
227
- params.merge!("type_id" => type_id)
228
- post("/ui/openwindow/marketdetails/", headers: headers, params: params)
227
+ params.merge!('type_id' => type_id)
228
+ post('/ui/openwindow/marketdetails/', headers: headers, params: params)
229
229
  end
230
230
 
231
231
  # Open the New Mail window, according to settings from the request if applicable.
@@ -253,7 +253,7 @@ module ESI
253
253
  #
254
254
  # @see https://esi.evetech.net/ui/#/User Interface/post_ui_openwindow_newmail
255
255
  def post_ui_openwindow_newmail(new_mail:, headers: {}, params: {})
256
- post_ui_openwindow_newmail_raw(new_mail: new_mail, headers: headers, params: params).json
256
+ parse_response(post_ui_openwindow_newmail_raw(new_mail: new_mail, headers: headers, params: params))
257
257
  end
258
258
 
259
259
  # Open the New Mail window, according to settings from the request if applicable.
@@ -281,7 +281,7 @@ module ESI
281
281
  #
282
282
  # @see https://esi.evetech.net/ui/#/User Interface/post_ui_openwindow_newmail
283
283
  def post_ui_openwindow_newmail_raw(new_mail:, headers: {}, params: {})
284
- post("/ui/openwindow/newmail/", headers: headers, params: params, payload: new_mail)
284
+ post('/ui/openwindow/newmail/', headers: headers, params: params, payload: new_mail)
285
285
  end
286
286
  end
287
287
  end
@@ -29,7 +29,7 @@ module ESI
29
29
  #
30
30
  # @see https://esi.evetech.net/ui/#/Wallet/get_characters_character_id_wallet
31
31
  def get_character_wallet(character_id:, headers: {}, params: {})
32
- get_character_wallet_raw(character_id: character_id, headers: headers, params: params).json
32
+ parse_response(get_character_wallet_raw(character_id: character_id, headers: headers, params: params))
33
33
  end
34
34
  alias get_characters_character_id_wallet get_character_wallet
35
35
 
@@ -145,7 +145,7 @@ module ESI
145
145
  #
146
146
  # @see https://esi.evetech.net/ui/#/Wallet/get_characters_character_id_wallet_transactions
147
147
  def get_character_wallet_transactions(character_id:, from_id: nil, headers: {}, params: {})
148
- get_character_wallet_transactions_raw(character_id: character_id, from_id: from_id, headers: headers, params: params).json
148
+ parse_response(get_character_wallet_transactions_raw(character_id: character_id, from_id: from_id, headers: headers, params: params))
149
149
  end
150
150
  alias get_characters_character_id_wallet_transactions get_character_wallet_transactions
151
151
 
@@ -176,7 +176,7 @@ module ESI
176
176
  #
177
177
  # @see https://esi.evetech.net/ui/#/Wallet/get_characters_character_id_wallet_transactions
178
178
  def get_character_wallet_transactions_raw(character_id:, from_id: nil, headers: {}, params: {})
179
- params.merge!("from_id" => from_id)
179
+ params.merge!('from_id' => from_id)
180
180
  get("/characters/#{character_id}/wallet/transactions/", headers: headers, params: params)
181
181
  end
182
182
 
@@ -206,7 +206,7 @@ module ESI
206
206
  #
207
207
  # @see https://esi.evetech.net/ui/#/Wallet/get_corporations_corporation_id_wallets
208
208
  def get_corporation_wallets(corporation_id:, headers: {}, params: {})
209
- get_corporation_wallets_raw(corporation_id: corporation_id, headers: headers, params: params).json
209
+ parse_response(get_corporation_wallets_raw(corporation_id: corporation_id, headers: headers, params: params))
210
210
  end
211
211
  alias get_corporations_corporation_id_wallets get_corporation_wallets
212
212
 
@@ -326,7 +326,7 @@ module ESI
326
326
  #
327
327
  # @see https://esi.evetech.net/ui/#/Wallet/get_corporations_corporation_id_wallets_division_transactions
328
328
  def get_corporation_wallets_division_transactions(corporation_id:, division:, from_id: nil, headers: {}, params: {})
329
- get_corporation_wallets_division_transactions_raw(corporation_id: corporation_id, division: division, from_id: from_id, headers: headers, params: params).json
329
+ parse_response(get_corporation_wallets_division_transactions_raw(corporation_id: corporation_id, division: division, from_id: from_id, headers: headers, params: params))
330
330
  end
331
331
  alias get_corporations_corporation_id_wallets_division_transactions get_corporation_wallets_division_transactions
332
332
 
@@ -358,7 +358,7 @@ module ESI
358
358
  #
359
359
  # @see https://esi.evetech.net/ui/#/Wallet/get_corporations_corporation_id_wallets_division_transactions
360
360
  def get_corporation_wallets_division_transactions_raw(corporation_id:, division:, from_id: nil, headers: {}, params: {})
361
- params.merge!("from_id" => from_id)
361
+ params.merge!('from_id' => from_id)
362
362
  get("/corporations/#{corporation_id}/wallets/#{division}/transactions/", headers: headers, params: params)
363
363
  end
364
364
  end
@@ -25,7 +25,7 @@ module ESI
25
25
  #
26
26
  # @see https://esi.evetech.net/ui/#/Wars/get_wars_war_id
27
27
  def get_war(war_id:, headers: {}, params: {})
28
- get_war_raw(war_id: war_id, headers: headers, params: params).json
28
+ parse_response(get_war_raw(war_id: war_id, headers: headers, params: params))
29
29
  end
30
30
  alias get_wars_war_id get_war
31
31
 
@@ -122,7 +122,7 @@ module ESI
122
122
  #
123
123
  # @see https://esi.evetech.net/ui/#/Wars/get_wars
124
124
  def get_wars(max_war_id: nil, headers: {}, params: {})
125
- get_wars_raw(max_war_id: max_war_id, headers: headers, params: params).json
125
+ parse_response(get_wars_raw(max_war_id: max_war_id, headers: headers, params: params))
126
126
  end
127
127
 
128
128
  # Return a list of wars.
@@ -145,8 +145,8 @@ module ESI
145
145
  #
146
146
  # @see https://esi.evetech.net/ui/#/Wars/get_wars
147
147
  def get_wars_raw(max_war_id: nil, headers: {}, params: {})
148
- params.merge!("max_war_id" => max_war_id)
149
- get("/wars/", headers: headers, params: params)
148
+ params.merge!('max_war_id' => max_war_id)
149
+ get('/wars/', headers: headers, params: params)
150
150
  end
151
151
  end
152
152
  end
data/lib/esi/client.rb CHANGED
@@ -1,41 +1,43 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "httpx"
4
- require "timeout"
5
-
6
- require_relative "./errors"
7
- require_relative "./client/alliance"
8
- require_relative "./client/contacts"
9
- require_relative "./client/character"
10
- require_relative "./client/assets"
11
- require_relative "./client/skills"
12
- require_relative "./client/bookmarks"
13
- require_relative "./client/calendar"
14
- require_relative "./client/clones"
15
- require_relative "./client/contracts"
16
- require_relative "./client/fittings"
17
- require_relative "./client/fleets"
18
- require_relative "./client/faction_warfare"
19
- require_relative "./client/industry"
20
- require_relative "./client/killmails"
21
- require_relative "./client/location"
22
- require_relative "./client/loyalty"
23
- require_relative "./client/mail"
24
- require_relative "./client/opportunities"
25
- require_relative "./client/market"
26
- require_relative "./client/planetary_interaction"
27
- require_relative "./client/search"
28
- require_relative "./client/wallet"
29
- require_relative "./client/corporation"
30
- require_relative "./client/dogma"
31
- require_relative "./client/incursions"
32
- require_relative "./client/insurance"
33
- require_relative "./client/routes"
34
- require_relative "./client/sovereignty"
35
- require_relative "./client/status"
36
- require_relative "./client/user_interface"
37
- require_relative "./client/universe"
38
- require_relative "./client/wars"
3
+ require 'typhoeus'
4
+ require 'oj'
5
+ require 'retriable'
6
+ require 'timeout'
7
+
8
+ require_relative './errors'
9
+ require_relative './client/alliance'
10
+ require_relative './client/contacts'
11
+ require_relative './client/character'
12
+ require_relative './client/assets'
13
+ require_relative './client/skills'
14
+ require_relative './client/bookmarks'
15
+ require_relative './client/calendar'
16
+ require_relative './client/clones'
17
+ require_relative './client/contracts'
18
+ require_relative './client/fittings'
19
+ require_relative './client/fleets'
20
+ require_relative './client/faction_warfare'
21
+ require_relative './client/industry'
22
+ require_relative './client/killmails'
23
+ require_relative './client/location'
24
+ require_relative './client/loyalty'
25
+ require_relative './client/mail'
26
+ require_relative './client/opportunities'
27
+ require_relative './client/market'
28
+ require_relative './client/planetary_interaction'
29
+ require_relative './client/search'
30
+ require_relative './client/wallet'
31
+ require_relative './client/corporation'
32
+ require_relative './client/dogma'
33
+ require_relative './client/incursions'
34
+ require_relative './client/insurance'
35
+ require_relative './client/routes'
36
+ require_relative './client/sovereignty'
37
+ require_relative './client/status'
38
+ require_relative './client/user_interface'
39
+ require_relative './client/universe'
40
+ require_relative './client/wars'
39
41
 
40
42
  module ESI
41
43
  # Client for the EVE Swagger Interface (ESI) API.
@@ -73,8 +75,8 @@ module ESI
73
75
  include ESI::Client::Universe
74
76
  include ESI::Client::War
75
77
 
76
- DEFAULT_BASE_URL = "https://esi.evetech.net"
77
- DEFAULT_VERSION = "latest"
78
+ DEFAULT_BASE_URL = 'https://esi.evetech.net'
79
+ DEFAULT_VERSION = 'latest'
78
80
 
79
81
  ERROR_MAPPING = {
80
82
  400 => ESI::Errors::BadRequestError,
@@ -89,38 +91,26 @@ module ESI
89
91
  520 => ESI::Errors::EveServerError
90
92
  }.freeze
91
93
 
92
- attr_reader :base_url, :cache, :instrumentation, :logger, :user_agent, :version
94
+ attr_reader :base_url, :user_agent, :version, :authorization_token, :retries
93
95
 
94
96
  # Returns a new {ESI::Client}.
95
97
  #
96
- # See the [faraday-http-cache](https://github.com/sourcelevel/faraday-http-cache) documentation for information on
97
- # how to set up caching via the `cache` parameter.
98
- #
99
98
  # @param user_agent [String] Value of the `User-Agent` header for HTTP calls
100
99
  # @param base_url [String] The base URL of the ESI API
101
100
  # @param version [String] The version of the ESI API
102
- # @param logger [Object] The logger to use
103
- # @param cache [Hash] The cache configuration to use
104
- # @option cache [Object] :store The cache store (e.g. `Rails.cache`)
105
- # @option cache [Object] :logger The logger (e.g. `Rails.logger`)
106
- # @option cache [Object] :instrumenter The instrumenter (e.g. `ActiveSupport::Notifications`)
107
- # @param instrumentation [Hash] The instrumentation configuration to use
108
- # @option instrumentation [String] :name The name to use for instrumentation
109
- # @option instrumentation [Object] :instrumenter The instrumenter to use (e.g. `ActiveSupport::Notifications`)
110
- def initialize(user_agent:, base_url: DEFAULT_BASE_URL, version: DEFAULT_VERSION, cache: {}, instrumentation: {}, logger: nil) # rubocop:disable Layout/LineLength, Metrics/ParameterLists
101
+ # @param retries [Integer] Number of times to try a request before raising an error.
102
+ def initialize(user_agent:, base_url: DEFAULT_BASE_URL, version: DEFAULT_VERSION, retries: 10)
111
103
  @base_url = base_url
112
- @cache = cache
113
- @instrumentation = instrumentation
114
104
  @user_agent = user_agent
115
105
  @version = version
116
- @logger = logger
106
+ @retries = retries
117
107
  end
118
108
 
119
109
  # Set the `Authorization` header for subsequent requests.
120
110
  #
121
111
  # @param token [String] The [EVE SSO JWT token](https://docs.esi.evetech.net/docs/sso/) to use
122
- def authorize(token)
123
- session.authentication token
112
+ def authorize(_token)
113
+ @authorization_token = authorization_token
124
114
  end
125
115
 
126
116
  # Make a `DELETE` request to the ESI endpoint.
@@ -163,64 +153,103 @@ module ESI
163
153
 
164
154
  private
165
155
 
166
- def make_request(method, path, params: {}, headers: {}, payload: nil)
156
+ RETRIABLE_ERRORS = [
157
+ ESI::Errors::ErrorLimitedError,
158
+ ESI::Errors::InternalServerError,
159
+ ESI::Errors::ServiceUnavailableError,
160
+ ESI::Errors::GatewayTimeoutError,
161
+ ESI::Errors::EveServerError
162
+ ].freeze
163
+
164
+ def make_request(method, path, params: {}, headers: {}, payload: nil) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
165
+ headers.merge!(Authorization: "Bearer #{authorization_token}") if authorization_token
167
166
  versioned_path = "/#{version}#{path}"
168
- response = session.request(method, versioned_path, params: params, headers: headers, json: payload)
169
- response.raise_for_status
167
+ url = "#{base_url}#{versioned_path}"
168
+ json = payload ? Oj.dump(payload) : nil
169
+ request = Typhoeus::Request.new(url, method: method, params: params, headers: headers, body: json)
170
+ request.on_complete { |response| raise_error(response) unless response.success? }
171
+
172
+ hydra.queue(request)
173
+
174
+ with_retries(on_retry: ->(*_) { hydra.queue(request) }) { hydra.run }
170
175
 
171
- return paginate(response, versioned_path, params, headers) if paginated?(response)
176
+ response = request.response
177
+
178
+ return paginate(response, url, params, headers) if paginated?(response)
172
179
 
173
180
  response
174
- rescue HTTPX::Error
175
- raise_error(response)
176
181
  end
177
182
 
178
- def paginate(response, path, params, headers) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
179
- response_headers = normalize_headers(response.headers)
180
- page_count = response_headers["x-pages"].to_i
181
-
182
- requests = (2..page_count).map do |n|
183
- session.build_request(:get, path, params: params.merge(page: n), headers: headers)
183
+ def paginate(orig_response, url, params, headers) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
184
+ response_headers = normalize_headers(orig_response.headers)
185
+ page_count = response_headers['x-pages'].to_i
186
+ pages = [orig_response]
187
+
188
+ return pages if page_count == 1
189
+
190
+ pending_pages = page_count.times.to_a.map { |n| n + 1 }[1..]
191
+
192
+ with_retries do
193
+ while pending_pages.any?
194
+ pending_pages.each do |page|
195
+ request = Typhoeus::Request.new(url, params: params.merge(page: page), headers: headers)
196
+ request.on_complete do |response|
197
+ raise_error(response) unless response.success?
198
+
199
+ pages << response
200
+ pending_pages.delete(page)
201
+ end
202
+ hydra.queue(request)
203
+ end
204
+ hydra.run
205
+ end
184
206
  end
185
- responses = requests.any? ? Array(session.request(*requests)) : []
186
- responses.unshift(response)
187
207
 
188
- if responses.any?(&:error)
189
- raise ESI::Errors::PaginationError.new("Error paginating request", responses: responses)
190
- end
208
+ pages.sort_by { |response| response.request.options[:params][:page].to_i }
209
+ end
191
210
 
192
- responses
211
+ def parse_response(response)
212
+ Oj.load(response.body, bigdecimal_load: :float)
193
213
  end
194
214
 
195
215
  def paginated?(response)
196
216
  headers = normalize_headers(response.headers)
197
- headers.key?("x-pages")
217
+ headers.key?('x-pages')
198
218
  end
199
219
 
200
220
  def concat_responses(responses)
201
- responses.map(&:json).reduce([], :concat)
221
+ responses.map { |r| parse_response(r) }.reduce([], :concat)
202
222
  end
203
223
 
204
224
  def normalize_headers(headers)
205
225
  headers.to_h.transform_keys(&:downcase)
206
226
  end
207
227
 
208
- def raise_error(res)
209
- raise (ERROR_MAPPING[res.status] || ESI::Errors::ClientError).new("(#{res.status}) #{res.json["error"]}",
210
- response: res)
228
+ def with_retries(opts = {}, &block)
229
+ Retriable.retriable(retry_options.merge(opts), &block)
230
+ end
231
+
232
+ def retry_options
233
+ { on: RETRIABLE_ERRORS, tries: retries }
211
234
  end
212
235
 
213
- def session
214
- @session ||= HTTPX.with(origin: base_url)
215
- .with_headers(default_headers)
216
- .plugin(:authentication)
217
- .plugin(:persistent)
218
- .plugin(:response_cache)
219
- .plugin(:retries)
236
+ def raise_error(res)
237
+ json = begin
238
+ Oj.load(res.body)
239
+ rescue StandardError
240
+ res.body
241
+ end
242
+
243
+ raise (ERROR_MAPPING[res.code] || ESI::Errors::ClientError).new("(#{res.code}) #{json['error']}",
244
+ response: res)
220
245
  end
221
246
 
222
247
  def default_headers
223
- { "User-Agent": user_agent, Accept: "application/json" }
248
+ { 'User-Agent': user_agent, Accept: 'application/json' }
249
+ end
250
+
251
+ def hydra
252
+ @hydra ||= Typhoeus::Hydra.new
224
253
  end
225
254
  end
226
255
  end
data/lib/esi/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ESI
4
- VERSION = "2.1.3"
4
+ VERSION = "3.0.0"
5
5
  end
data/lib/esi-sdk.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "./esi/client"
4
- require_relative "./esi/version"
3
+ require_relative './esi/client'
4
+ require_relative './esi/version'
5
5
 
6
6
  # Namespace for the EVE Swagger Interface (ESI) SDK.
7
7
  module ESI
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: esi-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bokobo Shahni
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-08 00:00:00.000000000 Z
11
+ date: 2022-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: httpx
14
+ name: oj
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.18'
19
+ version: '3.13'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.18'
26
+ version: '3.13'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: retriable
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: typhoeus
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.4'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.4'
41
55
  description: ESI SDK is a Ruby API client for the EVE Swagger Interface (ESI), the
42
56
  official API for the EVE Online MMORPG.
43
57
  email:
@@ -122,7 +136,7 @@ metadata:
122
136
  homepage_uri: https://github.com/bokoboshahni/esi-sdk
123
137
  source_code_uri: https://github.com/bokoboshahni/esi-sdk
124
138
  changelog_uri: https://github.com/bokoboshahni/blob/main/CHANGELOG.md
125
- post_install_message:
139
+ post_install_message:
126
140
  rdoc_options: []
127
141
  require_paths:
128
142
  - lib
@@ -138,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
152
  version: '0'
139
153
  requirements: []
140
154
  rubygems_version: 3.2.22
141
- signing_key:
155
+ signing_key:
142
156
  specification_version: 4
143
157
  summary: API client for the EVE Swagger Interface (ESI)
144
158
  test_files: []