Class: Eodhd::WebSocketClient

Inherits:
Object
  • Object
show all
Defined in:
lib/Eodhd/WebSocketClient.rb

Defined Under Namespace

Classes: Handler

Constant Summary collapse

API_HOST =
'ws.eodhistoricaldata.com'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#api_tokenObject

class << self



83
84
85
# File 'lib/Eodhd/WebSocketClient.rb', line 83

def api_token
  @api_token
end

#asset_classObject

class << self



83
84
85
# File 'lib/Eodhd/WebSocketClient.rb', line 83

def asset_class
  @asset_class
end

#consumerObject

class << self



83
84
85
# File 'lib/Eodhd/WebSocketClient.rb', line 83

def consumer
  @consumer
end

#loggerObject

class << self



83
84
85
# File 'lib/Eodhd/WebSocketClient.rb', line 83

def logger
  @logger
end

#symbolsObject

Returns the value of attribute symbols.



89
90
91
# File 'lib/Eodhd/WebSocketClient.rb', line 89

def symbols
  @symbols
end

Class Method Details

.crypto(api_token:, symbols:, consumer:) ⇒ Object



78
79
80
# File 'lib/Eodhd/WebSocketClient.rb', line 78

def crypto(api_token:, symbols:, consumer:)
  self.class.new(api_token: api_token, asset_class: 'crypto', symbols: symbols, consumer: consumer)
end

.forex(api_token:, symbols:, consumer:) ⇒ Object



74
75
76
# File 'lib/Eodhd/WebSocketClient.rb', line 74

def forex(api_token:, symbols:, consumer:)
  self.class.new(api_token: api_token, asset_class: 'forex', symbols: symbols, consumer: consumer)
end

.path_prefixObject



61
62
63
# File 'lib/Eodhd/WebSocketClient.rb', line 61

def path_prefix
  '/ws'
end

.us_quote(api_token:, symbols:, consumer:) ⇒ Object



70
71
72
# File 'lib/Eodhd/WebSocketClient.rb', line 70

def us_quote(api_token:, symbols:, consumer:)
  self.class.new(api_token: api_token, asset_class: 'us-quote', symbols: symbols, consumer: consumer)
end

.us_trade(api_token:, symbols:, consumer:) ⇒ Object Also known as: us



65
66
67
# File 'lib/Eodhd/WebSocketClient.rb', line 65

def us_trade(api_token:, symbols:, consumer:)
  self.class.new(api_token: api_token, asset_class: 'us', symbols: symbols, consumer: consumer)
end

Instance Method Details

#runObject



96
97
98
99
100
101
102
# File 'lib/Eodhd/WebSocketClient.rb', line 96

def run
  Iodine.threads = 1
  Iodine.connect(url: url, handler: Handler.new(symbols: @symbols, consumer: @consumer, logger: @logger))
  Iodine.start
rescue SystemExit, Interrupt
  return
end