class Observed::Context
The run context of an Observed
system. It can be initialized via parameters to automatically configure the system and everything needed such as the config builder, the DSL, the logger, etc.
Public Class Methods
new(args={})
click to toggle source
# File lib/observed/context.rb, line 15 def initialize(args={}) configure args end
Public Instance Methods
config_builder()
click to toggle source
# File lib/observed/context.rb, line 64 def config_builder @config_builder ||= Observed::ConfigBuilder.new(system: system, logger: logger, context: self) end
config_dsl()
click to toggle source
# File lib/observed/context.rb, line 68 def config_dsl Observed::ConfigDSL.new(builder: config_builder, logger: logger) end
configure(args)
click to toggle source
# File lib/observed/context.rb, line 19 def configure(args) @logger ||= begin logger_out = if args[:log_file] File.open(args[:log_file], 'a') else STDOUT end Logger.new(logger_out) end @executor = args[:executor] set_log_level_to_debug(!!args[:debug]) if args[:config_file] load_config_file(args[:config_file]) end self end
event_bus()
click to toggle source
# File lib/observed/context.rb, line 52 def event_bus @event_bus ||= Observed::EventBus.new(task_factory: task_factory) end
executor()
click to toggle source
# File lib/observed/context.rb, line 48 def executor @executor ||= Observed::BlockingExecutor.new end
logger()
click to toggle source
# File lib/observed/context.rb, line 40 def logger @logger end
observed_task_factory()
click to toggle source
# File lib/observed/context.rb, line 60 def observed_task_factory @observed_task_factory ||= Observed::ObservedTaskFactory.new(task_factory: task_factory) end
system()
click to toggle source
# File lib/observed/context.rb, line 44 def system @system ||= Observed::System.new(logger: logger, context: self) end
task_factory()
click to toggle source
# File lib/observed/context.rb, line 56 def task_factory @task_factory ||= Observed::TaskFactory.new(executor: executor) end
Private Instance Methods
load_config_file(path)
click to toggle source
# File lib/observed/context.rb, line 84 def load_config_file(path) config_dsl.eval_file(path) system.config = config_dsl.config end
set_log_level_to_debug(enabled)
click to toggle source
# File lib/observed/context.rb, line 74 def set_log_level_to_debug(enabled) @logger.level = if enabled Logger::DEBUG else Logger::INFO end @logger.debug "Enabling Debug logs." if enabled end