Class: Rubysmith::CLI::Actions::Build

Inherits:
Object
  • Object
show all
Defined in:
lib/rubysmith/cli/actions/build.rb

Overview

Handles the build action.

Constant Summary collapse

BUILDERS =

Order is important. rubocop:todo Metrics/CollectionLiteralLength

[
  Builders::Core,
  Builders::Version,
  Builders::Documentation::Readme,
  Builders::Documentation::Citation,
  Builders::Documentation::License,
  Builders::Documentation::Version,
  Builders::Git::Setup,
  Builders::Git::Ignore,
  Builders::Git::Safe,
  Builders::Bundler,
  Builders::Rake,
  Builders::Console,
  Builders::CircleCI,
  Builders::Setup,
  Builders::GitHub,
  Builders::GitHubCI,
  Builders::Guard,
  Builders::Reek,
  Builders::RSpec::Binstub,
  Builders::RSpec::Context,
  Builders::RSpec::Helper,
  Builders::Caliber,
  Extensions::Bundler,
  Extensions::Pragmater,
  Extensions::Tocer,
  Extensions::Rubocop,
  Builders::Git::Commit
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(builders: BUILDERS) ⇒ Build

rubocop:enable Metrics/CollectionLiteralLength



43
44
45
46
# File 'lib/rubysmith/cli/actions/build.rb', line 43

def initialize(builders: BUILDERS, **)
  super(**)
  @builders = builders
end

Instance Method Details

#call(configuration) ⇒ Object



48
49
50
51
52
# File 'lib/rubysmith/cli/actions/build.rb', line 48

def call configuration
  log_info "Building project skeleton: #{configuration.project_name}..."
  builders.each { |builder| builder.call configuration }
  log_info "Project skeleton complete!"
end