bitstampede 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -40,7 +40,11 @@ module Bitstampede
40
40
  end
41
41
 
42
42
  def trade!(type, amount, price)
43
- mapper.map_order(net.post(type, { price: price.to_digits, amount: amount.to_digits }))
43
+ begin
44
+ mapper.map_order(net.post(type, { price: price.to_digits, amount: amount.to_digits }))
45
+ rescue ::StandardError => e
46
+ raise Bitstampede::StandardError.new(e.message)
47
+ end
44
48
  end
45
49
  end
46
50
  end
@@ -1,3 +1,3 @@
1
1
  module Bitstampede
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/bitstampede.rb CHANGED
@@ -4,6 +4,8 @@ require 'multi_json'
4
4
  require 'yajl'
5
5
 
6
6
  module Bitstampede
7
+ class StandardError < ::StandardError; end
8
+
7
9
  module Helpers
8
10
  def self.json_parse(string)
9
11
  MultiJson.load(string)
@@ -59,16 +59,22 @@ describe Bitstampede::Client do
59
59
  before do
60
60
  net.stub(:post).and_return(api_buy_response)
61
61
  mapper.stub(:map_order).and_return(order_object)
62
- subject.buy!(BigDecimal('100'), BigDecimal('1'))
63
62
  end
64
63
 
65
64
  it 'submits a buy order to the API' do
65
+ subject.buy!(BigDecimal('100'), BigDecimal('1'))
66
66
  expect(net).to have_received(:post).with('buy', { amount: '100.0', price: '1.0' })
67
67
  end
68
68
 
69
69
  it 'maps the API response to an Order object' do
70
+ subject.buy!(BigDecimal('100'), BigDecimal('1'))
70
71
  expect(mapper).to have_received(:map_order).with(api_buy_response)
71
72
  end
73
+
74
+ it 'wraps exceptions in its own class' do
75
+ net.stub(:post).and_raise(StandardError)
76
+ expect{ subject.buy!(BigDecimal('100'), BigDecimal('1')) }.to raise_error(Bitstampede::StandardError)
77
+ end
72
78
  end
73
79
 
74
80
  describe 'sell!' do
@@ -88,6 +94,11 @@ describe Bitstampede::Client do
88
94
  it 'maps the API response to an Order object' do
89
95
  expect(mapper).to have_received(:map_order).with(api_sell_response)
90
96
  end
97
+
98
+ it 'wraps exceptions in its own class' do
99
+ net.stub(:post).and_raise(StandardError)
100
+ expect{ subject.sell!(BigDecimal('100'), BigDecimal('1')) }.to raise_error(Bitstampede::StandardError)
101
+ end
91
102
  end
92
103
 
93
104
  describe 'cancel' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitstampede
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -191,7 +191,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
191
191
  version: '0'
192
192
  segments:
193
193
  - 0
194
- hash: 3990428723948535176
194
+ hash: 1066769478697545710
195
195
  required_rubygems_version: !ruby/object:Gem::Requirement
196
196
  none: false
197
197
  requirements:
@@ -200,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
200
  version: '0'
201
201
  segments:
202
202
  - 0
203
- hash: 3990428723948535176
203
+ hash: 1066769478697545710
204
204
  requirements: []
205
205
  rubyforge_project:
206
206
  rubygems_version: 1.8.25