rbtc_arbitrage 2.4.0 → 2.4.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: e1cf621f1ce6432c980f6d975198d210b0b44fe5
4
- data.tar.gz: a6dd19d05534e1564496ad522ca061734b749614
3
+ metadata.gz: 03b66ab3de075bae1123b2cce6336a6720dd3475
4
+ data.tar.gz: b401cd2f50df7ae33d765763de06bca04a23a2db
5
5
  SHA512:
6
- metadata.gz: 208a85b91199484e921f9aad38affaac5c11a68f67ea72f6655d6e61ee5ccb5022dd2786f5319cc0219bfc82b98d0aa9f41689fd9dd2421ff72687b52cc441f8
7
- data.tar.gz: f823818846d1a5a2731b82780530f7dd838b9ec8408aa19333ffad7c2bc688464ca766d6f53cb31623414fca2a3648924b69662cae55282a15d0ddf96f679d92
6
+ metadata.gz: e8646a751732d8a0f990f2672514c0f7eca6d6e6492f1d6cdc8b8dd4b02c6083dacec28c837df6a233ab088b9a8e3701058777b249e2d75da3a57df4ceafde96
7
+ data.tar.gz: e3e38b866e6ff157944ab080061a1720db9ecdac316c397ce22b9a13c94d707f1e28d6d4d10c164ccef350a4a198afbaf5c1dd1a15f8b2553c8cebe2d7b8c25e
data/Gemfile CHANGED
@@ -1,6 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in rbtc_arbitrage.gemspec
4
3
  gemspec
5
4
  group :development do
6
5
  gem 'rspec'
@@ -8,7 +7,6 @@ group :development do
8
7
  gem "activesupport", ">= 3.1"
9
8
  gem 'guard'
10
9
  gem 'ruby_gntp'
11
- # gem 'awesome_print'
12
10
  gem 'guard-rspec'
13
11
  gem 'simplecov'
14
12
  gem 'coveralls', require: false
@@ -17,5 +15,4 @@ group :development do
17
15
  gem 'codeclimate-test-reporter'
18
16
  gem 'hashie'
19
17
  gem 'sinatra'
20
- gem 'bitstamp', github: 'kojnapp/bitstamp', ref: 'aa6d572d1796a9fdae49220304c5cad9c4d058ee'
21
18
  end
data/Gemfile.lock CHANGED
@@ -1,26 +1,17 @@
1
- GIT
2
- remote: git://github.com/kojnapp/bitstamp.git
3
- revision: aa6d572d1796a9fdae49220304c5cad9c4d058ee
4
- ref: aa6d572d1796a9fdae49220304c5cad9c4d058ee
5
- specs:
6
- bitstamp (0.4.0)
7
- activemodel (>= 3.1)
8
- activesupport (>= 3.1)
9
- curb (> 0.8.1)
10
- ruby-hmac (= 0.4.0)
11
-
12
1
  PATH
13
2
  remote: .
14
3
  specs:
15
- rbtc_arbitrage (2.4.0)
4
+ rbtc_arbitrage (2.4.1)
16
5
  activemodel (>= 3.1)
17
6
  activesupport (>= 3.1)
7
+ bitstamp-rbtc-arbitrage
18
8
  btce (= 0.2.4)
19
9
  bundler (~> 1.3)
20
10
  coinbase (= 2.1.0)
21
11
  faraday (= 0.8.8)
22
12
  pony
23
13
  rake (= 10.1.1)
14
+ stathat
24
15
  tco (= 0.1.0)
25
16
  thor
26
17
 
@@ -38,6 +29,13 @@ GEM
38
29
  tzinfo (~> 0.3.37)
39
30
  addressable (2.3.5)
40
31
  atomic (1.1.16)
32
+ bitstamp-rbtc-arbitrage (0.4.0)
33
+ activemodel (>= 3.1)
34
+ activesupport
35
+ curb (> 0.8.1)
36
+ i18n (= 0.6.9)
37
+ ruby-hmac (= 0.4.0)
38
+ tzinfo
41
39
  btce (0.2.4)
42
40
  monkey-patch
43
41
  builder (3.1.4)
@@ -149,6 +147,7 @@ GEM
149
147
  rack-protection (~> 1.4)
150
148
  tilt (~> 1.3, >= 1.3.4)
151
149
  slop (3.4.7)
150
+ stathat (0.1.7)
152
151
  tco (0.1.0)
153
152
  term-ansicolor (1.2.2)
154
153
  tins (~> 0.8)
@@ -170,7 +169,6 @@ PLATFORMS
170
169
  DEPENDENCIES
171
170
  activemodel (>= 3.1)
172
171
  activesupport (>= 3.1)
173
- bitstamp!
174
172
  codeclimate-test-reporter
175
173
  coveralls
176
174
  guard
@@ -9,6 +9,7 @@ require 'btce'
9
9
  require 'coinbase'
10
10
  require 'pony'
11
11
  require 'tco'
12
+ require 'stathat'
12
13
  require_relative 'rbtc_arbitrage/client.rb'
13
14
  Dir["#{File.dirname(__FILE__)}/rbtc_arbitrage/trader/*.rb"].each { |f| require(f) }
14
15
  Dir["#{File.dirname(__FILE__)}/rbtc_arbitrage/**/*.rb"].each { |f| require(f) }
@@ -4,13 +4,22 @@ module RbtcArbitrage
4
4
  def notify
5
5
  return false unless options[:notify]
