class CC::Config

Attributes

analysis_paths[R]
development[W]
engines[R]
exclude_patterns[R]
prepare[R]

Public Class Methods

build(data) click to toggle source
# File lib/cc/config.rb, line 42
def self.build(data)
  prepare = Prepare.from_data(data["prepare"])
  base_excluded_patterns = data.fetch("exclude_patterns", DefaultAdapter::EXCLUDE_PATTERNS)
  new(
    engines: EngineSet.new(data.fetch("plugins", {})).engines,
    exclude_patterns: base_excluded_patterns + prepare.fetch.paths,
    prepare: prepare,
  )
end
load() click to toggle source
# File lib/cc/config.rb, line 28
def self.load
  config =
    if File.exist?(JSONAdapter::DEFAULT_PATH)
      JSONAdapter.load.config
    elsif File.exist?(YAMLAdapter::DEFAULT_PATH)
      YAMLAdapter.load.config
    else
      {}
    end
  config = DefaultAdapter.new(config).config
  config = ChecksAdapter.new(config).config
  build(config)
end
new(analysis_paths: [], development: false, engines: [], exclude_patterns: [], prepare: Prepare.new) click to toggle source
# File lib/cc/config.rb, line 52
def initialize(analysis_paths: [], development: false, engines: [], exclude_patterns: [], prepare: Prepare.new)
  @analysis_paths = analysis_paths
  @development = development
  @engines = engines
  @exclude_patterns = exclude_patterns
  @prepare = prepare
end

Public Instance Methods

development?() click to toggle source
# File lib/cc/config.rb, line 64
def development?
  @development
end
disable_plugins!() click to toggle source
# File lib/cc/config.rb, line 68
def disable_plugins!
  @engines.delete_if(&:plugin?)
end
merge(other) click to toggle source
# File lib/cc/config.rb, line 60
def merge(other)
  Merge.new(self, other).run
end