Sha256: 3031ae47f11775e79058c5ba29627f44190a528222ebff913fca39f121edd531

Contents?: true

Size: 944 Bytes

Versions: 4

Compression:

Stored size: 944 Bytes

Contents

# frozen_string_literal: true

require 'active_support/core_ext/hash/indifferent_access'
require 'active_support/core_ext/hash/slice'
require 'docopt'
require 'eac_ruby_utils/contextualizable'
require 'eac_ruby_utils/patches/hash/sym_keys_hash'
Dir["#{__dir__}/#{::File.basename(__FILE__, '.*')}/_*.rb"].sort.each do |partial|
  require partial
end

module EacCli
  class DocoptRunner
    include ::EacRubyUtils::Contextualizable

    class << self
      def create(settings = {})
        new(settings)
      end
    end

    attr_reader :settings

    def initialize(settings = {})
      @settings = settings.with_indifferent_access.freeze
      check_subcommands
    end

    def options
      @options ||= ::Docopt.docopt(target_doc, docopt_options)
    end

    def parent
      settings[:parent]
    end

    protected

    def docopt_options
      settings.slice(:version, :argv, :help, :options_first).to_sym_keys_hash
    end
  end
end

Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
ehbrs-tools-0.21.0 vendor/eac_cli/lib/eac_cli/docopt_runner.rb
avm-tools-0.99.1 vendor/eac_cli/lib/eac_cli/docopt_runner.rb
eac_cli-0.17.0 lib/eac_cli/docopt_runner.rb
avm-tools-0.99.0 vendor/eac_cli/lib/eac_cli/docopt_runner.rb