gekko 1.2.0 → 1.2.1

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
  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