rbtc_arbitrage 2.4.0 → 2.4.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: 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