vnegrisolo/cch

View on GitHub
lib/cch.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'yaml'

require 'cch/extensions/string'
require 'cch/version'
require 'cch/commands/shell'
require 'cch/commands/file_system'
require 'cch/watcher'
require 'cch/runner'
require 'cch/logger'
require 'cch/setup'

module Cch
  class << self
    def logger
      @logger ||= Logger.new
    end

    def setup
      @setup ||= Setup.new
    end

    def run(args = [])
      setup.configure

      files = Watcher.files

      runners(args).each { |runner| runner.run(files) }
    end

    private

    def runners(args)
      names = args.flatten.compact
      query = names.any? ? { name: names } : { on?: true }
      Runner.where(query)
    end
  end
end