Sha256: 69a833cb2b556317d8e1d34c27ca4b5d3b95617a81be1c5f2a1473d931510bee

Contents?: true

Size: 816 Bytes

Versions: 8

Compression:

Stored size: 816 Bytes

Contents

# frozen_string_literal: true

require "runcom"

module Gemsmith
  module Configuration
    # Represents the fully assembled Command Line Interface (CLI) configuration.
    class Loader < Rubysmith::Configuration::Loader
      DEFAULTS = Rubysmith::Configuration::Loader::DEFAULTS
      CLIENT = Runcom::Config.new "gemsmith/configuration.yml", defaults: DEFAULTS

      def self.with_overrides
        new client: DEFAULTS,
            enhancers: {template_root: Rubysmith::Configuration::Enhancers::TemplateRoot}
      end

      def initialize(client: CLIENT, **) = super

      def call
        return super unless enhancers.key? :template_root

        enhancers[:template_root].call(super, overrides: Pathname(__dir__).join("../templates"))
                                 .freeze
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
gemsmith-19.8.0 lib/gemsmith/configuration/loader.rb
gemsmith-19.7.0 lib/gemsmith/configuration/loader.rb
gemsmith-19.6.0 lib/gemsmith/configuration/loader.rb
gemsmith-19.5.2 lib/gemsmith/configuration/loader.rb
gemsmith-19.5.1 lib/gemsmith/configuration/loader.rb
gemsmith-19.5.0 lib/gemsmith/configuration/loader.rb
gemsmith-19.4.0 lib/gemsmith/configuration/loader.rb
gemsmith-19.3.0 lib/gemsmith/configuration/loader.rb