Sha256: 56fd02625fb69f726ed3ac3a5d24976e492500134659b8d0955334f7660fea73

Contents?: true

Size: 1.48 KB

Versions: 10

Compression:

Stored size: 1.48 KB

Contents

# frozen_string_literal: true

require 'eac_cli/runner/argument_option'
require 'eac_cli/runner/boolean_option'
require 'eac_cli/runner/positional_argument'
require 'eac_ruby_utils/core_ext'

module EacCli
  module Runner
    class Definition
      require_sub __FILE__
      attr_accessor :description
      attr_accessor :options_argument

      def initialize
        self.description = '-- NO DESCRIPTION SET --'
        self.options_argument = true
      end

      def alt(&block)
        r = ::EacCli::Runner::Definition.new
        r.instance_eval(&block)
        alternatives << r
        r
      end

      def alternatives
        @alternatives ||= []
      end

      def arg_opt(short, long, description, option_options = {})
        options << ArgumentOption.new(short, long, description, option_options)
      end

      def bool_opt(short, long, description, option_options = {})
        options << BooleanOption.new(short, long, description, option_options)
      end

      def desc(description)
        self.description = description
      end

      def options_arg(options_argument)
        self.options_argument = options_argument
      end

      def options
        @options ||= []
      end

      def pos_arg(name, arg_options = {})
        positional << PositionalArgument.new(name, arg_options)
      end

      def positional
        @positional ||= []
      end

      def subcommands
        positional << PositionalArgument.new('subcommand', subcommand: true)
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
ehbrs-tools-0.13.0 vendor/eac_cli/lib/eac_cli/runner/definition.rb
ehbrs-tools-0.12.0 vendor/eac_cli/lib/eac_cli/runner/definition.rb
ehbrs-tools-0.11.0 vendor/eac_cli/lib/eac_cli/runner/definition.rb
ehbrs-tools-0.10.0 vendor/eac_cli/lib/eac_cli/runner/definition.rb
ehbrs-tools-0.9.0 vendor/eac_cli/lib/eac_cli/runner/definition.rb
ehbrs-tools-0.7.0 vendor/eac_cli/lib/eac_cli/runner/definition.rb
ehbrs-tools-0.6.0 vendor/eac_cli/lib/eac_cli/runner/definition.rb
ehbrs-tools-0.5.0 vendor/eac_cli/lib/eac_cli/runner/definition.rb
ehbrs-tools-0.3.1 vendor/eac_cli/lib/eac_cli/runner/definition.rb
eac_cli-0.3.0 lib/eac_cli/runner/definition.rb