bitstamp-2 0.5.0 → 0.6.0

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: 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