Module ServiceManager
In: lib/service_manager.rb

A service must implement at least:

  - start_service(uri, *args, &block)
  - stop_service
  - server
  - thread
  - uri

Methods

Public Instance methods

[Source]

# File lib/service_manager.rb, line 40
  def count_services
    if defined? @services
      @services.size
    else
      0
    end
  end

[Source]

# File lib/service_manager.rb, line 62
  def each_services(&block)
    if defined? @services
      @services.each { |uri, service| block[uri, service] }
    end
  end

[Source]

# File lib/service_manager.rb, line 56
  def join_services
    if defined? @services
      @services.each { |uri, service| service.thread.join }
    end
  end

[Source]

# File lib/service_manager.rb, line 48
  def list_services
    if defined? @services
      @services.values
    else
      []
    end
  end

[Source]

# File lib/service_manager.rb, line 68
  def service_server(uri)
    @services[uri].server if defined? @services
  end

[Source]

# File lib/service_manager.rb, line 18
  def start_service(service, uri=nil, *args, &block)
    @services = {} unless defined? @services
    service.start_service(uri, *args, &block)
    @services[service.uri] = service
  end

[Source]

# File lib/service_manager.rb, line 24
  def stop_service(uri)
    if defined? @services
      if service = @services.delete(uri)
        service.stop_service
      end
    end
  end

[Source]

# File lib/service_manager.rb, line 32
  def stop_services
    if defined? @services
      @services.keys.each do |uri|
        stop_service(uri)
      end
    end
  end

[Validate]