Sha256: 83a9bfa579904d547c065211f7cfba652df520cb2972d1bc7f8aea4a9bac74e8
Contents?: true
Size: 1.86 KB
Versions: 2
Compression:
Stored size: 1.86 KB
Contents
# frozen_string_literal: true require "refinements/struct" module Gemsmith module Builders # Builds project skeleton CLI templates. class CLI < Rubysmith::Builders::Abstract using Refinements::Struct def call return configuration unless configuration.build_cli render configuration end private def render = private_methods.sort.grep(/render_/).each { |method| __send__ method } def render_exe builder.call(configuration.merge(template_path: "%project_name%/exe/%project_name%.erb")) .render .permit 0o755 end def render_core content = configuration.merge template_path: "%project_name%/lib/%project_path%.rb.erb" builder.call(content) .insert_before(/tag/, %( loader.inflector.inflect "cli" => "CLI"\n)) end def render_configuration [ "%project_name%/lib/%project_path%/configuration/contract.rb.erb", "%project_name%/lib/%project_path%/configuration/model.rb.erb", "%project_name%/lib/%project_path%/configuration/defaults.yml.erb", "%project_name%/lib/%project_path%/container.rb.erb", "%project_name%/lib/%project_path%/import.rb.erb" ].each { |path| builder.call(configuration.merge(template_path: path)).render } end def render_shell path = "%project_name%/lib/%project_path%/cli/shell.rb.erb" builder.call(configuration.merge(template_path: path)).render end def render_specs return unless configuration.build_rspec [ "%project_name%/spec/lib/%project_path%/cli/shell_spec.rb.erb", "%project_name%/spec/support/shared_contexts/application_dependencies.rb.erb" ].each { |path| builder.call(configuration.merge(template_path: path)).render } end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gemsmith-21.10.0 | lib/gemsmith/builders/cli.rb |
gemsmith-21.9.0 | lib/gemsmith/builders/cli.rb |