eve_online 0.37.0 → 0.41.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9e998f90749dcdced3769f6c1f18381a04e149edc75e80862030676c627afa1c
4
- data.tar.gz: d69199f1b3b6b4f61ef96d8c855fddac2945f66473a81a491a8062cec42fc8a6
3
+ metadata.gz: 65d576fbc17478176c4263d33598813505b783b6e796885b43f5024e32463950
4
+ data.tar.gz: f6aa4d023bcd8a2a2b08a0c975d192f06360b0d56d0e4fbff03d2f4cfac67a6f
5
5
  SHA512:
6
- metadata.gz: bfd50eaa259cb38e867dc6c8c8137c96a1b508f4f6266b632a2706ae1fd0cc27f5dd6aca6048ea5e8bef567ff0b5695ad6e9fa9ff470b00a04198e8befbdf5e0
7
- data.tar.gz: aa11991f6aca34e0ccd6d53108821b181cbfb171c9559f9c73ab4d883f1ed5df623a748aadf0aa08accfa38991e058ec968ec063791af408fcd8bff96911e991
6
+ metadata.gz: 1d2f7a4fe87043d80116ece05d4db4e45f56045e80f722d375a006e78aaee80c19ee5807336cc3b452e0841169c9dd78ef82a7f0aff05c6cc9f26f460c5a3926
7
+ data.tar.gz: 91fb7f5dc523c480e68924dbc49b38a28926742dde3947e281d3cf7ed75e5f93864931d57af5b45e155be5204de98e2c3162da7b4c7134c6e6d871fb9bae6bab
data/.circleci/config.yml CHANGED
@@ -1,9 +1,9 @@
1
1
  version: 2
2
2
 
3
3
  jobs:
4
- ruby-2.5.8:
4
+ ruby-2.6.8:
5
5
  docker:
6
- - image: circleci/ruby:2.5.8
6
+ - image: circleci/ruby:2.6.8
7
7
  steps:
8
8
  - checkout
9
9
  - run: rm Gemfile.lock
@@ -12,11 +12,11 @@ jobs:
12
12
  - run: bundle exec appraisal install || true
13
13
  - run: bundle exec appraisal rake
14
14
  - run: bundle exec standardrb
15
- # - run: bundle exec fasterer
16
- - run: bundle exec mdl README.md CHANGELOG.md TODO.md
17
- ruby-2.6.6:
15
+ - run: bundle exec fasterer
16
+ - run: bundle exec mdl README.md CHANGELOG.md
17
+ ruby-2.7.4:
18
18
  docker:
19
- - image: circleci/ruby:2.6.6
19
+ - image: circleci/ruby:2.7.4
20
20
  steps:
21
21
  - checkout
22
22
  - run: rm Gemfile.lock
@@ -25,11 +25,11 @@ jobs:
25
25
  - run: bundle exec appraisal install || true
26
26
  - run: bundle exec appraisal rake
27
27
  - run: bundle exec standardrb
28
- # - run: bundle exec fasterer
29
- - run: bundle exec mdl README.md CHANGELOG.md TODO.md
30
- ruby-2.7.2:
28
+ - run: bundle exec fasterer
29
+ - run: bundle exec mdl README.md CHANGELOG.md
30
+ ruby-3.0.2:
31
31
  docker:
32
- - image: circleci/ruby:2.7.2
32
+ - image: circleci/ruby:3.0.2
33
33
  steps:
34
34
  - checkout
35
35
  - run: rm Gemfile.lock
@@ -38,27 +38,13 @@ jobs:
38
38
  - run: bundle exec appraisal install || true
39
39
  - run: bundle exec appraisal rake
40
40
  - run: bundle exec standardrb
41
- # - run: bundle exec fasterer
42
- - run: bundle exec mdl README.md CHANGELOG.md TODO.md
43
- ruby-3.0.0:
44
- docker:
45
- - image: circleci/ruby:3.0.0
46
- steps:
47
- - checkout
48
- - run: rm Gemfile.lock
49
- - run: rm .ruby-version
50
- - run: bundle install
51
- - run: bundle exec appraisal install || true
52
- - run: bundle exec appraisal rake
53
- - run: bundle exec standardrb
54
- # - run: bundle exec fasterer
55
- - run: bundle exec mdl README.md CHANGELOG.md TODO.md
41
+ - run: bundle exec fasterer
42
+ - run: bundle exec mdl README.md CHANGELOG.md
56
43
 
57
44
  workflows:
58
45
  version: 2
59
46
  tests:
60
47
  jobs:
61
- - ruby-2.5.8
62
- - ruby-2.6.6
63
- - ruby-2.7.2
64
- - ruby-3.0.0
48
+ - ruby-2.6.8
49
+ - ruby-2.7.4
50
+ - ruby-3.0.2
data/.fasterer.yml ADDED
@@ -0,0 +1,2 @@
1
+ speedups:
2
+ fetch_with_argument_vs_block: false
@@ -0,0 +1,10 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ open-pull-requests-limit: 99
8
+ allow:
9
+ - dependency-type: direct
10
+ - dependency-type: indirect
data/.rubocop.yml ADDED
@@ -0,0 +1,11 @@
1
+ AllCops:
2
+ NewCops: enable
3
+ SuggestExtensions: false
4
+
5
+ Style/WordArray:
6
+ Enabled: true
7
+ EnforcedStyle: brackets
8
+
9
+ Style/StringLiterals:
10
+ Enabled: true
11
+ EnforcedStyle: double_quotes
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.0.0
1
+ 3.0.2
data/Appraisals CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  appraise "activesupport_52" do
2
4
  gem "activesupport", "~> 5.2.0"
3
5
  end
@@ -10,6 +12,8 @@ appraise "activesupport_61" do
10
12
  gem "activesupport", "~> 6.1.0"
11
13
  end
12
14
 
