Module: Distribot

Defined in:
lib/distribot.rb,
lib/distribot/flow.rb,
lib/distribot/phase.rb,
lib/distribot/worker.rb,
lib/distribot/handler.rb,
lib/distribot/connector.rb,
lib/distribot/phase_handler.rb,
lib/distribot/flow_created_handler.rb,
lib/distribot/flow_finished_handler.rb,
lib/distribot/phase_started_handler.rb,
lib/distribot/task_finished_handler.rb,
lib/distribot/phase_finished_handler.rb,
lib/distribot/handler_finished_handler.rb

Defined Under Namespace

Modules: Handler, Worker Classes: BunnyConnector, ConnectionSharer, Connector, Flow, FlowCanceledError, FlowCreatedHandler, FlowFinishedHandler, FlowPausedError, HandlerFinishedHandler, MultiSubscription, NotPausedError, NotRunningError, Phase, PhaseFinishedHandler, PhaseHandler, PhaseStartedHandler, Subscription, TaskFinishedHandler

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configObject

Returns the value of attribute config.



23
24
25
# File 'lib/distribot.rb', line 23

def config
  @config
end

.connectorObject

Returns the value of attribute connector.



23
24
25
# File 'lib/distribot.rb', line 23

def connector
  @connector
end

.debugObject

Returns the value of attribute debug.



23
24
25
# File 'lib/distribot.rb', line 23

def debug
  @debug
end

.did_configureObject

Returns the value of attribute did_configure.



23
24
25
# File 'lib/distribot.rb', line 23

def did_configure
  @did_configure
end

.loggerObject

Returns the value of attribute logger.



23
24
25
# File 'lib/distribot.rb', line 23

def logger
  @logger
end

.redisObject

Returns the value of attribute redis.



23
24
25
# File 'lib/distribot.rb', line 23

def redis
  @redis
end

Class Method Details

.broadcast!(topic, data) ⇒ Object



93
94
95
# File 'lib/distribot.rb', line 93

def broadcast!(topic, data)
  connector.broadcast(topic, data)
end

.configurationObject



47
48
49
50
51
52
53
54
55
56
# File 'lib/distribot.rb', line 47

def configuration
  unless @did_configure
    reset_configuration!
    configure do |config|
      config.redis_url = ENV['DISTRIBOT_REDIS_URL']
      config.rabbitmq_url = ENV['DISTRIBOT_RABBITMQ_URL']
    end
  end
  self.config
end

.configure(&block) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/distribot.rb', line 34

def configure(&block)
  reset_configuration!
  @did_configure = true
  block.call(configuration)
  # Now set defaults for things that aren't defined:
  configuration.redis_prefix ||= 'distribot'
  configuration.queue_prefix ||= 'distribot'
end

.publish!(topic, data) ⇒ Object



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

def publish!(topic, data)
  connector.publish(topic, data)
end

.queue_exists?(name) ⇒ Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/distribot.rb', line 58

def queue_exists?(name)
  connector.queue_exists?(name)
end

.redis_id(type, id) ⇒ Object



79
80
81
# File 'lib/distribot.rb', line 79

def redis_id(type, id)
  "#{configuration.redis_prefix}-#{type}:#{id}"
end

.reset_configuration!Object



28
29
30
31
32
# File 'lib/distribot.rb', line 28

def reset_configuration!
  self.config = OpenStruct.new
  self.did_configure = false
  self.redis = nil
end

.subscribe(topic, options = {}, &block) ⇒ Object



87
88
89
90
91
# File 'lib/distribot.rb', line 87

def subscribe(topic, options = {}, &block)
  connector.subscribe(topic, options) do |message|
    block.call(message)
  end
end

.subscribe_multi(topic, options = {}, &block) ⇒ Object



97
98
99
100
101
# File 'lib/distribot.rb', line 97

def subscribe_multi(topic, options = {}, &block)
  connector.subscribe_multi(topic, options) do |message|
    block.call(message)
  end
end