Sha256: 6d1382c25d26e7bf4eb6347377df26ba535210bc9443bf6f095a7adbb3f43748
Contents?: true
Size: 1.45 KB
Versions: 2
Compression:
Stored size: 1.45 KB
Contents
# frozen_string_literal: true require "core" require "refinements/structs" module Gemsmith module CLI module Parsers # Handles parsing of Command Line Interface (CLI) build options. class Build include Import[:colorizer] using Refinements::Structs def self.call(...) = new(...).call def initialize configuration = Container[:configuration], client: Parser::CLIENT, **dependencies super(**dependencies) @configuration = configuration @client = client end def call arguments = ::Core::EMPTY_ARRAY add_cli client.parse arguments configuration end private attr_reader :configuration, :client def add_cli client.on( "--[no-]cli", "Add command line interface. #{default __method__}." ) do |value| configuration.merge! build_refinements: value, build_zeitwerk: value if value configuration.merge! build_cli: value end end def default option option.to_s .sub("add_", "build_") .then { |attribute| configuration.public_send attribute } .then { |boolean| boolean ? colorizer.green(boolean) : colorizer.red(boolean) } .then { |colored_boolean| "Default: #{colored_boolean}" } end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gemsmith-19.3.0 | lib/gemsmith/cli/parsers/build.rb |
gemsmith-19.2.0 | lib/gemsmith/cli/parsers/build.rb |