13
- appraise "activesupport_edge" do
14
- gem "activesupport", git: "https://github.com/rails/rails", require: "activesupport"
15
+ if Gem::Version.new(RUBY_VERSION) > Gem::Version.new("2.7.0")
16
+ appraise "activesupport_edge" do
17
+ gem "activesupport", git: "https://github.com/rails/rails", require: "activesupport", branch: "main"
18
+ end
15
19
  end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.41.0
4
+
5
+ * Add `EveOnline::ESI::Search`
6
+
7
+ ## v0.40.0
8
+
9
+ * Add `EveOnline::Formulas::TrainingRate`
10
+
11
+ ## v0.39.0
12
+
13
+ * Sync with new ESI
14
+ * Add "Accept" header back
15
+
16
+ ## 0.38.0
17
+
18
+ * Replace `net/http` with `faraday`
19
+ * Drop Ruby 2.5 support
20
+
3
21
  ## v0.37.0
4
22
 
5
23
  * Use autoload for class loading
data/Gemfile CHANGED
@@ -9,4 +9,4 @@ gem "nokogiri"
9
9
  gem "awesome_print", require: "ap"
10
10
  gem "pry"
11
11
  gem "standard", require: false
12
- # gem "fasterer", require: false
12
+ gem "fasterer", require: false
data/Gemfile.lock CHANGED
@@ -1,37 +1,65 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- eve_online (0.37.0)
4
+ eve_online (0.41.0)
5
5
  activesupport (>= 5.2.0)
6
+ faraday
7
+ faraday_middleware
6
8
 
7
9
  GEM
8
10
  remote: https://rubygems.org/
9
11
  specs:
10
- activesupport (6.1.0)
12
+ activesupport (6.1.4.1)
11
13
  concurrent-ruby (~> 1.0, >= 1.0.2)
12
14
  i18n (>= 1.6, < 2)
13
15
  minitest (>= 5.1)
14
16
  tzinfo (~> 2.0)
15
17
  zeitwerk (~> 2.3)
16
- addressable (2.7.0)
18
+ addressable (2.8.0)
17
19
  public_suffix (>= 2.0.2, < 5.0)
18
- appraisal (2.3.0)
20
+ appraisal (2.4.1)
19
21
  bundler
20
22
  rake
21
23
  thor (>= 0.14.0)
22
- ast (2.4.1)
23
- awesome_print (1.8.0)
24
- chef-utils (16.8.14)
24
+ ast (2.4.2)
25
+ awesome_print (1.9.2)
26
+ chef-utils (17.4.25)
27
+ concurrent-ruby
25
28
  coderay (1.1.3)
26
- concurrent-ruby (1.1.7)
29
+ colorize (0.8.1)
30
+ concurrent-ruby (1.1.9)
27
31
  crack (0.4.5)
28
32
  rexml
29
33
  diff-lcs (1.4.4)
30
- docile (1.3.4)
34
+ docile (1.4.0)
35
+ faraday (1.7.0)
36
+ faraday-em_http (~> 1.0)
37
+ faraday-em_synchrony (~> 1.0)
38
+ faraday-excon (~> 1.1)
39
+ faraday-httpclient (~> 1.0.1)
40
+ faraday-net_http (~> 1.0)
41
+ faraday-net_http_persistent (~> 1.1)
42
+ faraday-patron (~> 1.0)
43
+ faraday-rack (~> 1.0)
44
+ multipart-post (>= 1.2, < 3)
45
+ ruby2_keywords (>= 0.0.4)
46
+ faraday-em_http (1.0.0)
47
+ faraday-em_synchrony (1.0.0)
48
+ faraday-excon (1.1.0)
49
+ faraday-httpclient (1.0.1)
50
+ faraday-net_http (1.0.1)
51
+ faraday-net_http_persistent (1.2.0)
52
+ faraday-patron (1.0.0)
53
+ faraday-rack (1.0.0)
54
+ faraday_middleware (1.1.0)
55
+ faraday (~> 1.0)
56
+ fasterer (0.9.0)
57
+ colorize (~> 0.7)
58
+ ruby_parser (>= 3.14.1)
31
59
  hashdiff (1.0.1)
32
- i18n (1.8.7)
60
+ i18n (1.8.10)
33
61
  concurrent-ruby (~> 1.0)
34
- kramdown (2.3.0)
62
+ kramdown (2.3.1)
35
63
  rexml
36
64
  kramdown-parser-gfm (1.1.0)
37
65
  kramdown (~> 2.0)
@@ -42,30 +70,31 @@ GEM
42
70
  mixlib-config (>= 2.2.1, < 4)
43
71
  mixlib-shellout
44
72
  method_source (1.0.0)
45
- mini_portile2 (2.5.0)
46
- minitest (5.14.2)
73
+ mini_portile2 (2.6.1)
74
+ minitest (5.14.4)
47
75
  mixlib-cli (2.1.8)
48
76
  mixlib-config (3.0.9)
49
77
  tomlrb
50
- mixlib-shellout (3.2.2)
78
+ mixlib-shellout (3.2.5)
51
79
  chef-utils
52
- nokogiri (1.11.0)
53
- mini_portile2 (~> 2.5.0)
80
+ multipart-post (2.1.1)
81
+ nokogiri (1.12.3)
82
+ mini_portile2 (~> 2.6.1)
54
83
  racc (~> 1.4)
55
- nokogiri (1.11.0-x86_64-darwin)
84
+ nokogiri (1.12.3-x86_64-darwin)
56
85
  racc (~> 1.4)
57
- parallel (1.20.1)
58
- parser (3.0.0.0)
86
+ parallel (1.20.2)
87
+ parser (3.0.2.0)
59
88
  ast (~> 2.4.1)
60
- pry (0.13.1)
89
+ pry (0.14.1)
61
90
  coderay (~> 1.1)
62
91
  method_source (~> 1.0)
63
92
  public_suffix (4.0.6)
64
93
  racc (1.5.2)
65
94
  rainbow (3.0.0)
66
- rake (13.0.3)
67
- regexp_parser (2.0.3)
68
- rexml (3.2.4)
95
+ rake (13.0.6)
96
+ regexp_parser (2.1.1)
97
+ rexml (3.2.5)
69
98
  rspec (3.10.0)
