Sha256: 8171feddf84d8523e813a172bd61a5561a6182fabf9caa89a3214dc075ea188e

Contents?: true

Size: 777 Bytes

Versions: 3

Compression:

Stored size: 777 Bytes

Contents

# frozen_string_literal: true

require "core"
require "optparse"

module SublimeTextKit
  module CLI
    # Assembles and parses all Command Line Interface (CLI) options.
    class Parser
      include Import[:configuration]

      CLIENT = OptionParser.new nil, 40, "  "

      def initialize(section: Parsers::Core, client: CLIENT, **)
        super(**)
        @section = section
        @client = client
        @configuration_duplicate = configuration.dup
      end

      def call arguments = Core::EMPTY_ARRAY
        section.call(configuration_duplicate, client:)
        client.parse arguments
        configuration_duplicate.freeze
      end

      def to_s = client.to_s

      private

      attr_reader :section, :client, :configuration_duplicate
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sublime_text_kit-14.2.0 lib/sublime_text_kit/cli/parser.rb
sublime_text_kit-14.1.2 lib/sublime_text_kit/cli/parser.rb
sublime_text_kit-14.1.1 lib/sublime_text_kit/cli/parser.rb