Class: Hanamismith::CLI::Commands::Build

Inherits:
Sod::Command
  • Object
show all
Defined in:
lib/hanamismith/cli/commands/build.rb

Overview

Handles the build command.

Constant Summary collapse

BUILDERS =

Order matters.

[
  Rubysmith::Builders::Init,
  Builders::Core,
  Builders::Providers::Persistence,
  Builders::Providers::YJIT,
  Builders::Refinement,
  Builders::Icon,
  Builders::Stylesheet,
  Builders::Javascript,
  Builders::PWA,
  Builders::Slices::Home,
  Builders::Slices::Health,
  Rubysmith::Builders::Version,
  Builders::Documentation::Readme,
  Rubysmith::Builders::Documentation::Citation,
  Rubysmith::Builders::Documentation::License,
  Rubysmith::Builders::Documentation::Version,
  Rubysmith::Builders::Git::Setup,
  Builders::Git::Ignore,
  Rubysmith::Builders::Git::Safe,
  Builders::Bundler,
  Builders::Node,
  Builders::Asset,
  Builders::Rake,
  Builders::Binstub,
  Builders::Console,
  Builders::CI::Circle,
  Builders::CI::GitHub,
  Builders::Setup,
  Rubysmith::Builders::GitHub,
  Builders::Guard,
  Rubysmith::Builders::Reek,
  Rubysmith::Builders::RSpec::Binstub,
  Rubysmith::Builders::RSpec::Context,
  Builders::RSpec::ApplicationSharedContext,
  Builders::RSpec::Database,
  Builders::RSpec::Factory,
  Builders::RSpec::Helper,
  Builders::RSpec::Hanami,
  Builders::Rack::Configuration,
  Builders::Rack::Attack,
  Builders::Rack::Deflater,
  Builders::Puma::Configuration,
  Builders::Puma::Procfile,
  Builders::Caliber,
  Rubysmith::Extensions::Bundler,
  Rubysmith::Extensions::Pragmater,
  Rubysmith::Extensions::Tocer,
  Rubysmith::Extensions::Rubocop,
  Extensions::NPM,
  Builders::Environments::Development,
  Builders::Environments::Test,
  Builders::Git::Commit
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(builders: BUILDERS) ⇒ Build

Returns a new instance of Build.



101
102
103
104
# File 'lib/hanamismith/cli/commands/build.rb', line 101

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

Instance Method Details

#callObject



106
107
108
109
110
# File 'lib/hanamismith/cli/commands/build.rb', line 106

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