mexbt 0.0.1 → 0.0.2

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: 604151fdb300fb326b4d2a366c034c6206a31bf6
4
- data.tar.gz: 7d51e7ad2280adbf0278676b21a65e7f4327161e
3
+ metadata.gz: 0653a2d6d27ec38617306422739ce95a108d7483
4
+ data.tar.gz: fa5beeae2838cd3ba809e5bfa57bb8ea27e823c1
5
5
  SHA512:
6
- metadata.gz: 07d0a969677141a08628aa1dd8d7882781732cb1a40a1647cfb7ca7fef5971537793b124cc7c75eef605e39e4d070f9139380f8f38def1d3b86c5c4fde4980a1
7
- data.tar.gz: ac7c77ca0b95104da901b6ee3031f5fc81acc7b18b9de67397925f796ac2cf52e4ec7b478e23a95ae7089067f32b1d8c98822f2e2629274751b906153c65114d
6
+ metadata.gz: b0c46985c1ca2e6cb7762ac308d2ff0515b0915df797c5885f575e2e47ec9f4fb198d950da59f5d8cca6989bdf0c67b9f7718324f8534708f147fbee3be2ccc7
7
+ data.tar.gz: 90d6328e6064f85e009bc830b011273eb1a1f4e0e98d40fa8909773f1e6e06b291b82cbfa94261fe9e3e8e3ecb38716046ac9589cc3a1305c64e22036fe450bf
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ Gemfile.lock
data/Gemfile CHANGED
@@ -1,9 +1,2 @@
1
1
  source "http://rubygems.org"
2
-
3
2
  gemspec
4
- gem "activesupport"
5
- gem "rest_client"
6
-
7
- group :test do
8
- gem "rspec"
9
- end
data/lib/mexbt/client.rb CHANGED
@@ -10,6 +10,9 @@ module Mexbt
10
10
  end
11
11
 
12
12
  def auth_params
13
+ if Mexbt.public_key.nil? || Mexbt.private_key.nil?
14
+ raise "You must configure your API keys!"
15
+ end
13
16
  nonce = (Time.now.to_f*10000).to_i
