module SADI

Public Class Methods

register_service(name, object) click to toggle source
# File lib/sadi-rb/services.rb, line 7
def register_service(name, object)
  services[name] = object
end
reload_services() click to toggle source
# File lib/sadi-rb/services.rb, line 15
def reload_services
  @@services = {}

  (SADI::SynchronousService.classes | SADI::AsynchronousService.classes).each do |service|
    if service.respond_to? 'service_name'
      name = service.service_name
      puts "Warning: service #{@@services[name]} already using name '#{name}', overwriting" if @@services[name]
      @@services[name] = service
    elsif service.instance_methods.include? :service_name
      service = service.new
      name = service.service_name
      puts "Warning: service #{@@services[name]} already using name '#{name}', overwriting" if @@services[name]
      @@services[name] = service
    else
      raise "service #{service} does not define a proper interface"
    end
  end
end
service_for(name) click to toggle source
# File lib/sadi-rb/services.rb, line 3
def service_for(name)
  services[name]
end
services() click to toggle source
# File lib/sadi-rb/services.rb, line 11
def services
  @@services ||= {}
end