Class: Combi::Bus

Inherits:
Object
  • Object
show all
Defined in:
lib/combi/buses/bus.rb

Direct Known Subclasses

Http, InProcess, Queue, WebSocket

Constant Summary collapse

RPC_DEFAULT_TIMEOUT =
1

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Bus

Returns a new instance of Bus.



12
13
14
15
16
# File 'lib/combi/buses/bus.rb', line 12

def initialize(options)
  @options = options
  @services = []
  post_initialize
end

Instance Attribute Details

#servicesObject (readonly)

Returns the value of attribute services.



8
9
10
# File 'lib/combi/buses/bus.rb', line 8

def services
  @services
end

Instance Method Details

#add_service(service_definition, options = {}) ⇒ Object



21
22
23
24
25
# File 'lib/combi/buses/bus.rb', line 21

def add_service(service_definition, options = {})
  service = make_service_instance(service_definition)
  service.setup(self, options[:context])
  @services << service
end

#enable(services) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/combi/buses/bus.rb', line 38

def enable(services)
  services.each do |service|
    case service
    when :queue
      require 'queue_service'
      EventMachine.run do
        Combi::QueueService.start ConfigProvider.for(:amqp)
      end
    when :redis
      require 'redis'
      $redis = Redis.new ConfigProvider.for(:redis)
    when :active_record
      require 'active_record'
      ActiveRecord::Base.establish_connection ConfigProvider.for(:database)
    when :bus
      $service_bus = Combi::ServiceBus.for(:queue)
    end
  end
end

#log(message) ⇒ Object



58
59
60
61
# File 'lib/combi/buses/bus.rb', line 58

def log(message)
  return unless @debug_mode ||= ENV['DEBUG'] == 'true'
  puts "#{Time.now.to_f} #{self.class.name} #{message}"
end

#post_initializeObject



18
19
# File 'lib/combi/buses/bus.rb', line 18

def post_initialize
end

#restart!Object



33
34
35
36
# File 'lib/combi/buses/bus.rb', line 33

def restart!
  stop!
  start!
end

#start!Object



27
28
# File 'lib/combi/buses/bus.rb', line 27

def start!
end

#stop!Object



30
31
# File 'lib/combi/buses/bus.rb', line 30

def stop!
end