class BigSister::Application

Constants

DEFAULT_CONFIG_PATHS

Attributes

configs[R]

Public Class Methods

new(opts = {}) click to toggle source
# File lib/bigsister/application.rb, line 10
def initialize(opts = {})
  @config_paths = opts[:config_paths] || DEFAULT_CONFIG_PATHS
  @configs = []

  load_config!
end

Public Instance Methods

run() click to toggle source
# File lib/bigsister/application.rb, line 17
def run
  configs.each { |config|
    config.reporters.each { |reporter|
      config.monitors.each { |monitor|
        if reporter.log_files?
          monitor.files.each { |file|
            reporter.log_file(file)
          }
        end
        if reporter.log_directories?
          monitor.directories.each { |directory|
            reporter.log_directory(directory)
          }
        end
      }
      reporter.render
    }
  }
end

Private Instance Methods

load_config!() click to toggle source
# File lib/bigsister/application.rb, line 39
def load_config!
  yaml = @config_paths.map { |path|
    File.exists?(path) && YAML.load(File.open(path).read)
  }.select(&:itself).first
  if yaml.nil?
    raise BigSister::NoConfigurationFound.new(@config_paths)
  end
  sisters = yaml.fetch("sisters", [])
  sisters.each { |config|
    @configs.push(Configuration.new(config))
  }
end