ig_markets 0.33 → 0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/LICENSE.md +1 -1
- data/README.md +3 -12
- data/lib/ig_markets/cli/commands/performance_command.rb +5 -5
- data/lib/ig_markets/cli/commands/prices_command.rb +5 -5
- data/lib/ig_markets/cli/commands/watchlists_command.rb +1 -1
- data/lib/ig_markets/cli/config_file.rb +2 -2
- data/lib/ig_markets/cli/curses_window.rb +1 -1
- data/lib/ig_markets/cli/main.rb +12 -14
- data/lib/ig_markets/cli/tables/accounts_table.rb +1 -1
- data/lib/ig_markets/cli/tables/market_overviews_table.rb +2 -2
- data/lib/ig_markets/cli/tables/performances_table.rb +1 -1
- data/lib/ig_markets/cli/tables/positions_table.rb +1 -1
- data/lib/ig_markets/cli/tables/transactions_table.rb +1 -1
- data/lib/ig_markets/dealing_platform.rb +1 -1
- data/lib/ig_markets/dealing_platform/market_methods.rb +1 -1
- data/lib/ig_markets/dealing_platform/streaming_methods.rb +2 -2
- data/lib/ig_markets/format.rb +1 -1
- data/lib/ig_markets/model.rb +8 -8
- data/lib/ig_markets/model/typecasters.rb +12 -16
- data/lib/ig_markets/regex.rb +2 -2
- data/lib/ig_markets/session.rb +2 -2
- data/lib/ig_markets/streaming/subscription.rb +6 -6
- data/lib/ig_markets/version.rb +1 -1
- metadata +35 -36
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dfc740035b626e05da6ae9006cbfe5c2c19bab7480100a28611ee63dfa446870
|
|
4
|
+
data.tar.gz: f3977e9c660ab30ee5e59caeb760d63e3dd5eb55bdad1e97539932863cf93f60
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6ab801a73b512967cca3cb2adf21a5b0169e6bb3d8944ec17410aa5c731d36ca3bea74e5b8d1507b1d3167fa6922a3b3908299b5ba7544ac4bbd2ecb2446bb26
|
|
7
|
+
data.tar.gz: da29933a076231a83f91fce752bf11e0611e05c9cc8ad46a2f1d86c6a316567ab78504859fe0ab3af8c9ba7c465d06626f8a07e9a90e0397290d40acc47352dd
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# IG Markets Changelog
|
|
2
2
|
|
|
3
|
+
### 0.34 — April 29, 2020
|
|
4
|
+
|
|
5
|
+
- Updated supported Ruby version range to 2.5 - 2.7.
|
|
6
|
+
- Updated dependency versions.
|
|
7
|
+
- Switched from Travis CI to GitHub Actions.
|
|
8
|
+
- Removed CodeClimate.
|
|
9
|
+
|
|
3
10
|
### 0.33 — December 30, 2017
|
|
4
11
|
|
|
5
12
|
- Added `DealingPlatform::ClientSentimentMethods#find` for retrieving multiple client sentiments in one request
|
data/LICENSE.md
CHANGED
data/README.md
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
# Ruby IG Markets Dealing Platform Gem
|
|
2
2
|
|
|
3
3
|
[![Gem][gem-badge]][gem-link]
|
|
4
|
-
[![Build Status][
|
|
5
|
-
[![Test Coverage][test-coverage-badge]][test-coverage-link]
|
|
6
|
-
[![Code Climate][code-climate-badge]][code-climate-link]
|
|
7
|
-
[![Dependencies][dependencies-badge]][dependencies-link]
|
|
4
|
+
[![Build Status][ci-badge]][ci-link]
|
|
8
5
|
[![Documentation][documentation-badge]][documentation-link]
|
|
9
6
|
[![License][license-badge]][license-link]
|
|
10
7
|
|
|
@@ -268,14 +265,8 @@ Gem created by Richard Viney. All contributions welcome.
|
|
|
268
265
|
|
|
269
266
|
[gem-link]: https://rubygems.org/gems/ig_markets
|
|
270
267
|
[gem-badge]: https://badge.fury.io/rb/ig_markets.svg
|
|
271
|
-
[
|
|
272
|
-
[
|
|
273
|
-
[test-coverage-link]: https://codeclimate.com/github/richard-viney/ig_markets/coverage
|
|
274
|
-
[test-coverage-badge]: https://codeclimate.com/github/richard-viney/ig_markets/badges/coverage.svg
|
|
275
|
-
[code-climate-link]: https://codeclimate.com/github/richard-viney/ig_markets
|
|
276
|
-
[code-climate-badge]: https://codeclimate.com/github/richard-viney/ig_markets/badges/gpa.svg
|
|
277
|
-
[dependencies-link]: https://gemnasium.com/richard-viney/ig_markets
|
|
278
|
-
[dependencies-badge]: https://gemnasium.com/richard-viney/ig_markets.svg
|
|
268
|
+
[ci-link]: https://github.com/richard-viney/ig_markets/actions
|
|
269
|
+
[ci-badge]: https://github.com/richard-viney/ig_markets/workflows/ci/badge.svg
|
|
279
270
|
[documentation-link]: https://inch-ci.org/github/richard-viney/ig_markets
|
|
280
271
|
[documentation-badge]: https://inch-ci.org/github/richard-viney/ig_markets.svg?branch=master
|
|
281
272
|
[license-link]: https://github.com/richard-viney/ig_markets/blob/master/LICENSE.md
|
|
@@ -61,13 +61,13 @@ module IGMarkets
|
|
|
61
61
|
profit_loss = performances.map { |h| h[:profit_loss] }.inject(:+)
|
|
62
62
|
currency = performances.first[:transactions].first.currency
|
|
63
63
|
|
|
64
|
-
puts
|
|
64
|
+
puts <<~MSG
|
|
65
65
|
|
|
66
|
-
Note: this table only shows the profit/loss made from dealing, it does not include interest payments,
|
|
67
|
-
|
|
66
|
+
Note: this table only shows the profit/loss made from dealing, it does not include interest payments,
|
|
67
|
+
dividends, or other adjustments that may have occurred over this period.
|
|
68
68
|
|
|
69
|
-
Total: #{Format.colored_currency profit_loss, currency}
|
|
70
|
-
MSG
|
|
69
|
+
Total: #{Format.colored_currency profit_loss, currency}
|
|
70
|
+
MSG
|
|
71
71
|
end
|
|
72
72
|
end
|
|
73
73
|
end
|
|
@@ -21,12 +21,12 @@ module IGMarkets
|
|
|
21
21
|
|
|
22
22
|
table = Tables::HistoricalPriceResultSnapshotsTable.new result.prices, title: "Prices for #{options[:epic]}"
|
|
23
23
|
|
|
24
|
-
puts
|
|
25
|
-
#{table}
|
|
24
|
+
puts <<~MSG
|
|
25
|
+
#{table}
|
|
26
26
|
|
|
27
|
-
Allowance: #{allowance.total_allowance}
|
|
28
|
-
Remaining: #{allowance.remaining_allowance}
|
|
29
|
-
MSG
|
|
27
|
+
Allowance: #{allowance.total_allowance}
|
|
28
|
+
Remaining: #{allowance.remaining_allowance}
|
|
29
|
+
MSG
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
|
|
@@ -9,7 +9,7 @@ module IGMarkets
|
|
|
9
9
|
dealing_platform.watchlists.all.each_with_index do |watchlist, index|
|
|
10
10
|
table = Tables::MarketOverviewsTable.new watchlist.markets, title: table_title(watchlist)
|
|
11
11
|
|
|
12
|
-
puts '' if index
|
|
12
|
+
puts '' if index.positive?
|
|
13
13
|
puts table
|
|
14
14
|
end
|
|
15
15
|
end
|
|
@@ -13,8 +13,8 @@ module IGMarkets
|
|
|
13
13
|
def initialize(content = {})
|
|
14
14
|
@content = content || {}
|
|
15
15
|
|
|
16
|
-
@profiles = (@content['profiles'] || {}).
|
|
17
|
-
|
|
16
|
+
@profiles = (@content['profiles'] || {}).transform_values do |profile_arguments|
|
|
17
|
+
profile_arguments.map do |argument, value|
|
|
18
18
|
"--#{argument}=#{value}"
|
|
19
19
|
end
|
|
20
20
|
end
|
data/lib/ig_markets/cli/main.rb
CHANGED
|
@@ -73,8 +73,8 @@ module IGMarkets
|
|
|
73
73
|
@dealing_platform.sign_in options[:username], options[:password], options[:api_key], platform
|
|
74
74
|
|
|
75
75
|
yield @dealing_platform
|
|
76
|
-
rescue IGMarketsError =>
|
|
77
|
-
warn_and_exit
|
|
76
|
+
rescue IGMarketsError => e
|
|
77
|
+
warn_and_exit e
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
# Requests and displays the deal confirmation for the passed deal reference. If the request for the deal
|
|
@@ -87,14 +87,12 @@ module IGMarkets
|
|
|
87
87
|
puts "Deal reference: #{deal_reference}"
|
|
88
88
|
|
|
89
89
|
5.times do |index|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
raise if index == 4
|
|
90
|
+
return print_deal_confirmation @dealing_platform.deal_confirmation(deal_reference)
|
|
91
|
+
rescue Errors::DealNotFoundError
|
|
92
|
+
raise if index == 4
|
|
94
93
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
end
|
|
94
|
+
puts 'Deal not found, retrying ...'
|
|
95
|
+
sleep 2
|
|
98
96
|
end
|
|
99
97
|
end
|
|
100
98
|
|
|
@@ -159,11 +157,11 @@ module IGMarkets
|
|
|
159
157
|
|
|
160
158
|
# Prints out details of the passed deal confirmation.
|
|
161
159
|
def print_deal_confirmation(deal_confirmation)
|
|
162
|
-
puts
|
|
163
|
-
Deal ID: #{deal_confirmation.deal_id}
|
|
164
|
-
Status: #{Format.symbol deal_confirmation.deal_status}
|
|
165
|
-
Result: #{Format.symbol deal_confirmation.status}
|
|
166
|
-
MSG
|
|
160
|
+
puts <<~MSG
|
|
161
|
+
Deal ID: #{deal_confirmation.deal_id}
|
|
162
|
+
Status: #{Format.symbol deal_confirmation.deal_status}
|
|
163
|
+
Result: #{Format.symbol deal_confirmation.status}
|
|
164
|
+
MSG
|
|
167
165
|
|
|
168
166
|
print_deal_confirmation_profit_loss deal_confirmation
|
|
169
167
|
|
|
@@ -24,9 +24,9 @@ module IGMarkets
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def cell_color(value, _model, _row_index, column_index)
|
|
27
|
-
return unless headings[column_index]
|
|
27
|
+
return unless /Change/.match?(headings[column_index])
|
|
28
28
|
|
|
29
|
-
if value
|
|
29
|
+
if /-/.match?(value)
|
|
30
30
|
:red
|
|
31
31
|
else
|
|
32
32
|
:green
|
|
@@ -211,7 +211,7 @@ module IGMarkets
|
|
|
211
211
|
model.send "#{attribute}=", value
|
|
212
212
|
else
|
|
213
213
|
unless Array(@reported_unrecognized_values).include? [model.class, attribute, value]
|
|
214
|
-
warn "ig_markets: received unrecognized value for #{model.class}##{attribute}: #{value}"
|
|
214
|
+
warn "ig_markets: received unrecognized value for #{model.class.name}##{attribute}: #{value}"
|
|
215
215
|
(@reported_unrecognized_values ||= []) << [model.class, attribute, value]
|
|
216
216
|
end
|
|
217
217
|
end
|
|
@@ -34,7 +34,7 @@ module IGMarkets
|
|
|
34
34
|
return [] if epics.empty?
|
|
35
35
|
|
|
36
36
|
epics.each do |epic|
|
|
37
|
-
raise ArgumentError, "invalid EPIC: #{epic}" unless epic.to_s
|
|
37
|
+
raise ArgumentError, "invalid EPIC: #{epic}" unless Regex::EPIC.match?(epic.to_s)
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
# The API imposes a maximum of 50 EPICs per request
|
|
@@ -12,7 +12,7 @@ module IGMarkets
|
|
|
12
12
|
|
|
13
13
|
# Connects the streaming session. Raises a `Lightstreamer::LightstreamerError` if an error occurs.
|
|
14
14
|
def connect
|
|
15
|
-
@lightstreamer
|
|
15
|
+
@lightstreamer&.disconnect
|
|
16
16
|
|
|
17
17
|
@lightstreamer = Lightstreamer::Session.new username: username, password: password, server_url: server_url
|
|
18
18
|
@lightstreamer.on_error { |error| @on_error_callbacks.each { |callback| callback.call error } }
|
|
@@ -21,7 +21,7 @@ module IGMarkets
|
|
|
21
21
|
|
|
22
22
|
# Disconnects the streaming session.
|
|
23
23
|
def disconnect
|
|
24
|
-
@lightstreamer
|
|
24
|
+
@lightstreamer&.disconnect
|
|
25
25
|
@lightstreamer = nil
|
|
26
26
|
end
|
|
27
27
|
|
data/lib/ig_markets/format.rb
CHANGED
data/lib/ig_markets/model.rb
CHANGED
|
@@ -47,12 +47,12 @@ module IGMarkets
|
|
|
47
47
|
#
|
|
48
48
|
# @return [Hash]
|
|
49
49
|
def to_h
|
|
50
|
-
attributes.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
50
|
+
attributes.transform_values do |value|
|
|
51
|
+
if value.is_a? Model
|
|
52
|
+
value.to_h
|
|
53
|
+
else
|
|
54
|
+
value
|
|
55
|
+
end
|
|
56
56
|
end
|
|
57
57
|
end
|
|
58
58
|
|
|
@@ -113,7 +113,7 @@ module IGMarkets
|
|
|
113
113
|
return true if defined_attribute_names.include?(name) || Array(deprecated_attributes).include?(name)
|
|
114
114
|
|
|
115
115
|
unless Array(@reported_invalid_attributes).include? name
|
|
116
|
-
warn "ig_markets: unrecognized attribute #{self}##{name}"
|
|
116
|
+
warn "ig_markets: unrecognized attribute #{self.name}##{name}"
|
|
117
117
|
(@reported_invalid_attributes ||= []) << name
|
|
118
118
|
end
|
|
119
119
|
|
|
@@ -202,7 +202,7 @@ module IGMarkets
|
|
|
202
202
|
value = self.class.send "sanitize_#{name}_value", value
|
|
203
203
|
|
|
204
204
|
unless self.class.attribute_value_allowed? name, value
|
|
205
|
-
raise ArgumentError, "#{self.class}##{name}: invalid value: #{value.inspect}"
|
|
205
|
+
raise ArgumentError, "#{self.class.name}##{name}: invalid value: #{value.inspect}"
|
|
206
206
|
end
|
|
207
207
|
|
|
208
208
|
(@attributes ||= {})[name] = value
|
|
@@ -10,7 +10,7 @@ module IGMarkets
|
|
|
10
10
|
elsif type
|
|
11
11
|
lambda do |value, _options, name|
|
|
12
12
|
if Array(value).any? { |entry| !entry.is_a? type }
|
|
13
|
-
raise ArgumentError, "incorrect type set on #{self}##{name}: #{value.inspect}"
|
|
13
|
+
raise ArgumentError, "incorrect type set on #{self.name}##{name}: #{value.inspect}"
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
value
|
|
@@ -22,14 +22,14 @@ module IGMarkets
|
|
|
22
22
|
return value if [nil, true, false].include? value
|
|
23
23
|
return value == '1' if %w[0 1].include? value
|
|
24
24
|
|
|
25
|
-
raise ArgumentError, "#{self}##{name}: invalid boolean value: #{value}"
|
|
25
|
+
raise ArgumentError, "#{self.name}##{name}: invalid boolean value: #{value}"
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def typecaster_string(value, options, name)
|
|
29
29
|
return nil if value.nil?
|
|
30
30
|
|
|
31
31
|
if options.key?(:regex) && !options[:regex].match(value.to_s)
|
|
32
|
-
raise ArgumentError, "#{self}##{name}: invalid string value: #{value}"
|
|
32
|
+
raise ArgumentError, "#{self.name}##{name}: invalid string value: #{value}"
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
value.to_s
|
|
@@ -46,7 +46,7 @@ module IGMarkets
|
|
|
46
46
|
|
|
47
47
|
Float(value)
|
|
48
48
|
rescue ArgumentError
|
|
49
|
-
raise ArgumentError, "#{self}##{name}: invalid float value: #{value}"
|
|
49
|
+
raise ArgumentError, "#{self.name}##{name}: invalid float value: #{value}"
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
def typecaster_symbol(value, _options, _name)
|
|
@@ -65,14 +65,12 @@ module IGMarkets
|
|
|
65
65
|
|
|
66
66
|
def parse_formatted_date_value(value, options, name)
|
|
67
67
|
Array(options[:format]).each do |format|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
next
|
|
72
|
-
end
|
|
68
|
+
return Date.strptime value, format
|
|
69
|
+
rescue ArgumentError
|
|
70
|
+
next
|
|
73
71
|
end
|
|
74
72
|
|
|
75
|
-
raise ArgumentError, "#{self}##{name}: failed parsing date: #{value}"
|
|
73
|
+
raise ArgumentError, "#{self.name}##{name}: failed parsing date: #{value}"
|
|
76
74
|
end
|
|
77
75
|
|
|
78
76
|
def typecaster_time(value, options, name)
|
|
@@ -85,14 +83,12 @@ module IGMarkets
|
|
|
85
83
|
|
|
86
84
|
def parse_formatted_time_value(value, options, name)
|
|
87
85
|
Array(options[:format]).each do |format|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
next
|
|
92
|
-
end
|
|
86
|
+
return parse_time_using_format value, format
|
|
87
|
+
rescue ArgumentError
|
|
88
|
+
next
|
|
93
89
|
end
|
|
94
90
|
|
|
95
|
-
raise ArgumentError, "#{self}##{name}: failed parsing time: #{value}"
|
|
91
|
+
raise ArgumentError, "#{self.name}##{name}: failed parsing time: #{value}"
|
|
96
92
|
end
|
|
97
93
|
|
|
98
94
|
def parse_time_using_format(value, format)
|
data/lib/ig_markets/regex.rb
CHANGED
|
@@ -4,9 +4,9 @@ module IGMarkets
|
|
|
4
4
|
# @private
|
|
5
5
|
module Regex
|
|
6
6
|
# Regex used to validate an ISO currency code.
|
|
7
|
-
CURRENCY = /\A[A-Z]{3}\Z
|
|
7
|
+
CURRENCY = /\A[A-Z]{3}\Z/.freeze
|
|
8
8
|
|
|
9
9
|
# Regex used to validate an EPIC.
|
|
10
|
-
EPIC = /\A[A-Z,a-z,0-9,.,_]{6,30}\Z
|
|
10
|
+
EPIC = /\A[A-Z,a-z,0-9,.,_]{6,30}\Z/.freeze
|
|
11
11
|
end
|
|
12
12
|
end
|
data/lib/ig_markets/session.rb
CHANGED
|
@@ -148,8 +148,8 @@ module IGMarkets
|
|
|
148
148
|
write_to_log_sinks { RequestFormatter.format_response response }
|
|
149
149
|
|
|
150
150
|
process_response response, options
|
|
151
|
-
rescue Excon::Error =>
|
|
152
|
-
raise Errors::ConnectionError,
|
|
151
|
+
rescue Excon::Error => e
|
|
152
|
+
raise Errors::ConnectionError, e.message
|
|
153
153
|
end
|
|
154
154
|
|
|
155
155
|
def write_to_log_sinks
|
|
@@ -44,11 +44,11 @@ module IGMarkets
|
|
|
44
44
|
|
|
45
45
|
private
|
|
46
46
|
|
|
47
|
-
ACCOUNT_DATA_REGEX = /^ACCOUNT:(.*)
|
|
48
|
-
MARKET_DATA_REGEX = /^MARKET:(.*)
|
|
49
|
-
TRADE_DATA_REGEX = /^TRADE:(.*)
|
|
50
|
-
CHART_TICK_DATA_REGEX = /^CHART:(.*):TICK
|
|
51
|
-
CONSOLIDATED_CHART_DATA_REGEX = /^CHART:(.*):(SECOND|1MINUTE|5MINUTE|HOUR)
|
|
47
|
+
ACCOUNT_DATA_REGEX = /^ACCOUNT:(.*)$/.freeze
|
|
48
|
+
MARKET_DATA_REGEX = /^MARKET:(.*)$/.freeze
|
|
49
|
+
TRADE_DATA_REGEX = /^TRADE:(.*)$/.freeze
|
|
50
|
+
CHART_TICK_DATA_REGEX = /^CHART:(.*):TICK$/.freeze
|
|
51
|
+
CONSOLIDATED_CHART_DATA_REGEX = /^CHART:(.*):(SECOND|1MINUTE|5MINUTE|HOUR)$/.freeze
|
|
52
52
|
|
|
53
53
|
def on_raw_data(_subscription, item_name, item_data, new_data)
|
|
54
54
|
{
|
|
@@ -58,7 +58,7 @@ module IGMarkets
|
|
|
58
58
|
CHART_TICK_DATA_REGEX => :on_chart_tick_data,
|
|
59
59
|
CONSOLIDATED_CHART_DATA_REGEX => :on_consolidated_chart_data
|
|
60
60
|
}.each do |regex, handler|
|
|
61
|
-
send handler, item_name, item_data, new_data if item_name
|
|
61
|
+
send handler, item_name, item_data, new_data if item_name&.match?(regex)
|
|
62
62
|
end
|
|
63
63
|
end
|
|
64
64
|
|
data/lib/ig_markets/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ig_markets
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: '0.
|
|
4
|
+
version: '0.34'
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Richard Viney
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-04-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: colorize
|
|
@@ -30,42 +30,42 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0.
|
|
33
|
+
version: '0.73'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0.
|
|
40
|
+
version: '0.73'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: lightstreamer
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0.
|
|
47
|
+
version: '0.16'
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0.
|
|
54
|
+
version: '0.16'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: pry
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '0.
|
|
61
|
+
version: '0.13'
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '0.
|
|
68
|
+
version: '0.13'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: terminal-table
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -82,26 +82,12 @@ dependencies:
|
|
|
82
82
|
version: '1.6'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: thor
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - "~>"
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0.19'
|
|
90
|
-
type: :runtime
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - "~>"
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0.19'
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: codeclimate-test-reporter
|
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
|
100
86
|
requirements:
|
|
101
87
|
- - "~>"
|
|
102
88
|
- !ruby/object:Gem::Version
|
|
103
89
|
version: '1.0'
|
|
104
|
-
type: :
|
|
90
|
+
type: :runtime
|
|
105
91
|
prerelease: false
|
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
93
|
requirements:
|
|
@@ -114,28 +100,28 @@ dependencies:
|
|
|
114
100
|
requirements:
|
|
115
101
|
- - "~>"
|
|
116
102
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
103
|
+
version: '5.0'
|
|
118
104
|
type: :development
|
|
119
105
|
prerelease: false
|
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
107
|
requirements:
|
|
122
108
|
- - "~>"
|
|
123
109
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '
|
|
110
|
+
version: '5.0'
|
|
125
111
|
- !ruby/object:Gem::Dependency
|
|
126
112
|
name: github-markup
|
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
|
128
114
|
requirements:
|
|
129
115
|
- - "~>"
|
|
130
116
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '
|
|
117
|
+
version: '3.0'
|
|
132
118
|
type: :development
|
|
133
119
|
prerelease: false
|
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
121
|
requirements:
|
|
136
122
|
- - "~>"
|
|
137
123
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: '
|
|
124
|
+
version: '3.0'
|
|
139
125
|
- !ruby/object:Gem::Dependency
|
|
140
126
|
name: redcarpet
|
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -184,42 +170,56 @@ dependencies:
|
|
|
184
170
|
requirements:
|
|
185
171
|
- - "~>"
|
|
186
172
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: 0.
|
|
173
|
+
version: '0.82'
|
|
174
|
+
type: :development
|
|
175
|
+
prerelease: false
|
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - "~>"
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: '0.82'
|
|
181
|
+
- !ruby/object:Gem::Dependency
|
|
182
|
+
name: rubocop-performance
|
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
|
184
|
+
requirements:
|
|
185
|
+
- - "~>"
|
|
186
|
+
- !ruby/object:Gem::Version
|
|
187
|
+
version: '1.4'
|
|
188
188
|
type: :development
|
|
189
189
|
prerelease: false
|
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
191
191
|
requirements:
|
|
192
192
|
- - "~>"
|
|
193
193
|
- !ruby/object:Gem::Version
|
|
194
|
-
version:
|
|
194
|
+
version: '1.4'
|
|
195
195
|
- !ruby/object:Gem::Dependency
|
|
196
196
|
name: rubocop-rspec
|
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
|
198
198
|
requirements:
|
|
199
199
|
- - "~>"
|
|
200
200
|
- !ruby/object:Gem::Version
|
|
201
|
-
version: '1.
|
|
201
|
+
version: '1.35'
|
|
202
202
|
type: :development
|
|
203
203
|
prerelease: false
|
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
|
205
205
|
requirements:
|
|
206
206
|
- - "~>"
|
|
207
207
|
- !ruby/object:Gem::Version
|
|
208
|
-
version: '1.
|
|
208
|
+
version: '1.35'
|
|
209
209
|
- !ruby/object:Gem::Dependency
|
|
210
210
|
name: simplecov
|
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
|
212
212
|
requirements:
|
|
213
213
|
- - "~>"
|
|
214
214
|
- !ruby/object:Gem::Version
|
|
215
|
-
version: '0.
|
|
215
|
+
version: '0.18'
|
|
216
216
|
type: :development
|
|
217
217
|
prerelease: false
|
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
|
219
219
|
requirements:
|
|
220
220
|
- - "~>"
|
|
221
221
|
- !ruby/object:Gem::Version
|
|
222
|
-
version: '0.
|
|
222
|
+
version: '0.18'
|
|
223
223
|
- !ruby/object:Gem::Dependency
|
|
224
224
|
name: yard
|
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -339,15 +339,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
339
339
|
requirements:
|
|
340
340
|
- - ">="
|
|
341
341
|
- !ruby/object:Gem::Version
|
|
342
|
-
version: 2.
|
|
342
|
+
version: '2.5'
|
|
343
343
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
344
344
|
requirements:
|
|
345
345
|
- - ">="
|
|
346
346
|
- !ruby/object:Gem::Version
|
|
347
347
|
version: '0'
|
|
348
348
|
requirements: []
|
|
349
|
-
|
|
350
|
-
rubygems_version: 2.7.3
|
|
349
|
+
rubygems_version: 3.0.3
|
|
351
350
|
signing_key:
|
|
352
351
|
specification_version: 4
|
|
353
352
|
summary: Library and command-line client for accessing the IG Markets dealing platform.
|