Sha256: b2ecb4cd7cce8a94d8071abcc5a08a2c0b3e8460d408cf783b614b4fe76510f8
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
# frozen_string_literal: true require "refinements/structs" module Rubysmith module CLI module Processors # Handles the Command Line Interface (CLI) for building of a project skeleton. class Build using Refinements::Structs # Order is important. MINIMUM = [ Builders::Core, Builders::Bundler, Builders::Pragma, Builders::Rubocop::Formatter ].freeze # Order is important. MAXIMUM = [ Builders::Core, Builders::Documentation, Builders::Git::Setup, Builders::Bundler, Builders::Rake, Builders::Console, Builders::Setup, Builders::Guard, Builders::Reek, Builders::RSpec::Context, Builders::RSpec::Helper, Builders::Pragma, Builders::Rubocop::Setup, Builders::Rubocop::Formatter, Builders::Git::Commit ].freeze def self.with_minimum = new(builders: MINIMUM) def initialize configuration: Configuration::Loader.call, builders: MAXIMUM @configuration = configuration @builders = builders end def call(options) = configuration.merge(**options).then { |config| process config } private attr_reader :configuration, :builders def process(config) = builders.each { |builder| builder.call config } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubysmith-0.12.0 | lib/rubysmith/cli/processors/build.rb |