6
6
  return false unless @percent > options[:cutoff]
7
- setup_pony
8
7
 
9
- options[:logger].info "Sending email to #{ENV['SENDGRID_EMAIL']}"
10
- Pony.mail({
11
- body: notification,
12
- to: ENV['SENDGRID_EMAIL'],
13
- })
8
+ if (sendgrid_email = ENV['SENDGRID_EMAIL']).present?
9
+ setup_pony
10
+ options[:logger].info "Sending email to #{sendgrid_email}"
11
+ Pony.mail({
12
+ body: notification,
13
+ to: sendgrid_email,
14
+ })
15
+ end
16
+
17
+ if (stathat_api_key = ENV['STATHAT_API_KEY']).present?
18
+ options[:logger].info "Notifying #{ stathat_api_key } via stathat"
19
+
20
+ StatHat::SyncAPI.ez_post_value("#{@buy_client.exchange}_to_#{@sell_client.exchange}_percent", stathat_api_key, @percent)
21
+ StatHat::SyncAPI.ez_post_value("#{@buy_client.exchange}_to_#{@sell_client.exchange}_profit", stathat_api_key, @received - @paid)
22
+ end
14
23
  end
15
24
 
16
25
  def setup_pony
@@ -1,3 +1,3 @@
1
1
  module RbtcArbitrage
2
- VERSION = "2.4.0"
2
+ VERSION = "2.4.1"
3
3
  end
@@ -14,25 +14,6 @@ Gem::Specification.new do |spec|
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
- # get an array of submodule dirs by executing 'pwd' inside each submodule
18
- `git submodule --quiet foreach pwd`.split($\).each do |submodule_path|
19
- # for each submodule, change working directory to that submodule
20
- Dir.chdir(submodule_path) do
21
- # issue git ls-files in submodule's directory
22
- submodule_files = `git ls-files`.split($\)
23
- # prepend the submodule path to create absolute file paths
24
- submodule_files_fullpaths = submodule_files.map do |filename|
25
- "#{submodule_path}/#{filename}"
26
- end
27
- # remove leading path parts to get paths relative to the gem's root dir
28
- # (this assumes, that the gemspec resides in the gem's root dir)
29
- submodule_files_paths = submodule_files_fullpaths.map do |filename|
30
- filename.gsub "#{File.dirname(__FILE__)}/", ""
31
- end
32
- # add relative paths to gem.files
33
- spec.files += submodule_files_paths
34
- end
35
- end
36
17
 
37
18
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
38
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
@@ -47,7 +28,9 @@ Gem::Specification.new do |spec|
47
28
  spec.add_dependency "activesupport", ">= 3.1"
48
29
  spec.add_dependency "thor"
49
30
  spec.add_dependency "btce", '0.2.4'
31
+ spec.add_dependency "stathat"
50
32
  spec.add_dependency "coinbase", '2.1.0'
51
33
  spec.add_dependency "pony"
52
34
  spec.add_dependency "tco", "0.1.0"
35
+ spec.add_dependency "bitstamp-rbtc-arbitrage"
53
36
  end
data/spec/trader_spec.rb CHANGED
@@ -274,6 +274,9 @@ describe RbtcArbitrage::Trader do
274
274
  trader.buyer[:price] = 1
275
275
  trader.seller[:price] = 1
276
276
 
277
+ ENV['SENDGRID_EMAIL'] ||= 'something'
278
+ ENV['STATHAT_API_KEY'] = nil
279
+
277
280
  trader.options[:logger].should_receive(:info)
278
281
  Pony.should_receive(:mail).with({
279
282
  to: ENV['SENDGRID_EMAIL'],
@@ -282,6 +285,25 @@ describe RbtcArbitrage::Trader do
282
285
 
283
286
  trader.notify
284
287
  end
288
+
289
+ it 'calls StatHat when notify == true' do
290
+ trader.options[:notify] = true
291
+ trader.instance_variable_set :@percent, 3
292
+ trader.instance_variable_set :@paid, 5
293
+ trader.instance_variable_set :@received, 6
294
+ trader.buyer[:price] = 1
295
+ trader.seller[:price] = 1
296
+
297
+ ENV['STATHAT_API_KEY'] = '1234'
298
+ ENV['SENDGRID_EMAIL'] = nil
299
+
300
+ trader.options[:logger].should_receive(:info)
301
+ StatHat::SyncAPI.should_receive(:ez_post_value).with("#{trader.buy_client.exchange}_to_#{trader.sell_client.exchange}_percent", ENV['STATHAT_API_KEY'], 3).ordered
302
+ StatHat::SyncAPI.should_receive(:ez_post_value).with("#{trader.buy_client.exchange}_to_#{trader.sell_client.exchange}_profit", ENV['STATHAT_API_KEY'], 1).ordered
303
+
304
+ trader.notify
305
+ end
306
+
285
307
  end
286
308
 
287
309
  describe "#setup_pony" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbtc_arbitrage
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hank Stoever
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-25 00:00:00.000000000 Z
11
+ date: 2014-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
110
  version: 0.2.4
111
+ - !ruby/object:Gem::Dependency
112
+ name: stathat
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: coinbase
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +164,20 @@ dependencies:
150
164
  - - '='
151
165
  - !ruby/object:Gem::Version
152
166
  version: 0.1.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: bitstamp-rbtc-arbitrage
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
153
181
  description: A gem for conducting arbitrage with Bitcoin.
154
182
  email:
155
183
  - hstove@gmail.com