Sha256: b12e46d2ebbd8c00bb4eee7c70645ac75c09aa1bb6b3cc8b8186249dd4b973df

Contents?: true

Size: 1.38 KB

Versions: 2

Compression:

Stored size: 1.38 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
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
ehbrs-tools-0.3.0 vendor/eac_cli/lib/eac_cli/runner/definition.rb
eac_cli-0.2.0 lib/eac_cli/runner/definition.rb