Class: Combi::Bus

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

Direct Known Subclasses

Http, InProcess, Queue, WebSocket

Defined Under Namespace

Classes: UnknownStop

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.



10
11
12
13
14
# File 'lib/combi/buses/bus.rb', line 10

def initialize(options)
  @options = options
  @routes = {}
  post_initialize
end

Instance Attribute Details

#routesObject (readonly)

Returns the value of attribute routes.



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

def routes
  @routes
end

Instance Method Details

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



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

def add_service(service_definition, options = {})
  service_instance = make_service_instance(service_definition)
  service_instance.actions.each do |service_name|
    self.add_routes_for(service_name, service_instance)
  end
  service_instance.setup(self, options[:context])
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

#post_initializeObject



16
17
# File 'lib/combi/buses/bus.rb', line 16

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