Module: Cargosocket::StreamAdapters::CargobullAdapter

Defined in:
lib/cargosocket/stream_adapters/cargobull_adapter.rb

Class Method Summary collapse

Class Method Details

.channels(cargoenv, path, query) ⇒ Object



14
15
16
17
18
19
# File 'lib/cargosocket/stream_adapters/cargobull_adapter.rb', line 14

def self.channels(cargoenv, path, query)
  r = dispatch_to(:call_no_transform, cargoenv, "CHANNELS", path, query)
  if r.first == 200 && r.last.is_a?(Array) && !r.last.empty?
    r.last.map(&:to_sym)
  end
end

.dispatch_to(m, *args) ⇒ Object



10
11
12
# File 'lib/cargosocket/stream_adapters/cargobull_adapter.rb', line 10

def self.dispatch_to(m, *args)
  Cargobull::Dispatch.send(m, *args)
end

.error(cargoenv, *args) ⇒ Object



36
37
38
# File 'lib/cargosocket/stream_adapters/cargobull_adapter.rb', line 36

def self.error(cargoenv, *args)
  if_value(dispatch_to(:call, cargoenv, "ERROR", *args), &Proc.new)
end

.if_value(value) {|value.last| ... } ⇒ Object

Yields:

  • (value.last)


5
6
7
8
# File 'lib/cargosocket/stream_adapters/cargobull_adapter.rb', line 5

def self.if_value(value)
  return if value.last.nil?
  yield(value.last)
end

.pop(cargoenv, *args) ⇒ Object



44
45
46
# File 'lib/cargosocket/stream_adapters/cargobull_adapter.rb', line 44

def self.pop(cargoenv, *args)
  if_value(dispatch_to(:call, cargoenv, "POP", *args), &Proc.new)
end

.push(cargoenv, *args) ⇒ Object



40
41
42
# File 'lib/cargosocket/stream_adapters/cargobull_adapter.rb', line 40

def self.push(cargoenv, *args)
  if_value(dispatch_to(:call, cargoenv, "PUSH", *args), &Proc.new)
end

.reference(cargoenv, path, query) ⇒ Object



21
22
23
24
25
26
# File 'lib/cargosocket/stream_adapters/cargobull_adapter.rb', line 21

def self.reference(cargoenv, path, query)
  r = dispatch_to(:call_no_transform, cargoenv, "REFERENCE", path, query)
  if r.first == 200
    r.last
  end
end

.subscribe(cargoenv, *args) ⇒ Object



28
29
30
# File 'lib/cargosocket/stream_adapters/cargobull_adapter.rb', line 28

def self.subscribe(cargoenv, *args)
  if_value(dispatch_to(:call, cargoenv, "SUBSCRIBE", *args), &Proc.new)
end

.unsubscribe(cargoenv, *args) ⇒ Object



32
33
34
# File 'lib/cargosocket/stream_adapters/cargobull_adapter.rb', line 32

def self.unsubscribe(cargoenv, *args)
  if_value(dispatch_to(:call, cargoenv, "UNSUBSCRIBE", *args), &Proc.new)
end