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.8"
Class Attribute Summary collapse
Class Method Summary
collapse
-
.accounts(uuid = nil) ⇒ Object
-
.add_order(side = 'BUY', options = {}) ⇒ Object
-
.add_order_with_new_session(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_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
67
68
69
|
# File 'lib/coinsetter.rb', line 67
def self.accounts(uuid=nil)
Customer::Accounts.new(uuid || client_session.uuid)
end
|
.add_order(side = 'BUY', options = {}) ⇒ Object
94
95
96
97
98
99
|
# File 'lib/coinsetter.rb', line 94
def self.add_order(side='BUY', options={})
params = default_options.merge(options)
params.merge!(side: side,
customerUuid: client_session.customer_uuid)
orders.create(params)
end
|
.add_order_with_new_session(side = 'BUY', options = {}) ⇒ Object
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/coinsetter.rb', line 83
def self.add_order_with_new_session(side='BUY', options={})
order = with_session do |client_session|
params = default_options.merge(options)
params.merge!(side: side,
customerUuid: client_session.customer_uuid)
orders.create(params)
end
order.kind_of?(Order) ? Coinsetter.get_order(order.uuid) : nil
end
|
.buy_order(amount, price, account_uuid, options = {}) ⇒ Object
Required Order Params requestedQuantity, requestedPrice, accountUuid
103
104
105
|
# File 'lib/coinsetter.rb', line 103
def self.buy_order(amount, price, account_uuid, options={})
add_order('BUY', options.merge(required_params(amount, price, account_uuid)))
end
|
.client_session ⇒ Object
50
51
52
|
# File 'lib/coinsetter.rb', line 50
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
111
112
113
114
115
116
117
|
# File 'lib/coinsetter.rb', line 111
def self.default_options
{
symbol: "BTCUSD",
orderType: ("LIMIT"),
routingMethod: 2
}
end
|
.destroy_client_session! ⇒ Object
58
59
60
61
|
# File 'lib/coinsetter.rb', line 58
def self.destroy_client_session!
client_session.destroy!
@client_session = nil
end
|
.get_account(account_uuid) ⇒ Object
54
55
56
|
# File 'lib/coinsetter.rb', line 54
def self.get_account(account_uuid)
Customer::Accounts.new(client_session.uuid).get(account_uuid)
end
|
.get_order(order_uuid) ⇒ Object
79
80
81
|
# File 'lib/coinsetter.rb', line 79
def self.get_order(order_uuid)
orders.get(order_uuid)
end
|
.list_accounts ⇒ Object
75
76
77
|
# File 'lib/coinsetter.rb', line 75
def self.list_accounts
accounts.list
end
|
.list_orders(account_id, view = "OPEN") ⇒ Object
71
72
73
|
# File 'lib/coinsetter.rb', line 71
def self.list_orders(account_id, view="OPEN")
orders.list("customer/account/#{account_id}/order", view: view)
end
|
.orders(uuid = nil) ⇒ Object
63
64
65
|
# File 'lib/coinsetter.rb', line 63
def self.orders(uuid=nil)
Orders.new(uuid || client_session.uuid)
end
|
.required_params(amount, price, account_uuid) ⇒ Object
119
120
121
122
123
124
125
|
# File 'lib/coinsetter.rb', line 119
def self.required_params(amount, price, account_uuid)
{
requestedQuantity: amount,
requestedPrice: price,
accountUuid: account_uuid
}
end
|
.sell_order(amount, price, account_uuid, options = {}) ⇒ Object
107
108
109
|
# File 'lib/coinsetter.rb', line 107
def self.sell_order(amount, price, account_uuid, options={})
add_order('SELL', options.merge(required_params(amount, price, account_uuid)))
end
|
.with_session ⇒ Object
41
42
43
44
45
46
47
48
|
# File 'lib/coinsetter.rb', line 41
def self.with_session
if client_session.kind_of? ClientSession
yield client_session if block_given?
else
destroy_client_session!
{error: 'No Client Session available.'}
end
end
|