bitstamp-2 0.5.0 → 0.6.0

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: 947c40d039fd922eee00f49d476948ccabc80844
4
- data.tar.gz: 33a2da15263047c404fea89be45bed5235f55545
3
+ metadata.gz: 808ee30bc327ba6365dbb891bc3dce12021e7a74
4
+ data.tar.gz: 792a8a864f79d890ddcb51e11715fb825091a79c
5
5
  SHA512:
6
- metadata.gz: fcc0386cde7f0ddd45c3cbb4c6f8b755a8cd98e4c31acc5695406d467d92cc23ce02b28cc8a64280a0be8a76e4797c1dc601dee22348ff633a69e80548125b64
7
- data.tar.gz: afd711b187915c9530742364fb403cedfff1c7c17aef60258665b19e5c643d9dda66f6c67644bdc773564040572075a21590d99fd246fd7e686743c5202112e4
6
+ metadata.gz: 1f9508d0917a1bc56666dda35e8040f80f46e05498bf3aa1fd2937049907c1e8758e6e76c6fb2c3982257ddf53c777165ae8fa33e4290462eb7c6a6eb3bc9751
7
+ data.tar.gz: c3c59d1e2467e4cd2132a4a8622737f1434a13d7850e6e140c424d880fd3b192a4bf4bd79481efa5f1b4d75ad0d48d25e7d4dbeb4be541d1e692662c0cbc7ef5
data/Gemfile CHANGED
@@ -7,4 +7,5 @@ gemspec
7
7
  group :test do
8
8
  gem "vcr", "2.6.0"
9
9
  gem "webmock", "1.13.0"
10
+ gem 'pry'
10
11
  end
data/Gemfile.lock CHANGED
@@ -21,6 +21,7 @@ GEM
21
21
  tzinfo (~> 1.1)
22
22
  addressable (2.3.5)
23
23
  builder (3.2.2)
24
+ coderay (1.1.1)
24
25
  crack (0.4.1)
25
26
  safe_yaml (~> 0.9.0)
26
27
  diff-lcs (1.2.4)
@@ -34,7 +35,12 @@ GEM
34
35
  rake
35
36
  rdoc
36
37
  json (1.8.3)
38
+ method_source (0.8.2)
37
39
  minitest (5.8.4)
40
+ pry (0.10.3)
41
+ coderay (~> 1.1.0)
42
+ method_source (~> 0.8.1)
43
+ slop (~> 3.4)
38
44
  rack (1.6.4)
39
45
  rake (10.0.4)
40
46
  rdoc (3.12.2)
@@ -49,6 +55,7 @@ GEM
49
55
  rspec-mocks (2.13.1)
50
56
  ruby-hmac (0.4.0)
51
57
  safe_yaml (0.9.7)
58
+ slop (3.6.0)
52
59
  thread_safe (0.3.5)
53
60
  tzinfo (1.2.2)
54
61
  thread_safe (~> 0.1)
@@ -64,6 +71,7 @@ DEPENDENCIES
64
71
  bitstamp-2!
65
72
  bundler (~> 1.11.2)
66
73
  jeweler (~> 1.8.4)
74
+ pry
67
75
  rdoc (~> 3.12)
68
76
  rspec
69
77
  vcr (= 2.6.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 0.5.0
data/bitstamp.gemspec CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "bitstamp-2"
9
- s.version = "0.5.0"
9
+ s.version = "0.6.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.authors = ["Jeffrey Wilcke"]
data/lib/bitstamp.rb CHANGED
@@ -16,10 +16,10 @@ require 'bitstamp/ticker'
16
16
  String.send(:include, ActiveSupport::Inflector)
17
17
 
18
18
  module Bitstamp
19
-
19
+
20
20
  # Connection timeouts
21
21
  mattr_accessor :conn_timeout
22
-
22
+
23
23
  # API Key
24
24
  mattr_accessor :key
25
25
 
@@ -29,10 +29,18 @@ module Bitstamp
29
29
  # Bitstamp client ID
30
30
  mattr_accessor :client_id
31
31
 
32
+ # Bitstamp nonce parameter generator
33
+ mattr_accessor :nonce_parameter_generator
34
+
32
35
  # Currency
33
36
  mattr_accessor :currency
34
37
  @@currency = :usd
35
38
 
39
+ def self.nonce_parameter
40
+ return self.nonce_parameter_generator.call if nonce_parameter_generator
41
+ (Time.now.to_f*10000).to_i.to_s
42
+ end
43
+
36
44
  def self.orders
37
45
  self.sanity_check!
38
46
 
data/lib/bitstamp/net.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Bitstamp
2
2
  module Net
3
3
  HTTPI_ADAPTER = :net_http
4
-
4
+
5
5
  def self.to_uri(path)
6
6
  return "https://www.bitstamp.net/api#{path}/"
7
7
  end
@@ -16,7 +16,7 @@ module Bitstamp
16
16
 
17
17
  if Bitstamp.configured?
18
18
  options[:key] = Bitstamp.key
19
- options[:nonce] = (Time.now.to_f*10000).to_i.to_s
19
+ options[:nonce] = self.nonce_parameter
20
20
  options[:signature] = HMAC::SHA256.hexdigest(Bitstamp.secret, options[:nonce]+Bitstamp.client_id.to_s+options[:key]).upcase
21
21
  end
22
22
 
@@ -25,6 +25,10 @@ module Bitstamp
25
25
  HTTPI.request(verb, r, HTTPI_ADAPTER)
26
26
  end
27
27
 
28
+ def self.nonce_parameter
29
+ Bitstamp.nonce_parameter
30
+ end
31
+
28
32
  def self.get(path, options={})
29
33
  self.req(:get, path, options)
30
34
  end
@@ -7,14 +7,25 @@ describe Bitstamp do
7
7
  it { -> { Bitstamp.sanity_check! }.should raise_error }
8
8
  end
9
9
  context 'properly configured' do
10
+ let(:nonce_parameter_generator) do
11
+ Proc.new do
12
+ "#{Time.now.to_i}#{(Time.now.nsec / 1_000_000)}".to_i
13
+ end
14
+ end
15
+
10
16
  before {
11
17
  Bitstamp.setup do |config|
12
18
  config.key = 'test'
13
19
  config.secret = 'test'
14
20
  config.client_id = 'test'
21
+ config.nonce_parameter_generator = nonce_parameter_generator
15
22
  end
16
23
  }
17
24
  it { -> { Bitstamp.sanity_check! }.should_not raise_error }
25
+
26
+ it 'generates the nonce parameter using the provided block' do
27
+ expect(Bitstamp.nonce_parameter).to eq nonce_parameter_generator.call
28
+ end
18
29
  end
19
30
  end
20
31
 
@@ -15,5 +15,6 @@ def setup_bitstamp
15
15
  config.key = ENV['BITSTAMP_KEY']
16
16
  config.secret = ENV['BITSTAMP_SECRET']
17
17
  config.client_id = ENV['BITSTAMP_CLIENT_ID']
18
+ config.nonce_parameter_generator= lambda { "#{Time.now.to_i}#{(Time.now.nsec / 1_000_000)}".to_i }
18
19
  end
19
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitstamp-2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeffrey Wilcke