Class: Qswarm::Swarm
Class Method Summary collapse
Instance Method Summary collapse
- #agent(name, args = nil, &block) ⇒ Object
- #broker(name, &block) ⇒ Object
- #get_broker(name) ⇒ Object
-
#initialize ⇒ Swarm
constructor
A new instance of Swarm.
- #log ⇒ Object
- #run ⇒ Object
Methods included from Loggable
Constructor Details
#initialize ⇒ Swarm
Returns a new instance of Swarm.
17 18 19 20 21 |
# File 'lib/qswarm/swarm.rb', line 17 def initialize @agents = [] $fqdn = Socket.gethostbyname(Socket.gethostname).first @brokers = {} end |
Class Method Details
.load(config) ⇒ Object
11 12 13 14 15 |
# File 'lib/qswarm/swarm.rb', line 11 def self.load(config) dsl = new dsl.instance_eval(File.read(config), config) dsl end |
Instance Method Details
#agent(name, args = nil, &block) ⇒ Object
27 28 29 30 |
# File 'lib/qswarm/swarm.rb', line 27 def agent(name, args = nil, &block) logger.info "Registering agent: #{name}" @agents << Qswarm::Agent.new(self, name, args, &block) end |
#broker(name, &block) ⇒ Object
32 33 34 35 |
# File 'lib/qswarm/swarm.rb', line 32 def broker(name, &block) logger.info "Registering broker: #{name}" @brokers[name] = Qswarm::Broker.new(name, &block) end |
#get_broker(name) ⇒ Object
37 38 39 |
# File 'lib/qswarm/swarm.rb', line 37 def get_broker(name) @brokers[name] end |
#log ⇒ Object
23 24 25 |
# File 'lib/qswarm/swarm.rb', line 23 def log logger end |
#run ⇒ Object
41 42 43 44 45 |
# File 'lib/qswarm/swarm.rb', line 41 def run EventMachine.run do @agents.map { |a| a.run } end end |