70
99
  rspec-core (~> 3.10.0)
71
100
  rspec-expectations (~> 3.10.0)
@@ -78,42 +107,46 @@ GEM
78
107
  rspec-its (1.3.0)
79
108
  rspec-core (>= 3.0.0)
80
109
  rspec-expectations (>= 3.0.0)
81
- rspec-mocks (3.10.1)
110
+ rspec-mocks (3.10.2)
82
111
  diff-lcs (>= 1.2.0, < 2.0)
83
112
  rspec-support (~> 3.10.0)
84
- rspec-support (3.10.1)
85
- rubocop (1.4.2)
113
+ rspec-support (3.10.2)
114
+ rubocop (1.19.1)
86
115
  parallel (~> 1.10)
87
- parser (>= 2.7.1.5)
116
+ parser (>= 3.0.0.0)
88
117
  rainbow (>= 2.2.2, < 4.0)
89
- regexp_parser (>= 1.8)
118
+ regexp_parser (>= 1.8, < 3.0)
90
119
  rexml
91
- rubocop-ast (>= 1.1.1)
120
+ rubocop-ast (>= 1.9.1, < 2.0)
92
121
  ruby-progressbar (~> 1.7)
93
- unicode-display_width (>= 1.4.0, < 2.0)
94
- rubocop-ast (1.4.0)
95
- parser (>= 2.7.1.5)
96
- rubocop-performance (1.9.1)
97
- rubocop (>= 0.90.0, < 2.0)
122
+ unicode-display_width (>= 1.4.0, < 3.0)
123
+ rubocop-ast (1.11.0)
124
+ parser (>= 3.0.1.1)
125
+ rubocop-performance (1.11.5)
126
+ rubocop (>= 1.7.0, < 2.0)
98
127
  rubocop-ast (>= 0.4.0)
99
128
  ruby-progressbar (1.11.0)
100
- simplecov (0.21.0)
129
+ ruby2_keywords (0.0.5)
130
+ ruby_parser (3.17.0)
131
+ sexp_processor (~> 4.15, >= 4.15.1)
132
+ sexp_processor (4.15.3)
133
+ simplecov (0.21.2)
101
134
  docile (~> 1.1)
102
135
  simplecov-html (~> 0.11)
103
136
  simplecov_json_formatter (~> 0.1)
104
137
  simplecov-html (0.12.3)
105
- simplecov_json_formatter (0.1.2)
106
- standard (0.10.2)
107
- rubocop (= 1.4.2)
108
- rubocop-performance (= 1.9.1)
109
- thor (1.0.1)
138
+ simplecov_json_formatter (0.1.3)
139
+ standard (1.2.0)
140
+ rubocop (= 1.19.1)
141
+ rubocop-performance (= 1.11.5)
142
+ thor (1.1.0)
110
143
  tomlrb (2.0.1)
111
144
  tzinfo (2.0.4)
112
145
  concurrent-ruby (~> 1.0)
113
- unicode-display_width (1.7.0)
146
+ unicode-display_width (2.0.0)
114
147
  vcr (6.0.0)
115
- webmock (3.11.0)
116
- addressable (>= 2.3.6)
148
+ webmock (3.14.0)
149
+ addressable (>= 2.8.0)
117
150
  crack (>= 0.3.2)
118
151
  hashdiff (>= 0.4.0, < 2.0.0)
119
152
  zeitwerk (2.4.2)
@@ -121,12 +154,14 @@ GEM
121
154
  PLATFORMS
122
155
  ruby
123
156
  x86_64-darwin-19
157
+ x86_64-darwin-20
124
158
 
125
159
  DEPENDENCIES
126
160
  appraisal
127
161
  awesome_print
128
162
  bundler
129
163
  eve_online!
164
+ fasterer
130
165
  mdl
131
166
  nokogiri
132
167
  pry
@@ -139,4 +174,4 @@ DEPENDENCIES
139
174
  webmock
140
175
 
141
176
  BUNDLED WITH
