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