Sha256: 6adbfede1846d07e7d7e8b534d35c4674813bb4299ed4e540859243c02a1b1ae
Contents?: true
Size: 1.35 KB
Versions: 2
Compression:
Stored size: 1.35 KB
Contents
# frozen_string_literal: true require 'yaml' require 'article_fixture_gen/config' require 'article_fixture_gen/support/logging' module ArticleFixtureGen module CLI # CLI implementation class that reads YAML config from file and uses it to # create an `ArticleFixtureGen::Config` instance. class Config def self.call(filename:, defaults: nil, overrides: {}) new(filename, defaults, overrides).call end def call ArticleFixtureGen::Config.new final end protected def initialize(filename, defaults, overrides) @defaults = Internals.defaults_based_on(defaults) @filename = filename @overrides = overrides self end private attr_reader :defaults, :filename, :overrides def file_contents YAML.load_file filename end def final defaults.merge(non_defaults) end def non_defaults file_contents.merge(overrides) end # Stateless methods. module Internals # Reek complains about a :reek:ControlParameter. :pedantic: :neckbeard: def self.defaults_based_on(specified_defaults) ret = specified_defaults || ArticleFixtureGen::Config.defaults ret.to_hash end end private_constant :Internals end # class ArticleFixtureGen::CLI::Config end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
article_fixture_gen-0.1.2 | lib/article_fixture_gen/cli/config.rb |
article_fixture_gen-0.1.1 | lib/article_fixture_gen/cli/config.rb |