142
- 2.2.3
177
+ 2.2.26
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![Gem Version](https://badge.fury.io/rb/eve_online.svg)](https://badge.fury.io/rb/eve_online)
5
5
  [![Gem Downloads](https://img.shields.io/gem/dt/eve_online.svg)](https://rubygems.org/gems/eve_online)
6
6
  [![Known Vulnerabilities](https://snyk.io/test/github/evemonk/eve_online/badge.svg)](https://snyk.io/test/github/evemonk/eve_online)
7
- [![security](https://hakiri.io/github/evemonk/eve_online/master.svg)](https://hakiri.io/github/evemonk/eve_online/master)
7
+ [![security](https://hakiri.io/github/evemonk/eve_online/main.svg)](https://hakiri.io/github/evemonk/eve_online/main)
8
8
  [![DeepSource](https://static.deepsource.io/deepsource-badge-light-mini.svg)](https://deepsource.io/gh/evemonk/eve_online/?ref=repository-badge)
9
9
  [![Ruby Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://github.com/testdouble/standard)
10
10
 
@@ -50,7 +50,6 @@ gem install eve_online
50
50
 
51
51
  ## Supported ruby versions
52
52
 
53
- * MRI 2.5
54
53
  * MRI 2.6
55
54
  * MRI 2.7
56
55
  * MRI 3.0
@@ -133,13 +132,13 @@ alliance_icon = EveOnline::ESI::AllianceIcon.new(options)
133
132
 
134
133
  alliance_icon.scope # => nil
135
134
 
136
- alliance_icon.as_json # => {:icon_medium=>"http://image.eveonline.com/Alliance/99005443_128.png",
137
- # :icon_small=>"http://image.eveonline.com/Alliance/99005443_64.png"}
135
+ alliance_icon.as_json # => {:icon_medium=>"https://images.evetech.net/alliances/99005443/logo?tenant=tranquility&size=128",
136
+ # :icon_small=>"https://images.evetech.net/alliances/99005443/logo?tenant=tranquility&size=64"}
138
137
 
139
- alliance_icon.icon_medium # => "http://image.eveonline.com/Alliance/99005443_128.png"
140
- alliance_icon.icon_small # => "http://image.eveonline.com/Alliance/99005443_64.png"
138
+ alliance_icon.icon_medium # => "https://images.evetech.net/alliances/99005443/logo?tenant=tranquility&size=128"
139
+ alliance_icon.icon_small # => "https://images.evetech.net/alliances/99005443/logo?tenant=tranquility&size=64"
141
140
 
142
- alliance_icon.etag # => "e3f6a76b4a1287f54966c6253f8f5d6ac6460bc43d47570331b43e0b"
141
+ alliance_icon.etag # => "d067edb53a9019e0e05d99a2b1e7c7745433a982dda16667a14bff49"
143
142
  ```
144
143
 
145
144
  ### Assets
@@ -1899,6 +1898,81 @@ market_prices.etag # => "2d5acc3bd4555821bb91d787596f5ddad129f849739e83162e93c02
1899
1898
 
1900
1899
  #### Search on a string
1901
1900
 
1901
+ ```ruby
1902
+ # simple search
1903
+
1904
+ options = { search: "Jita" }
1905
+
1906
+ search = EveOnline::ESI::Search.new(options)
1907
+
1908
+ search.as_json # => {:agent_ids=>[3018357],
1909
+ # :alliance_ids=>[99011026, 99005382, 99010662, 99010663, 99010665, 99010666],
1910
+ # :character_ids=>[2118081143, ... 2114943117],
1911
+ # :constellation_ids=>[],
1912
+ # :corporation_ids=>[],
1913
+ # :faction_ids=>[],
1914
+ # :inventory_type_ids=>[56844, 56847, 56846, 56853, 56849, 56852, 56850, 52275, 56848, 56851, 56845],
1915
+ # :region_ids=>[],
1916
+ # :solar_system_ids=>[30000142],
1917
+ # :station_ids=>[]}
1918
+
1919
+ search.agent_ids # => [3018357]
1920
+ search.alliance_ids # => [99011026, 99005382, 99010662, 99010663, 99010665, 99010666]
1921
+ search.character_ids.size # => 467
1922
+ search.character_ids.first # => 2118081143
1923
+ search.constellation_ids # => []
1924
+ search.corporation_ids # => []
1925
+ search.faction_ids # => []
1926
+ search.inventory_type_ids # => [56844, 56847, 56846, 56853, 56849, 56852, 56850, 52275, 56848, 56851, 56845]
1927
+ search.region_ids # => []
1928
+ search.solar_system_ids # => [30000142]
1929
+ search.station_ids # => []
1930
+
1931
+ search.etag # => "b6602e595e8d8df37b5191b82e75faba91284281b6fe71965d09e2f1"
1932
+
1933
+ # strict search
1934
+
1935
+ options = { search: "Jita", strict: true }
1936
+
1937
+ search = EveOnline::ESI::Search.new(options)
1938
+
1939
+ search.as_json # => {:agent_ids=>[],
1940
+ # :alliance_ids=>[99005382],
1941
+ # :character_ids=>[1392050776],
1942
+ # :constellation_ids=>[],
1943
+ # :corporation_ids=>[98004200, 98049474, 383768304, 98358437],
1944
+ # :faction_ids=>[],
1945
+ # :inventory_type_ids=>[],
1946
+ # :region_ids=>[],
1947
+ # :solar_system_ids=>[30000142],
1948
+ # :station_ids=>[]}
1949
+
1950
+ # strict search with filter by categories
1951
+
1952
+ # List of default categories (used when categories is empty):
1953
+ # ["agent", "alliance", "character", "constellation", "corporation", "faction",
1954
+ # "inventory_type", "region", "solar_system", "station"]
1955
+
1956
+ # So, add `categories: ['solar_system']` and see:
1957
+
1958
+ options = { search: "Jita", categories: ["solar_system"], strict: true }
1959
+
1960
+ search = EveOnline::ESI::Search.new(options)
1961
+
1962
+ search.as_json # => {:agent_ids=>[],
1963
+ # :alliance_ids=>[],
1964
+ # :character_ids=>[],
1965
+ # :constellation_ids=>[],
1966
+ # :corporation_ids=>[],
1967
+ # :faction_ids=>[],
1968
+ # :inventory_type_ids=>[],
1969
+ # :region_ids=>[],
1970
+ # :solar_system_ids=>[30000142],
1971
+ # :station_ids=>[]}
1972
+
1973
+ search.solar_system_ids # => [30000142]
1974
+ ```
1975
+
1902
1976
  ### Skills
1903
1977
 
1904
1978
  #### Get character attributes
@@ -3089,18 +3163,17 @@ List of exceptions:
3089
3163
 
3090
3164
  ## Timeouts
3091
3165
 
3092
- `eve_online` gem uses `net/http` for network request. `net/http` configured with:
3166
+ `eve_online` gem uses `faraday` for network request. `faraday` configured with:
3093
3167
 
3094
3168
  ```ruby
3095
- http = Net::HTTP.new
3096
-
3097
- http.read_timeout = 60
3098
- http.open_timeout = 60
3099
- # if ruby >= 2.6.0
3100
- http.write_timeout = 60
3169
+ Faraday.new do |f|
3170
+ f.options.read_timeout = 60
3171
+ f.options.open_timeout = 60
3172
+ f.options.write_timeout = 60
3173
+ end
3101
3174
  ```
3102
3175
 
3103
- You can configure default timeouts with adding `read_timeout:` and `open_timeout:` (and `write_timeout` for ruby >= 2.6.0) to default hash with options:
3176
+ You can configure default timeouts with adding `read_timeout:`, `open_timeout:` and `write_timeout:` to default hash with options:
3104
3177
 
3105
3178
  ```ruby
3106
3179
  options = { read_timeout: 120, open_timeout: 120, write_timeout: 120 } # 120 seconds
@@ -3121,7 +3194,6 @@ races.read_timeout # => 60
3121
3194
  races.read_timeout = 120
3122
3195
  races.read_timeout # => 120
3123
3196
 
3124
- # if ruby >= 2.6.0
3125
3197
  races.write_timeout # => 60
3126
3198
  races.write_timeout = 120
3127
3199
  races.write_timeout # => 120
@@ -3169,6 +3241,20 @@ formula = EveOnline::Formulas::BlueprintCopyTime.new(seconds, science_level,
3169
3241
  formula.time # => 174.6
3170
3242
  ```
3171
3243
 
3244
+ ### Training rate
3245
+
3246
+ ```ruby
3247
+ # Memory: 24
3248
+ primary = 24
3249
+ # Charisma: 20
3250
+ secondary = 20
3251
+
3252
+ training_rate = EveOnline::Formulas::TrainingRate.new(primary, secondary)
3253
+
3254
+ # skill points per minute
3255
+ training_rate.rate # => 34.0
3256
+ ```
3257
+
3172
3258
  ## Useful links
3173
3259
 
3174
3260
  * [BREAKING CHANGES AND YOU - HOW TO USE ALT-ROUTES TO ENHANCE YOUR SANITY](https://developers.eveonline.com/blog/article/breaking-changes-and-you)
@@ -3199,6 +3285,7 @@ Thank you everyone!
3199
3285
  * Ian Flynn (@monban)
3200
3286
  * Mekaret Eriker (@Mekaret)
3201
3287
  * Y. (@lunohodov)
3288
+ * Trevor Copeland (@sicks)
3202
3289
 
3203
3290
  ## License
3204
3291
 
data/eve_online.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.authors = ["Igor Zubkov"]
11
11
  spec.email = ["igor.zubkov@gmail.com"]
12
12
 
13
- spec.summary = "EveOnline ESI API."
13
+ spec.summary = "EveOnline ESI API"
14
14
  spec.description = "EveOnline ESI API."
15
15
  spec.homepage = "https://github.com/evemonk/eve_online"
16
16
  spec.license = "MIT"
@@ -23,10 +23,10 @@ Gem::Specification.new do |spec|
23
23
  "source_code_uri" => "https://github.com/evemonk/eve_online"
24
24
  }
25
25
 
26
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|bin)/}) }
26
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|bin|swagger)/}) }
27
27
  spec.require_paths = ["lib"]
28
28
 
29
- spec.required_ruby_version = ">= 2.5"
29
+ spec.required_ruby_version = ">= 2.6"
30
30
 
31
31
  spec.add_development_dependency "bundler"
32
32
  spec.add_development_dependency "rake"
@@ -38,5 +38,7 @@ Gem::Specification.new do |spec|
38
38
  spec.add_development_dependency "mdl"
39
39
  spec.add_development_dependency "appraisal"
40
40
 
41
+ spec.add_runtime_dependency "faraday"
42
+ spec.add_runtime_dependency "faraday_middleware"
41
43
  spec.add_runtime_dependency "activesupport", ">= 5.2.0"
42
44
  end
@@ -7,7 +7,7 @@ module EveOnline
7
7
  class Alliance < Base
8
8
  extend Forwardable
9
9
 
10
- API_PATH = "/v3/alliances/%<alliance_id>s/"
10
+ API_PATH = "/v4/alliances/%<alliance_id>s/"
11
11
 
12
12
  attr_reader :alliance_id
13
13
 
@@ -7,7 +7,7 @@ module EveOnline
7
7
  class AllianceIcon < Base
8
8
  extend Forwardable
9
9
 
10
- API_PATH = "/v1/alliances/%<alliance_id>s/icons/"
10
+ API_PATH = "/v2/alliances/%<alliance_id>s/icons/"
11
11
 
12
12
  attr_reader :alliance_id
13
13
 
@@ -1,8 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "net/http"
4
- require "openssl"
5
- require "json"
3
+ require "faraday"
4
+ require "faraday_middleware"
6
5
  require "active_support/time"
7
6
 
8
7
  module EveOnline
@@ -10,23 +9,20 @@ module EveOnline
10
9
  class Base
11
10
  API_HOST = "esi.evetech.net"
12
11
 
13
- attr_reader :token, :parser, :_read_timeout, :_open_timeout, :_etag,
14
- :language
12
+ attr_reader :token, :_read_timeout, :_open_timeout, :_write_timeout,
13
+ :_etag, :language, :adapter, :middlewares
15
14
 
16
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.6.0")
17
- attr_reader :_write_timeout
18
- end
15
+ attr_writer :token
19
16
 
20
17
  def initialize(options = {})
21
18
  @token = options.fetch(:token, nil)
22
- @parser = options.fetch(:parser, JSON)
23
19
  @_read_timeout = options.fetch(:read_timeout, 60)
24
20
  @_open_timeout = options.fetch(:open_timeout, 60)
25
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.6.0")
26
- @_write_timeout = options.fetch(:write_timeout, 60)
27
- end
21
+ @_write_timeout = options.fetch(:write_timeout, 60)
28
22
  @_etag = options.fetch(:etag, nil)
29
23
  @language = options.fetch(:language, "en-us")
24
+ @adapter = options.fetch(:adapter, Faraday.default_adapter)
25
+ @middlewares = options.fetch(:middlewares, [])
30
26
  end
31
27
 
32
28
  def url
@@ -42,33 +38,31 @@ module EveOnline
42
38
  end
43
39
 
44
40
  def http_method
45
- "Get"
41
+ :get
46
42
  end
47
43
 
48
44
  def read_timeout
49
- client.read_timeout
45
+ connection.options.read_timeout
50
46
  end
51
47
 
52
48
  def read_timeout=(value)
53
- client.read_timeout = value
49
+ connection.options.read_timeout = value
54
50
  end
55
51
 
56
52
  def open_timeout
57
- client.open_timeout
53
+ connection.options.open_timeout
58
54
  end
59
55
 
60
56
  def open_timeout=(value)
61
- client.open_timeout = value
57
+ connection.options.open_timeout = value
62
58
  end
63
59
 
64
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.6.0")
65
- def write_timeout
66
- client.write_timeout
67
- end
60
+ def write_timeout
61
+ connection.options.write_timeout
62
+ end
68
63
 
69
- def write_timeout=(value)
70
- client.write_timeout = value
71
- end
64
+ def write_timeout=(value)
65
+ connection.options.write_timeout = value
72
66
  end
73
67
 
74
68
  def etag=(value)
@@ -76,56 +70,52 @@ module EveOnline
76
70
  end
77
71
 
78
72
  def etag
79
- resource.header["Etag"]&.gsub("W/", "")&.gsub('"', "")
73
+ resource.headers["etag"]&.gsub("W/", "")&.gsub('"', "")
80
74
  end
81
75
 
82
76
  def page
83
77
  end
84
78
 
85
79
  def total_pages
86
- resource.header["X-Pages"]&.to_i
80
+ resource.headers["x-pages"]&.to_i
87
81
  end
88
82
 
89
83
  def error_limit_remain
90
- resource.header["X-ESI-Error-Limit-Remain"]&.to_i
84
+ resource.headers["x-esi-error-limit-remain"]&.to_i
91
85
  end
92
86
 
93
87
  def error_limit_reset
94
- resource.header["X-ESI-Error-Limit-Reset"]&.to_i
88
+ resource.headers["x-esi-error-limit-reset"]&.to_i
95
89
  end
96
90
 
97
- def client
98
- @client ||= begin
99
- http = Net::HTTP.new(uri.host, uri.port)
100
- http.read_timeout = _read_timeout
101
- http.open_timeout = _open_timeout
102
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.6.0")
103
- http.write_timeout = _write_timeout
104
- end
105
- http.use_ssl = true
106
- http.verify_mode = OpenSSL::SSL::VERIFY_PEER
107
- # http.set_debug_output($stdout)
108
- http
109
- end
91
+ def request_id
92
+ resource.headers["x-esi-request-id"]
110
93
  end
111
94
 
112
- def request
113
- @request ||= begin
114
- request = "Net::HTTP::#{http_method}".constantize.new(uri.request_uri)
115
-
116
- request["User-Agent"] = user_agent
117
- request["Accept"] = "application/json"
118
- request["Authorization"] = "Bearer #{token}" if token
119
- request["If-None-Match"] = _etag if _etag
120
- request["Content-Type"] = "application/json" if http_method == "Post"
121
- request.body = payload if http_method == "Post"
122
-
123
- request
124
- end
95
+ def add_middleware(middleware)
96
+ @middlewares << middleware
125
97
  end
126
98
 
127
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.6.0")
128
- class Net::WriteTimeout < StandardError; end
99
+ def connection
100
+ @connection ||= Faraday.new do |f|
101
+ f.headers["User-Agent"] = user_agent
102
+ f.headers["If-None-Match"] = _etag if _etag
103
+ f.headers["Accept"] = "application/json"
104
+ f.authorization :Bearer, token if token
105
+ f.options.read_timeout = _read_timeout
106
+ f.options.open_timeout = _open_timeout
107
+ f.options.write_timeout = _write_timeout
108
+ f.use FaradayMiddlewares::RaiseErrors
109
+ middlewares.each do |middleware|
110
+ if middleware[:esi].present?
111
+ f.use middleware[:class], esi: middleware[:esi]
112
+ else
113
+ f.use middleware[:class]
114
+ end
115
+ end
116
+ f.response :json, content_type: "application/json"
117
+ f.adapter adapter
118
+ end
129
119
  end
130
120
 
131
121
  def uri
@@ -155,53 +145,29 @@ module EveOnline
155
145
  hash[param] = public_send(param)
156
146
  end
157
147
 
158
- hash.reject { |_, v| v.blank? }
148
+ hash.reject { |_, v| v.nil? || v == "" }
159
149
  end
160
150
 
161
151
  def resource
162
- @resource ||= client.request(request)
163
- rescue Net::OpenTimeout, Net::ReadTimeout, Net::WriteTimeout
152
+ @resource ||= connection.public_send(http_method, uri)
153
+ rescue Faraday::ConnectionFailed, Faraday::TimeoutError
164
154
  raise EveOnline::Exceptions::Timeout
165
155
  end
166
156
 
167
157
  def not_modified?
168
- resource.is_a?(Net::HTTPNotModified)
158
+ resource.status == 304
169
159
  end
170
160
 
171
161
  def content
172
- case resource
173
- when Net::HTTPOK
174
- # TODO: memoize resource.body as @content
175
- resource.body
176
- when Net::HTTPCreated
177
- # TODO: write
178
- raise NotImplementedError
179
- when Net::HTTPNoContent
180
- raise EveOnline::Exceptions::NoContent
181
- when Net::HTTPNotModified
162
+ if not_modified?
182
163
  raise EveOnline::Exceptions::NotModified
183
- when Net::HTTPBadRequest
184
- raise EveOnline::Exceptions::BadRequest
185
- when Net::HTTPUnauthorized
186
- raise EveOnline::Exceptions::Unauthorized
187
- when Net::HTTPForbidden
188
- raise EveOnline::Exceptions::Forbidden
189
- when Net::HTTPNotFound
190
- raise EveOnline::Exceptions::ResourceNotFound
191
- when Net::HTTPInternalServerError
192
- raise EveOnline::Exceptions::InternalServerError
193
- when Net::HTTPBadGateway
194
- raise EveOnline::Exceptions::BadGateway
195
- when Net::HTTPServiceUnavailable
196
- raise EveOnline::Exceptions::ServiceUnavailable
197
164
  else
198
- # raise EveOnline::Exceptions::UnknownStatus
199
- raise NotImplementedError
165
+ resource.body
200
166
  end
201
167
  end
202
168
 
203
169
  def response
204
- @response ||= parser.parse(content)
170
+ @response ||= content
205
171
  end
206
172
 
207
173
  private
@@ -26,7 +26,7 @@ module EveOnline
26
26
  end
27
27
 
28
28
  def http_method
29
- "Post"
29
+ :post
30
30
  end
31
31
 
32
32
  def payload
@@ -26,7 +26,7 @@ module EveOnline
26
26
  end
27
27
 
28
28
  def http_method
29
- "Post"
29
+ :post
30
30
  end
31
31
 
32
32
  def payload
@@ -3,7 +3,7 @@
3
3
  module EveOnline
4
4
  module ESI
5
5
  class CharacterCorporationHistory < Base
6
- API_PATH = "/v1/characters/%<character_id>s/corporationhistory/"
6
+ API_PATH = "/v2/characters/%<character_id>s/corporationhistory/"
7
7
 
8
8
  attr_reader :character_id
9
9
 
@@ -26,7 +26,7 @@ module EveOnline
26
26
  end
27
27
 
28
28
  def http_method
29
- "Post"
29
+ :post
30
30
  end
31
31
 
32
32
  def payload
@@ -26,7 +26,7 @@ module EveOnline
26
26
  end
27
27
 
28
28
  def http_method
29
- "Post"
29
+ :post
30
30
  end
31
31
 
32
32
  def payload
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "faraday"
4
+
5
+ module EveOnline
6
+ module ESI
7
+ module FaradayMiddlewares
8
+ class RaiseErrors < Faraday::Middleware
9
+ def call(env)
10
+ @app.call(env).on_complete do |environment|
11
+ on_complete(environment)
12
+ end
13
+ end
14
+
15
+ def on_complete(env)
16
+ case env[:status]
17
+ when 204
18
+ raise EveOnline::Exceptions::NoContent
19
+ when 400
20
+ raise EveOnline::Exceptions::BadRequest
21
+ when 401
22
+ raise EveOnline::Exceptions::Unauthorized
23
+ when 403
24
+ raise EveOnline::Exceptions::Forbidden
25
+ when 404
26
+ raise EveOnline::Exceptions::ResourceNotFound
27
+ when 420
28
+ raise EveOnline::Exceptions::ErrorLimited
29
+ when 500
30
+ raise EveOnline::Exceptions::InternalServerError
31
+ when 502
32
+ raise EveOnline::Exceptions::BadGateway
33
+ when 503
34
+ raise EveOnline::Exceptions::ServiceUnavailable
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EveOnline
4
+ module ESI
5
+ module Models
6
+ class Search < Base
7
+ def as_json
8
+ {
9
+ agent_ids: agent_ids,
10
+ alliance_ids: alliance_ids,
11
+ character_ids: character_ids,
12
+ constellation_ids: constellation_ids,
13
+ corporation_ids: corporation_ids,
14
+ faction_ids: faction_ids,
15
+ inventory_type_ids: inventory_type_ids,
16
+ region_ids: region_ids,
17
+ solar_system_ids: solar_system_ids,
18
+ station_ids: station_ids
19
+ }
20
+ end
21
+
22
+ def agent_ids
23
+ options.fetch("agent", [])
24
+ end
25
+
26
+ def alliance_ids
27
+ options.fetch("alliance", [])
28
+ end
29
+
30
+ def character_ids
31
+ options.fetch("character", [])
32
+ end
33
+
34
+ def constellation_ids
35
+ options.fetch("constellation", [])
36
+ end
37
+
38
+ def corporation_ids
39
+ options.fetch("corporation", [])
40
+ end
41
+
42
+ def faction_ids
43
+ options.fetch("faction", [])
44
+ end
45
+
46
+ def inventory_type_ids
47
+ options.fetch("inventory_type", [])
48
+ end
49
+
50
+ def region_ids
51
+ options.fetch("region", [])
52
+ end
53
+
54
+ def solar_system_ids
55
+ options.fetch("solar_system", [])
56
+ end
57
+
58
+ def station_ids
59
+ options.fetch("stations", [])
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "forwardable"
4
+
5
+ module EveOnline
6
+ module ESI
7
+ class Search < Base
8
+ extend Forwardable
9
+
10
+ API_PATH = "/v2/search/"
11
+
12
+ DEFAULT_CATEGORIES = [
13
+ "agent",
14
+ "alliance",
15
+ "character",
16
+ "constellation",
17
+ "corporation",
18
+ "faction",
19
+ "inventory_type",
20
+ "region",
21
+ "solar_system",
22
+ "station"
23
+ ]
24
+
25
+ attr_reader :search, :strict, :raw_categories, :categories
26
+
27
+ def initialize(options)
28
+ super
29
+
30
+ @search = options.fetch(:search)
31
+ @strict = options.fetch(:strict, false)
32
+ @raw_categories = options.fetch(:categories, DEFAULT_CATEGORIES)
33
+ @raw_categories.each do |c|
34
+ unless DEFAULT_CATEGORIES.include?(c)
35
+ raise(ArgumentError)
36
+ end
37
+ end
38
+ @categories = @raw_categories.join(",")
39
+ end
40
+
41
+ def_delegators :model, :as_json, :agent_ids, :alliance_ids,
42
+ :character_ids, :constellation_ids, :corporation_ids, :faction_ids,
43
+ :inventory_type_ids, :region_ids, :solar_system_ids, :station_ids
44
+
45
+ def model
46
+ @model ||= Models::Search.new(response)
47
+ end
48
+
49
+ def scope
50
+ end
51
+
52
+ def additional_query_params
53
+ [:search, :categories, :strict]
54
+ end
55
+
56
+ def path
57
+ format(API_PATH, search: search, categories: categories, strict: strict)
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EveOnline
4
+ module Formulas
5
+ class TrainingRate
6
+ attr_reader :primary, :secondary
7
+
8
+ def initialize(primary, secondary)
9
+ @primary = primary
10
+ @secondary = secondary
11
+ end
12
+
13
+ def rate
14
+ primary + (secondary / 2.0)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EveOnline
4
- VERSION = "0.37.0"
4
+ VERSION = "0.41.0"
5
5
  end
data/lib/eve_online.rb CHANGED
@@ -92,6 +92,8 @@ module EveOnline
92
92
  autoload :MarketGroup, "eve_online/esi/market_group"
93
93
  autoload :MarketPrices, "eve_online/esi/market_prices"
94
94
 
95
+ autoload :Search, "eve_online/esi/search"
96
+
95
97
  autoload :CharacterAttributes, "eve_online/esi/character_attributes"
96
98
  autoload :CharacterSkillQueue, "eve_online/esi/character_skill_queue"
97
99
  autoload :CharacterSkills, "eve_online/esi/character_skills"
@@ -134,6 +136,10 @@ module EveOnline
134
136
  autoload :War, "eve_online/esi/war"
135
137
  autoload :WarKillmails, "eve_online/esi/war_killmails"
136
138
 
139
+ module FaradayMiddlewares
140
+ autoload :RaiseErrors, "eve_online/esi/faraday_middlewares/raise_errors"
141
+ end
142
+
137
143
  module Models
138
144
  autoload :Base, "eve_online/esi/models/base"
139
145
 
@@ -171,6 +177,7 @@ module EveOnline
171
177
  autoload :WalletTransaction, "eve_online/esi/models/wallet_transaction"
172
178
  autoload :CorporationOrder, "eve_online/esi/models/corporation_order"
173
179
  autoload :HomeLocation, "eve_online/esi/models/home_location"
180
+ autoload :Search, "eve_online/esi/models/search"
174
181
  autoload :ServerStatus, "eve_online/esi/models/server_status"
175
182
 
176
183
  autoload :MarketHistory, "eve_online/esi/models/market_history"
@@ -235,11 +242,6 @@ module EveOnline
235
242
 
236
243
  module Formulas
237
244
  autoload :BlueprintCopyTime, "eve_online/formulas/blueprint_copy_time"
245
+ autoload :TrainingRate, "eve_online/formulas/training_rate"
238
246
  end
239
247
  end
240
-
241
- # class Net::HTTPErrorLimited < Net::HTTPClientError # 420
242
- # HAS_BODY = false
243
- # end
244
- #
245
- # Net::HTTPResponse::CODE_TO_OBJ.merge!("420"=>Net::HTTPErrorLimited)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eve_online
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.37.0
4
+ version: 0.41.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Zubkov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-04 00:00:00.000000000 Z
11
+ date: 2021-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -136,6 +136,34 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: faraday
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: faraday_middleware
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: activesupport
141
169
  requirement: !ruby/object:Gem::Requirement
@@ -159,9 +187,12 @@ extra_rdoc_files: []
159
187
  files:
160
188
  - ".circleci/config.yml"
161
189
  - ".deepsource.toml"
190
+ - ".fasterer.yml"
162
191
  - ".github/FUNDING.yml"
192
+ - ".github/dependabot.yml"
163
193
  - ".gitignore"
164
194
  - ".mdlrc"
195
+ - ".rubocop.yml"
165
196
  - ".ruby-version"
166
197
  - ".standard.yml"
167
198
  - Appraisals
@@ -171,7 +202,6 @@ files:
171
202
  - LICENSE.txt
172
203
  - README.md
173
204
  - Rakefile
174
- - TODO.md
175
205
  - eve_online.gemspec
176
206
  - lib/eve_online.rb
177
207
  - lib/eve_online/esi/alliance.rb
@@ -225,6 +255,7 @@ files:
225
255
  - lib/eve_online/esi/dogma_attributes.rb
226
256
  - lib/eve_online/esi/dogma_effect.rb
227
257
  - lib/eve_online/esi/dogma_effects.rb
258
+ - lib/eve_online/esi/faraday_middlewares/raise_errors.rb
228
259
  - lib/eve_online/esi/killmail.rb
229
260
  - lib/eve_online/esi/market_group.rb
230
261
  - lib/eve_online/esi/market_groups.rb
@@ -301,6 +332,7 @@ files:
301
332
  - lib/eve_online/esi/models/public_contract_item.rb
302
333
  - lib/eve_online/esi/models/race.rb
303
334
  - lib/eve_online/esi/models/region.rb
335
+ - lib/eve_online/esi/models/search.rb
304
336
  - lib/eve_online/esi/models/server_status.rb
305
337
  - lib/eve_online/esi/models/skill.rb
306
338
  - lib/eve_online/esi/models/skill_queue_entry.rb
@@ -317,6 +349,7 @@ files:
317
349
  - lib/eve_online/esi/models/war.rb
318
350
  - lib/eve_online/esi/public_contract.rb
319
351
  - lib/eve_online/esi/public_contracts.rb
352
+ - lib/eve_online/esi/search.rb
320
353
  - lib/eve_online/esi/server_status.rb
321
354
  - lib/eve_online/esi/universe_ancestries.rb
322
355
  - lib/eve_online/esi/universe_asteroid_belt.rb
@@ -361,6 +394,7 @@ files:
361
394
  - lib/eve_online/exceptions/timeout.rb
362
395
  - lib/eve_online/exceptions/unauthorized.rb
363
396
  - lib/eve_online/formulas/blueprint_copy_time.rb
397
+ - lib/eve_online/formulas/training_rate.rb
364
398
  - lib/eve_online/version.rb
365
399
  homepage: https://github.com/evemonk/eve_online
366
400
  licenses:
@@ -379,15 +413,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
379
413
  requirements:
380
414
  - - ">="
381
415
  - !ruby/object:Gem::Version
382
- version: '2.5'
416
+ version: '2.6'
383
417
  required_rubygems_version: !ruby/object:Gem::Requirement
384
418
  requirements:
385
419
  - - ">="
386
420
  - !ruby/object:Gem::Version
387
421
  version: '0'
388
422
  requirements: []
389
- rubygems_version: 3.2.3
423
+ rubygems_version: 3.2.26
390
424
  signing_key:
391
425
  specification_version: 4
392
- summary: EveOnline ESI API.
426
+ summary: EveOnline ESI API
393
427
  test_files: []
data/TODO.md DELETED
@@ -1,7 +0,0 @@
1
- # TODO
2
-
3
- * Fix MD024
4
- * Add corporation roles
5
- * Add caching timeout
6
- * Add 420 error status
7
- * Add errors limits