bitstampede 0.1.0 → 0.1.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.
@@ -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