class DEVp2p::App
Attributes
config[RW]
Public Class Methods
new(config=default_config)
click to toggle source
Calls superclass method
# File lib/devp2p/app.rb, line 17 def initialize(config=default_config) super() @config = Hashie::Mash.new(default_config).merge(config) @registry = {} @services = Hashie::Mash.new end
Public Instance Methods
deregister_service(klass)
click to toggle source
# File lib/devp2p/app.rb, line 33 def deregister_service(klass) raise ArgumentError, "service #{klass.name} not registered" unless services.has_key?(klass.name) logger.info "deregistering service", service: klass.name services[klass.name].async.stop services.delete klass.name @registry.delete klass.name end
register_service(klass, *args)
click to toggle source
# File lib/devp2p/app.rb, line 25 def register_service(klass, *args) raise ArgumentError, "service #{klass.name} already registered" if services.has_key?(klass.name) logger.info "registering service", service: klass.name @registry[klass.name] = [klass, args] services[klass.name] = klass.new(*args) end
start()
click to toggle source
# File lib/devp2p/app.rb, line 42 def start @registry.each do |name, (klass, args)| services[name] ||= klass.new(*args) services[name].async.start end rescue puts $! puts $!.backtrace[0,10].join("\n") end
stop()
click to toggle source
# File lib/devp2p/app.rb, line 52 def stop services.keys.each do |name| services[name].async.stop services.delete name end rescue puts $! puts $!.backtrace[0,10].join("\n") end
Private Instance Methods
logger()
click to toggle source
# File lib/devp2p/app.rb, line 64 def logger @logger ||= Logger.new 'app' end