class Kronos::ConfigAgent
Attributes
_runner[RW]
_storage[RW]
tasks[R]
Public Class Methods
new()
click to toggle source
# File lib/kronos/config_agent.rb, line 7 def initialize @tasks = [] @instance = {} end
Public Instance Methods
logger(logger, *config)
click to toggle source
# File lib/kronos/config_agent.rb, line 26 def logger(logger, *config) @instance[:logger] = logger.new(*config) self end
logger_instance()
click to toggle source
# File lib/kronos/config_agent.rb, line 54 def logger_instance @instance[:logger] || raise(Kronos::Exception::NoLoggerRegistered) end
register(id, timestamp, &block)
click to toggle source
# File lib/kronos/config_agent.rb, line 12 def register(id, timestamp, &block) raise(Kronos::Exception::AlreadyRegisteredId) if @tasks.lazy.map(&:id).include?(id) task = Kronos::Task.new(id, timestamp, block) tasks.push(task) self end
runner(runner)
click to toggle source
# File lib/kronos/config_agent.rb, line 31 def runner(runner) @_runner = runner @instance[:runner] = nil self end
runner_instance()
click to toggle source
# File lib/kronos/config_agent.rb, line 37 def runner_instance @instance[:runner] ||= begin raise(Kronos::Exception::NoRunnerRegistered) unless _runner dependencies = Kronos::Dependencies.new( storage: storage_instance, logger: logger_instance ) _runner.new(tasks, dependencies) end end
storage(storage, *config)
click to toggle source
# File lib/kronos/config_agent.rb, line 21 def storage(storage, *config) @instance[:storage] = storage.new(*config) self end
storage_instance()
click to toggle source
# File lib/kronos/config_agent.rb, line 50 def storage_instance @instance[:storage] || raise(Kronos::Exception::NoStorageRegistered) end