lib/adaptation/mom.rb in adaptation-0.0.2 vs lib/adaptation/mom.rb in adaptation-0.0.3
- old
+ new
@@ -1,69 +1,73 @@
require 'drb'
require 'yaml'
module Adaptation
- class Mom
+ module Mom
- def initialize mom_uri
- @mom_uri = mom_uri
- end
+ class Mom
- def subscribe drb_uri
- unless get_subscribers.include?(drb_uri)
- add_subscriber drb_uri
- puts "Added new subscriber: #{drb_uri}"
- oapdaemon = DRbObject.new(nil, drb_uri)
- oapdaemon.subscription_result true
+ def initialize mom_uri
+ @mom_uri = mom_uri
end
- end
- def publish message, topic
- # Tell subscribed hosts to execute their adaptors
- puts "-----------------------------------"
- puts "Received message in topic: #{topic}"
- puts "#{message}"
- puts "-----------------------------------"
- get_subscribers.each do |uri|
- puts "Calling #{uri}"
- DRb.start_service
- oapdaemon = DRbObject.new(nil, uri)
- oapdaemon.call_adaptor message, topic
+ def subscribe drb_uri
+ unless get_subscribers.include?(drb_uri)
+ add_subscriber drb_uri
+ puts "Added new subscriber: #{drb_uri}"
+ oapdaemon = DRbObject.new(nil, drb_uri)
+ oapdaemon.subscription_result true
+ end
end
- end
- def start
- DRb.start_service(@mom_uri, self)
- puts "MOM started. Listening at #{@mom_uri}"
- DRb.thread.join # Don't exit just yet
- end
+ def publish message, topic
+ # Tell subscribed hosts to execute their adaptors
+ puts "-----------------------------------"
+ puts "Received message in topic: #{topic}"
+ puts "#{message}"
+ puts "-----------------------------------"
+ get_subscribers.each do |uri|
+ puts "Calling #{uri}"
+ DRb.start_service
+ oapdaemon = DRbObject.new(nil, uri)
+ oapdaemon.process message, topic
+ end
+ end
- def list
- puts "MOM subscriptions:"
- get_subscribers.each do |s|
- puts " #{s}"
+ def start
+ DRb.start_service(@mom_uri, self)
+ puts "MOM started. Listening at #{@mom_uri}"
+ DRb.thread.join # Don't exit just yet
end
- return
- end
- private
+ def list
+ puts "MOM subscriptions:"
+ get_subscribers.each do |s|
+ puts " #{s}"
+ end
+ return
+ end
- def add_subscriber drb_uri
- subscribers = get_subscribers
- subscribers << drb_uri unless subscribers.include?(drb_uri)
- sf = File.new('subscribers.yml', 'w')
- sf.write(YAML::dump(subscribers))
- sf.close
- end
+ private
- def get_subscribers
- if File.exists?('subscribers.yml')
- subscribers = YAML::load(File.open('subscribers.yml'))
- else
- subscribers = Array.new
+ def add_subscriber drb_uri
+ subscribers = get_subscribers
+ subscribers << drb_uri unless subscribers.include?(drb_uri)
+ sf = File.new('subscribers.yml', 'w')
+ sf.write(YAML::dump(subscribers))
+ sf.close
end
- subscribers
+
+ def get_subscribers
+ if File.exists?('subscribers.yml')
+ subscribers = YAML::load(File.open('subscribers.yml'))
+ else
+ subscribers = Array.new
+ end
+ subscribers
+ end
+
end
end
end