Sha256: 3bc0078539205fcb2ce583a8c4bf2bf4948477fb0818694b6da0dbd8741ef89b
Contents?: true
Size: 1.55 KB
Versions: 3
Compression:
Stored size: 1.55 KB
Contents
require "refinements/structs" <% namespace do %> module CLI module Parsers # Handles parsing of Command Line Interface (CLI) core options. class Core using Refinements::Structs def self.call(...) = new(...).call def initialize configuration = Container[:configuration], client: Parser::CLIENT, container: Container @configuration = configuration @client = client @container = container end def call arguments = [] client.banner = specification.labeled_summary client.separator "\nUSAGE:\n" collate client.parse arguments configuration end private attr_reader :configuration, :client, :container def collate = private_methods.sort.grep(/add_/).each { |method| __send__ method } def add_config client.on "-c", "--config ACTION", %i[edit view], "Manage gem configuration: edit or view." do |action| configuration.merge! action_config: action end end def add_version client.on "-v", "--version", "Show gem version." do configuration.merge! action_version: true end end def add_help client.on "-h", "--help", "Show this message." do configuration.merge! action_help: true end end def specification = container[__method__] end end end <% end %>
Version data entries
3 entries across 3 versions & 1 rubygems