Sha256: 4ded49f39b9db28c4d6167137fd3c71c3bd6fcae0fdcc0bab14984e90d014a6d

Contents?: true

Size: 1.17 KB

Versions: 86

Compression:

Stored size: 1.17 KB

Contents

require_relative "loads_yaml_config"
require_relative "merges_settings"
require_relative "creates_config_store"

module Standard
  Config = Struct.new(:runner, :paths, :rubocop_options, :rubocop_config_store)

  class BuildsConfig
    def initialize
      @parses_cli_option = ParsesCliOption.new
      @loads_yaml_config = LoadsYamlConfig.new
      @merges_settings = MergesSettings.new
      @creates_config_store = CreatesConfigStore.new
    end

    def call(argv, search_path = Dir.pwd)
      standard_yaml_path = determine_yaml_file(argv, search_path, "--config", ".standard.yml")
      todo_yaml_path = determine_yaml_file(argv, search_path, "--todo", ".standard_todo.yml")
      standard_config = @loads_yaml_config.call(standard_yaml_path, todo_yaml_path)

      settings = @merges_settings.call(argv, standard_config)
      Config.new(
        settings.runner,
        settings.paths,
        settings.options,
        @creates_config_store.call(standard_config)
      )
    end

    private

    def determine_yaml_file(argv, search_path, option_name, default_file)
      @parses_cli_option.call(argv, option_name) || FileFinder.new.call(default_file, search_path)
    end
  end
end

Version data entries

86 entries across 86 versions & 3 rubygems

Version Path
standard-1.25.5 lib/standard/builds_config.rb
standard-1.25.4 lib/standard/builds_config.rb
standard-1.25.3 lib/standard/builds_config.rb
standard-1.25.2 lib/standard/builds_config.rb
standard-1.25.1 lib/standard/builds_config.rb
standard-1.25.0 lib/standard/builds_config.rb
standard-1.24.3 lib/standard/builds_config.rb
standard-1.24.2 lib/standard/builds_config.rb
standard-1.24.1 lib/standard/builds_config.rb
standard-1.24.0 lib/standard/builds_config.rb
standard-1.23.0 lib/standard/builds_config.rb
standard-1.22.1 lib/standard/builds_config.rb
standard-1.22.0 lib/standard/builds_config.rb
standard-1.21.1 lib/standard/builds_config.rb
standard-1.21.0 lib/standard/builds_config.rb
standard-1.20.0 lib/standard/builds_config.rb
standard-1.19.1 lib/standard/builds_config.rb
standard-1.19.0 lib/standard/builds_config.rb
standard-1.18.1 lib/standard/builds_config.rb
standard-1.18.0 lib/standard/builds_config.rb