gekko 1.2.0 → 1.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4a6c74d9cd4db77db4b045b3cbef970af72ad93b
4
- data.tar.gz: 2cc81dd40f090dbe5b1e512a8e973daff6e0310c
3
+ metadata.gz: bb8344296bc6255d9d2cb07afb472b9552e7e529
4
+ data.tar.gz: 8f24a614dcc4e2ee7a99d4533756628e580804fb
5
5
  SHA512:
6
- metadata.gz: 1fed15e7db3bc630c741eed42d7e191ce1390894abc9dbfed90e4bcb5161dac6d680ba8bd8aab3198854574abd35e94676d89237ae28685c64565bf4dda43c51
7
- data.tar.gz: b66b9ad7f75edea38f2391572a2dbb3d6172008ca96338f4799745d6f22c959112a16406e40c8b31235f7c16c7454358e91d2204b9e320cce633465b628af6ca
6
+ metadata.gz: 9883ae5b9fcfb9350f436d00b452afec85cc968fb9f120dc5199aa613ccdd0a65630d05129ffc3acde3cf3ecaf9fbbf24a7279970c8792e116f6625dffbc28e8
7
+ data.tar.gz: c77cca9c1201a2433b489dca95edeb6902446f74b7521b04c6518b67e94e5151bf902e0c1c984b1782e5a4b9a62c774e2007b5ad6f0a9c27f4a6943fef6c983c
@@ -291,13 +291,15 @@ module Gekko
291
291
  # @return [Gekko::Book] The loaded book instance
292
292
  #
293
293
  def self.from_hash(hsh)
294
+ h = symbolize_keys(hsh)
295
+
294
296
  book = Book.new(hsh[:pair], {
295
- bids: BookSide.from_hash(:bid, hsh[:bids]),
296
- asks: BookSide.from_hash(:ask, hsh[:asks])
297
+ bids: BookSide.from_hash(:bid, h[:bids]),
298
+ asks: BookSide.from_hash(:ask, h[:asks])
297
299
  })
298
300
 
299
301
  [:bids, :asks].each { |s| book.send(s).each { |ord| book.received[ord.id.to_s] = ord } }
300
- book.tape = Tape.from_hash(symbolize_keys(hsh[:tape])) if hsh[:tape]
302
+ book.tape = Tape.from_hash(h[:tape]) if h[:tape]
301
303
 
302
304
  book
303
305
  end
@@ -42,8 +42,8 @@ module Gekko
42
42
  #
43
43
  def self.from_hash(side, h)
44
44
  h = symbolize_keys(h)
45
- bs = new(side, orders: h[:orders].map { |o| symbolize_keys(o) })
46
- bs.stops = h[:stops].map { |o| Gekko::Order.from_hash(symbolize_keys(o)) }
45
+ bs = new(side, orders: h[:orders])
46
+ bs.stops = h[:stops].map { |o| Gekko::Order.from_hash(o) }
47
47
  bs
48
48
  end
49
49
 
@@ -184,13 +184,14 @@ module Gekko
184
184
  # @return [Gekko::Order] A trade order
185
185
  #
186
186
  def self.from_hash(hsh)
187
- order = (hsh[:price] ? LimitOrder : MarketOrder).from_hash(hsh)
187
+ h = symbolize_keys(hsh)
188
188
 
189
- if hsh[:stop]
190
- hsh[:stop] = symbolize_keys(hsh[:stop])
191
- order.stop_price = hsh[:stop][:price]
192
- order.stop_offset = hsh[:stop][:offset]
193
- order.stop_percent = hsh[:stop][:percent]
189
+ order = (h[:price] ? LimitOrder : MarketOrder).from_hash(h)
190
+
191
+ if h[:stop]
192
+ order.stop_price = h[:stop][:price]
193
+ order.stop_offset = h[:stop][:offset]
194
+ order.stop_percent = h[:stop][:percent]
194
195
  end
195
196
 
196
197
  order
@@ -6,13 +6,20 @@ module Gekko
6
6
  module SymbolizeKeys
7
7
 
8
8
  #
9
- # Symbolizes keys of a non-nested +Hash+
9
+ # Symbolizes keys of a +Hash+
10
10
  #
11
11
  # @param hsh [Hash] The +Hash+ for which we want to symbolize the keys
12
- # @return [Hash] A copy of the parameter with all first-level keys symbolized
12
+ # @return [Hash] A copy of the parameter with all keys symbolized
13
13
  #
14
14
  def symbolize_keys(hsh)
15
- hsh.inject({}) { |mem, obj| mem[obj[0].to_sym] = obj[1]; mem }
15
+ hsh.inject({}) do |mem, obj|
16
+ val = obj[1]
17
+ val = symbolize_keys(val) if val.is_a?(Hash)
18
+ val.map! { |v| ((v.is_a?(Array) || v.is_a?(Hash)) && symbolize_keys(v)) || v } if val.is_a?(Array)
19
+
20
+ mem[obj[0].to_sym] = val
21
+ mem
22
+ end
16
23
  end
17
24
 
18
25
  end
@@ -1,6 +1,6 @@
1
1
  module Gekko
2
2
 
3
3
  # The Gekko version string
4
- VERSION = '1.2.0'
4
+ VERSION = '1.2.1'
5
5
 
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gekko
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David FRANCOIS
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-20 00:00:00.000000000 Z
11
+ date: 2016-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: uuidtools