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.7"

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



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

.client_sessionObject



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

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



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



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

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



107
108
109
# File 'lib/coinsetter.rb', line 107

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

.with_sessionObject



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