mtgox 0.3.1 → 0.4.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.
- data/lib/mtgox.rb +2 -5
- data/lib/mtgox/client.rb +12 -12
- data/lib/mtgox/configuration.rb +41 -0
- data/lib/mtgox/version.rb +1 -1
- data/mtgox.gemspec +1 -1
- metadata +27 -26
data/lib/mtgox.rb
CHANGED
@@ -1,13 +1,10 @@
|
|
1
1
|
require 'mtgox/client'
|
2
|
+
require 'mtgox/configuration'
|
2
3
|
require 'mtgox/error'
|
3
4
|
|
4
5
|
module MtGox
|
6
|
+
extend Configuration
|
5
7
|
class << self
|
6
|
-
attr_accessor :name, :pass
|
7
|
-
def configure
|
8
|
-
yield self
|
9
|
-
end
|
10
|
-
|
11
8
|
# Alias for MtGox::Client.new
|
12
9
|
#
|
13
10
|
# @return [MtGox::Client]
|
data/lib/mtgox/client.rb
CHANGED
@@ -85,11 +85,9 @@ module MtGox
|
|
85
85
|
# @authenticated true
|
86
86
|
# @return [<Hashie::Rash>] with keys `buy` and `sell`, which contain arrays as described in {MtGox::Client#buys} and {MtGox::Client#sells}
|
87
87
|
# @example
|
88
|
-
# MtGox.orders[0, 3]
|
88
|
+
# MtGox.orders[0, 3] #=> [<#Hashie::Rash amount=0.73 dark="0" date=2011-06-13 00:13:16 -0700 oid="929284" price=2 status=:active type=2>, <#Hashie::Rash amount=0.36 dark="0" date=2011-06-13 00:13:21 -0700 oid="929288" price=4 status=:active type=2>, <#Hashie::Rash amount=0.24 dark="0" date=2011-06-13 00:13:32 -0700 oid="929292" price=6 status=:active type=2>]
|
89
89
|
def orders
|
90
|
-
post('/code/getOrders.php', pass_params)['orders']
|
91
|
-
order['date'] = Time.at(order['date'])
|
92
|
-
end
|
90
|
+
parse_orders(post('/code/getOrders.php', pass_params)['orders'])
|
93
91
|
end
|
94
92
|
|
95
93
|
# Fetch your open buys
|
@@ -97,7 +95,7 @@ module MtGox
|
|
97
95
|
# @authenticated true
|
98
96
|
# @return [Array<Hashie::Rash>] an array of your open bids, sorted in price ascending order with the keys `amount`, `dark`, `date`, `oid`, `price`, `status`, and `type`
|
99
97
|
# @example
|
100
|
-
# MtGox.buys[0, 3] #=> [<#Hashie::Rash amount=0.73 dark="0" date=
|
98
|
+
# MtGox.buys[0, 3] #=> [<#Hashie::Rash amount=0.73 dark="0" date=2011-06-13 00:13:16 -0700 oid="929284" price=2 status=:active type=2>, <#Hashie::Rash amount=0.36 dark="0" date=2011-06-13 00:13:21 -0700 oid="929288" price=4 status=:active type=2>, <#Hashie::Rash amount=0.24 dark="0" date=2011-06-13 00:13:32 -0700 oid="929292" price=6 status=:active type=2>]
|
101
99
|
def buys
|
102
100
|
orders.select do |o|
|
103
101
|
o['type'] == ORDER_TYPES[:buy]
|
@@ -109,7 +107,7 @@ module MtGox
|
|
109
107
|
# @authenticated true
|
110
108
|
# @return [Array<Hashie::Rash>] an array of your open asks, sorted in price ascending order with the keys `amount`, `dark`, `date`, `oid`, `price`, `status`, and `type`
|
111
109
|
# @example
|
112
|
-
# MtGox.sells[0, 3] #=> [<#Hashie::Rash amount=0.1 dark="0" date=
|
110
|
+
# MtGox.sells[0, 3] #=> [<#Hashie::Rash amount=0.1 dark="0" date=2011-06-13 00:16:24 -0700 oid="663465" price=24.92 status=nil type=1>, <#Hashie::Rash amount=0.12 dark="0" date=2011-06-13 00:16:31 -0700 oid="663468" price=25.65 status=nil type=1>, <#Hashie::Rash amount=0.15 dark="0" date=2011-06-13 00:16:36 -0700 oid="663470" price=26.38 status=nil type=1>]
|
113
111
|
def sells
|
114
112
|
orders.select do |o|
|
115
113
|
o['type'] == ORDER_TYPES[:sell]
|
@@ -126,9 +124,7 @@ module MtGox
|
|
126
124
|
# # Buy one bitcoin for $0.011
|
127
125
|
# MtGox.buy! 1.0, 0.011
|
128
126
|
def buy!(amount, price)
|
129
|
-
post('/code/buyBTC.php', pass_params.merge({:amount => amount, :price => price}))['orders']
|
130
|
-
order['date'] = Time.at(order['date'])
|
131
|
-
end
|
127
|
+
parse_orders(post('/code/buyBTC.php', pass_params.merge({:amount => amount, :price => price}))['orders'])
|
132
128
|
end
|
133
129
|
|
134
130
|
# Place a limit order to sell BTC
|
@@ -141,9 +137,7 @@ module MtGox
|
|
141
137
|
# # Sell one bitcoin for $100
|
142
138
|
# MtGox.sell! 1.0, 100.0
|
143
139
|
def sell!(amount, price)
|
144
|
-
post('/code/sellBTC.php', pass_params.merge({:amount => amount, :price => price}))['orders']
|
145
|
-
order['date'] = Time.at(order['date'])
|
146
|
-
end
|
140
|
+
parse_orders(post('/code/sellBTC.php', pass_params.merge({:amount => amount, :price => price}))['orders'])
|
147
141
|
end
|
148
142
|
|
149
143
|
# Cancel an open order
|
@@ -193,6 +187,12 @@ module MtGox
|
|
193
187
|
|
194
188
|
private
|
195
189
|
|
190
|
+
def parse_orders(orders)
|
191
|
+
orders.each do |order|
|
192
|
+
order['date'] = Time.at(order['date'])
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
196
|
def pass_params
|
197
197
|
{:name => MtGox.name, :pass => MtGox.pass}
|
198
198
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'mtgox/version'
|
2
|
+
|
3
|
+
module MtGox
|
4
|
+
module Configuration
|
5
|
+
# An array of valid keys in the options hash when configuring a {MtGox::Client}
|
6
|
+
VALID_OPTIONS_KEYS = [
|
7
|
+
:commission,
|
8
|
+
:name,
|
9
|
+
:pass,
|
10
|
+
]
|
11
|
+
|
12
|
+
DEFAULT_COMMISSION = 0.0065.freeze
|
13
|
+
|
14
|
+
attr_accessor *VALID_OPTIONS_KEYS
|
15
|
+
|
16
|
+
# When this module is extended, set all configuration options to their default values
|
17
|
+
def self.extended(base)
|
18
|
+
base.reset
|
19
|
+
end
|
20
|
+
|
21
|
+
# Convenience method to allow configuration options to be set in a block
|
22
|
+
def configure
|
23
|
+
yield self
|
24
|
+
end
|
25
|
+
|
26
|
+
# Create a hash of options and their values
|
27
|
+
def options
|
28
|
+
options = {}
|
29
|
+
VALID_OPTIONS_KEYS.each{|k| options[k] = send(k)}
|
30
|
+
options
|
31
|
+
end
|
32
|
+
|
33
|
+
# Reset all configuration options to defaults
|
34
|
+
def reset
|
35
|
+
self.commission = DEFAULT_COMMISSION
|
36
|
+
self.name = nil
|
37
|
+
self.pass = nil
|
38
|
+
self
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/mtgox/version.rb
CHANGED
data/mtgox.gemspec
CHANGED
@@ -3,7 +3,7 @@ require File.expand_path('../lib/mtgox/version', __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
5
|
gem.name = 'mtgox'
|
6
|
-
gem.version = MtGox::VERSION
|
6
|
+
gem.version = MtGox::VERSION.dup
|
7
7
|
gem.author = "Erik Michaels-Ober"
|
8
8
|
gem.email = 'sferik@gmail.com'
|
9
9
|
gem.homepage = 'https://github.com/sferik/mtgox'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mtgox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-07-
|
12
|
+
date: 2011-07-08 00:00:00.000000000 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: ZenTest
|
17
|
-
requirement: &
|
17
|
+
requirement: &70146027121000 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '4.5'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70146027121000
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: maruku
|
28
|
-
requirement: &
|
28
|
+
requirement: &70146027120280 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0.6'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70146027120280
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: rake
|
39
|
-
requirement: &
|
39
|
+
requirement: &70146027119500 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0.9'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70146027119500
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rspec
|
50
|
-
requirement: &
|
50
|
+
requirement: &70146027118500 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '2.6'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70146027118500
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: simplecov
|
61
|
-
requirement: &
|
61
|
+
requirement: &70146027117600 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0.4'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70146027117600
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: webmock
|
72
|
-
requirement: &
|
72
|
+
requirement: &70146027117040 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: '1.6'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *70146027117040
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: yard
|
83
|
-
requirement: &
|
83
|
+
requirement: &70146027116380 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ~>
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: '0.7'
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *70146027116380
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: faraday
|
94
|
-
requirement: &
|
94
|
+
requirement: &70146027115280 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ~>
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: 0.6.1
|
100
100
|
type: :runtime
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *70146027115280
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: faraday_middleware
|
105
|
-
requirement: &
|
105
|
+
requirement: &70146027113940 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ~>
|
@@ -110,10 +110,10 @@ dependencies:
|
|
110
110
|
version: 0.6.3
|
111
111
|
type: :runtime
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *70146027113940
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: hashie
|
116
|
-
requirement: &
|
116
|
+
requirement: &70146027113000 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ~>
|
@@ -121,10 +121,10 @@ dependencies:
|
|
121
121
|
version: 1.0.0
|
122
122
|
type: :runtime
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *70146027113000
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: multi_json
|
127
|
-
requirement: &
|
127
|
+
requirement: &70146027112000 !ruby/object:Gem::Requirement
|
128
128
|
none: false
|
129
129
|
requirements:
|
130
130
|
- - ~>
|
@@ -132,10 +132,10 @@ dependencies:
|
|
132
132
|
version: 1.0.3
|
133
133
|
type: :runtime
|
134
134
|
prerelease: false
|
135
|
-
version_requirements: *
|
135
|
+
version_requirements: *70146027112000
|
136
136
|
- !ruby/object:Gem::Dependency
|
137
137
|
name: rash
|
138
|
-
requirement: &
|
138
|
+
requirement: &70146027107100 !ruby/object:Gem::Requirement
|
139
139
|
none: false
|
140
140
|
requirements:
|
141
141
|
- - ~>
|
@@ -143,7 +143,7 @@ dependencies:
|
|
143
143
|
version: 0.3.0
|
144
144
|
type: :runtime
|
145
145
|
prerelease: false
|
146
|
-
version_requirements: *
|
146
|
+
version_requirements: *70146027107100
|
147
147
|
description: Ruby wrapper for the Mt. Gox Trade API. Mt. Gox allows you to trade US
|
148
148
|
Dollars (USD) for Bitcoins (BTC) or Bitcoins for US Dollars.
|
149
149
|
email: sferik@gmail.com
|
@@ -164,6 +164,7 @@ files:
|
|
164
164
|
- lib/faraday/response/raise_mtgox_error.rb
|
165
165
|
- lib/mtgox.rb
|
166
166
|
- lib/mtgox/client.rb
|
167
|
+
- lib/mtgox/configuration.rb
|
167
168
|
- lib/mtgox/connection.rb
|
168
169
|
- lib/mtgox/error.rb
|
169
170
|
- lib/mtgox/request.rb
|