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

Class Attribute Details

.configurationObject



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, , options={})
  add_order('BUY', options.merge(required_params(amount, price, )))
end

.client_sessionObject



51
52
53
# File 'lib/coinsetter.rb', line 51

def self.client_session
  @client_session ||= ClientSessions.new.create(credentials)
end

.configure {|configuration| ... } ⇒ Object

Yields:



33
34
35
# File 'lib/coinsetter.rb', line 33

def self.configure
  yield(configuration)
end

.configured?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/coinsetter.rb', line 37

def self.configured?
  configuration.username && configuration.password && configuration.ip_address
end

.default_optionsObject



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
    # TODO: Add error responses.
  end
  @client_session = nil
end

.get_account(account_uuid) ⇒ Object



55
56
57
# File 'lib/coinsetter.rb', line 55

def self.()
  Customer::Accounts.new(client_session.uuid).get()
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_accountsObject



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(, view="OPEN")
  orders.list("customer/account/#{}/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, )
  {
    requestedQuantity: amount,
    requestedPrice: price,
    accountUuid: 
  }
end

.sell_order(amount, price, account_uuid, options = {}) ⇒ Object



103
104
105
# File 'lib/coinsetter.rb', line 103

def self.sell_order(amount, price, , options={})
  add_order('SELL', options.merge(required_params(amount, price, )))
end

.with_new_sessionObject



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