14
17
  {
15
18
  apiKey: Mexbt.public_key,
data/lib/mexbt/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mexbt
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/mexbt.gemspec CHANGED
@@ -15,7 +15,9 @@ Gem::Specification.new do |spec|
15
15
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
16
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
17
  spec.require_paths = ["lib"]
18
-
18
+ spec.add_runtime_dependency "activesupport", ["= 4.1.8"]
19
+ spec.add_runtime_dependency "rest_client", ["= 1.8.2"]
19
20
  spec.add_development_dependency "bundler", "~> 1.6"
20
21
  spec.add_development_dependency "rake"
22
+ spec.add_development_dependency "rspec"
21
23
  end
@@ -2,83 +2,99 @@ require 'spec_helper'
2
2
 
3
3
  describe Mexbt::Private do
4
4
 
5
- before do
6
- Mexbt.configure do | mexbt |
7
- mexbt.public_key = "1d039abd0e667a4e03767ddef11cb8d5"
8
- mexbt.private_key = "0e5a8d04838fc43f0f4335c8a380f200"
9
- mexbt.user_id = "test@mexbt.com"
10
- mexbt.sandbox = true
11
- end
12
- end
13
-
14
- context Mexbt::Account do
5
+ context "without authentication" do
15
6
 
16
- it "gives a valid response to all public api functions that require no args" do
17
- %w{info balance orders deposit_addresses trades}.each do |f|
18
- res = Mexbt::Account.send(f)
19
- expect(res["isAccepted"]).to be true
20
- end
7
+ it "should raise a friendly error" do
8
+ expect { Mexbt::Account.balance }.to raise_error("You must configure your API keys!")
21
9
  end
22
10
 
23
11
  end
24
12
 
25
- context Mexbt::Orders do
13
+ context "with authentication" do
26
14
 
27
- it "allows creating market orders" do
28
- res = Mexbt::Orders.create(amount: 0.1, currency_pair: "BTCUSD")
29
- expect(res["isAccepted"]).to be true
30
- expect(res["serverOrderId"]).to be_a(Fixnum)
15
+ before do
16
+ Mexbt.configure do | mexbt |
17
+ mexbt.public_key = "1d039abd0e667a4e03767ddef11cb8d5"
18
+ mexbt.private_key = "0e5a8d04838fc43f0f4335c8a380f200"
19
+ mexbt.user_id = "test@mexbt.com"
20
+ mexbt.sandbox = true
21
+ end
31
22
  end
32
23
 
33
- it "allows creating limit orders" do
34
- res = Mexbt::Orders.create(type: :limit, price: 100, amount: 0.1234, currency_pair: "BTCUSD")
35
- expect(res["isAccepted"]).to be true
36
- expect(res["serverOrderId"]).to be_a(Fixnum)
24
+ after do
25
+ Mexbt.configure { | mexbt | mexbt.public_key = nil }
37
26
  end
38
27
 
39
- it "raises an exception if order type not recognised" do
40
- expect { Mexbt::Orders.create(type: :boom, amount: 0.2) }.to raise_error("Unknown order type 'boom'")
41
- end
28
+ context Mexbt::Account do
29
+
30
+ it "gives a valid response to all public api functions that require no args" do
31
+ %w{info balance orders deposit_addresses trades}.each do |f|
32
+ res = Mexbt::Account.send(f)
33
+ expect(res["isAccepted"]).to be true
34
+ end
35
+ end
42
36
 
43
- context "modifying and cancelling orders" do
37
+ end
44
38
 
45
- let(:order_id) {Mexbt::Orders.create(type: :limit, price: 100, amount: 0.1, currency_pair: "BTCUSD")["serverOrderId"]}
39
+ context Mexbt::Orders do
46
40
 
47
- it "allows converting limit orders to market orders" do
48
- res = Mexbt::Orders.modify(id: order_id, currency_pair: "BTCUSD", action: :execute_now)
41
+ it "allows creating market orders" do
42
+ res = Mexbt::Orders.create(amount: 0.1, currency_pair: "BTCUSD")
49
43
  expect(res["isAccepted"]).to be true
44
+ expect(res["serverOrderId"]).to be_a(Fixnum)
50
45
  end
51
46
 
52
- it "allows moving orders to the top of the book" do
53
- res = Mexbt::Orders.modify(id: order_id, currency_pair: "BTCUSD", action: :move_to_top)
47
+ it "allows creating limit orders" do
48
+ res = Mexbt::Orders.create(type: :limit, price: 100, amount: 0.1234, currency_pair: "BTCUSD")
54
49
  expect(res["isAccepted"]).to be true
50
+ expect(res["serverOrderId"]).to be_a(Fixnum)
55
51
  end
56
52
 
57
- it "allows cancelling individual orders" do
58
- res = Mexbt::Orders.cancel(id: order_id, currency_pair: "BTCUSD")
59
- expect(res["isAccepted"]).to be true
60
- orders = Mexbt::Account.orders["openOrdersInfo"]
61
- orders.each do |open_orders|
62
- if open_orders["ins"] === "BTCUSD"
63
- open_orders["openOrders"].each do |usd_order|
64
- if usd_order["ServerOrderId"] === order_id
65
- fail("Order was cancelled but still open")
53
+ it "raises an exception if order type not recognised" do
54
+ expect { Mexbt::Orders.create(type: :boom, amount: 0.2) }.to raise_error("Unknown order type 'boom'")
55
+ end
56
+
57
+ context "modifying and cancelling orders" do
58
+
59
+ let(:order_id) {Mexbt::Orders.create(type: :limit, price: 100, amount: 0.1, currency_pair: "BTCUSD")["serverOrderId"]}
60
+
61
+ it "allows converting limit orders to market orders" do
62
+ res = Mexbt::Orders.modify(id: order_id, currency_pair: "BTCUSD", action: :execute_now)
63
+ expect(res["isAccepted"]).to be true
64
+ end
65
+
66
+ it "allows moving orders to the top of the book" do
67
+ res = Mexbt::Orders.modify(id: order_id, currency_pair: "BTCUSD", action: :move_to_top)
68
+ expect(res["isAccepted"]).to be true
69
+ end
70
+
71
+ it "allows cancelling individual orders" do
72
+ res = Mexbt::Orders.cancel(id: order_id, currency_pair: "BTCUSD")
73
+ expect(res["isAccepted"]).to be true
74
+ orders = Mexbt::Account.orders["openOrdersInfo"]
75
+ orders.each do |open_orders|
76
+ if open_orders["ins"] === "BTCUSD"
77
+ open_orders["openOrders"].each do |usd_order|
78
+ if usd_order["ServerOrderId"] === order_id
79
+ fail("Order was cancelled but still open")
80
+ end
66
81
  end
67
82
  end
68
83
  end
69
84
  end
70
- end
71
85
 
72
- it "allows cancelling all orders" do
73
- res = Mexbt::Orders.cancel_all(currency_pair: "BTCUSD")
74
- expect(res["isAccepted"]).to be true
75
- orders = Mexbt::Account.orders["openOrdersInfo"]
76
- orders.each do |open_orders|
77
- if open_orders["ins"] === "BTCUSD"
78
- expect(open_orders["openOrders"]).to eql([])
86
+ it "allows cancelling all orders" do
87
+ res = Mexbt::Orders.cancel_all(currency_pair: "BTCUSD")
88
+ expect(res["isAccepted"]).to be true
89
+ orders = Mexbt::Account.orders["openOrdersInfo"]
90
+ orders.each do |open_orders|
91
+ if open_orders["ins"] === "BTCUSD"
92
+ expect(open_orders["openOrders"]).to eql([])
93
+ end
79
94
  end
80
95
  end
81
96
  end
97
+
82
98
  end
83
99
 
84
100
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mexbt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - williamcoates
@@ -10,6 +10,34 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2014-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 4.1.8
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 4.1.8
27
+ - !ruby/object:Gem::Dependency
28
+ name: rest_client
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 1.8.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 1.8.2
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: bundler
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +66,20 @@ dependencies:
38
66
  - - ">="
39
67
  - !ruby/object:Gem::Version
40
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
41
83
  description:
42
84
  email:
43
85
  - william@mexbt.com
@@ -45,6 +87,7 @@ executables: []
45
87
  extensions: []
46
88
  extra_rdoc_files: []
47
89
  files:
90
+ - ".gitignore"
48
91
  - ".rspec"
49
92
  - Gemfile
50
93
  - Gemfile.lock