Module: Coinsetter
- Defined in:
- lib/coinsetter.rb,
lib/coinsetter/net.rb,
lib/coinsetter/model.rb,
lib/coinsetter/order.rb,
lib/coinsetter/helper.rb,
lib/coinsetter/orders.rb,
lib/coinsetter/version.rb,
lib/coinsetter/collection.rb,
lib/coinsetter/configuration.rb,
lib/coinsetter/client_session.rb,
lib/coinsetter/client_sessions.rb,
lib/coinsetter/customer/account.rb,
lib/coinsetter/customer/accounts.rb
Defined Under Namespace
Modules: Customer, Helper, Net
Classes: ClientSession, ClientSessions, Collection, Configuration, Model, Order, Orders
Constant Summary
collapse
- VERSION =
"0.0.9"
Class Attribute Summary collapse
Class Method Summary
collapse
-
.accounts(uuid = nil) ⇒ Object
-
.add_order(side = 'BUY', options = {}) ⇒ Object
-
.buy_order(amount, price, account_uuid, options = {}) ⇒ Object
Required Order Params requestedQuantity, requestedPrice, accountUuid.
-
.client_session ⇒ Object
-
.configure {|configuration| ... } ⇒ Object
-
.configured? ⇒ Boolean
-
.default_options ⇒ Object
-
.destroy_client_session! ⇒ Object
-
.get_account(account_uuid) ⇒ Object
-
.get_order(order_uuid) ⇒ Object
-
.list_accounts ⇒ Object
-
.list_orders(account_id, view = "OPEN") ⇒ Object
-
.orders(uuid = nil) ⇒ Object
-
.required_params(amount, price, account_uuid) ⇒ Object
-
.sell_order(amount, price, account_uuid, options = {}) ⇒ Object
-
.with_new_session ⇒ Object
Class Attribute Details
.configuration ⇒ Object
29
30
31
|
# File 'lib/coinsetter.rb', line 29
def self.configuration
@configuration ||= Configuration.new
end
|
Class Method Details
.accounts(uuid = nil) ⇒ Object
72
73
74
|
# File 'lib/coinsetter.rb', line 72
def self.accounts(uuid=nil)
Customer::Accounts.new(uuid || client_session.uuid)
end
|
.add_order(side = 'BUY', options = {}) ⇒ Object
88
89
90
91
92
93
94
95
|
# File 'lib/coinsetter.rb', line 88
def self.add_order(side='BUY', options={})
with_new_session do |client_session|
params = default_options.merge(options)
params.merge!(side: side,
customerUuid: client_session.customer_uuid)
orders.create(params)
end
end
|
.buy_order(amount, price, account_uuid, options = {}) ⇒ Object
Required Order Params requestedQuantity, requestedPrice, accountUuid
99
100
101
|
# File 'lib/coinsetter.rb', line 99
def self.buy_order(amount, price, account_uuid, options={})
add_order('BUY', options.merge(required_params(amount, price, account_uuid)))
end
|
.client_session ⇒ Object
51
52
53
|
# File 'lib/coinsetter.rb', line 51
def self.client_session
@client_session ||= ClientSessions.new.create(credentials)
end
|
33
34
35
|
# File 'lib/coinsetter.rb', line 33
def self.configure
yield(configuration)
end
|
37
38
39
|
# File 'lib/coinsetter.rb', line 37
def self.configured?
configuration.username && configuration.password && configuration.ip_address
end
|
.default_options ⇒ Object
107
108
109
110
111
112
113
|
# File 'lib/coinsetter.rb', line 107
def self.default_options
{
symbol: "BTCUSD",
orderType: ("LIMIT"),
routingMethod: 2
}
end
|
.destroy_client_session! ⇒ Object
59
60
61
62
63
64
65
66
|
# File 'lib/coinsetter.rb', line 59
def self.destroy_client_session!
begin
client_session.destroy!
rescue e
end
@client_session = nil
end
|
.get_account(account_uuid) ⇒ Object
55
56
57
|
# File 'lib/coinsetter.rb', line 55
def self.get_account(account_uuid)
Customer::Accounts.new(client_session.uuid).get(account_uuid)
end
|
.get_order(order_uuid) ⇒ Object
84
85
86
|
# File 'lib/coinsetter.rb', line 84
def self.get_order(order_uuid)
orders.get(order_uuid)
end
|
.list_accounts ⇒ Object
80
81
82
|
# File 'lib/coinsetter.rb', line 80
def self.list_accounts
accounts.list
end
|
.list_orders(account_id, view = "OPEN") ⇒ Object
76
77
78
|
# File 'lib/coinsetter.rb', line 76
def self.list_orders(account_id, view="OPEN")
orders.list("customer/account/#{account_id}/order", view: view)
end
|
.orders(uuid = nil) ⇒ Object
68
69
70
|
# File 'lib/coinsetter.rb', line 68
def self.orders(uuid=nil)
Orders.new(uuid || client_session.uuid)
end
|
.required_params(amount, price, account_uuid) ⇒ Object
115
116
117
118
119
120
121
|
# File 'lib/coinsetter.rb', line 115
def self.required_params(amount, price, account_uuid)
{
requestedQuantity: amount,
requestedPrice: price,
accountUuid: account_uuid
}
end
|
.sell_order(amount, price, account_uuid, options = {}) ⇒ Object
103
104
105
|
# File 'lib/coinsetter.rb', line 103
def self.sell_order(amount, price, account_uuid, options={})
add_order('SELL', options.merge(required_params(amount, price, account_uuid)))
end
|
.with_new_session ⇒ Object
41
42
43
44
45
46
47
48
49
|
# File 'lib/coinsetter.rb', line 41
def self.with_new_session
destroy_client_session!
if client_session.kind_of? ClientSession
yield client_session if block_given?
else
destroy_client_session!
{error: 'No Client Session available.'}
end
end
|