Sha256: f27b274a15149721241784d1e2b0d15e7c10099bd704dde76765fc58dbbf5916

Contents?: true

Size: 854 Bytes

Versions: 12

Compression:

Stored size: 854 Bytes

Contents

# frozen_string_literal: true

module Evostream
  module CLI
    module Argument
      # Abstract class for all argument used with CLI command
      class Arg
        def self.descendants
          ObjectSpace.each_object(Class).select { |klass| klass < self }
        end

        def used?
          action if use(self.class::KEY)
        end

        private

        def use(argument_parsed)
          argument_parsed.any? { |value| ARGV.include?(value) }
        end

        def action
          raise CodeError::Finished
        end

        def parameter(search_case)
          param = ARGV.find_index(search_case)
          ARGV[param + 1]
        end
      end
    end
  end
end

require 'option/help'
require 'option/command'
require 'option/host'
require 'option/port'
require 'option/search'
require 'option/config'
require 'option/version'

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
evostream-event-1.0.3 lib/evostream/cli/option/argument.rb
evostream-event-1.0.3.pre.95 lib/evostream/cli/option/argument.rb
evostream-event-1.0.3.pre.93 lib/evostream/cli/option/argument.rb
evostream-event-1.0.3.pre.91 lib/evostream/cli/option/argument.rb
evostream-event-1.0.3.pre.83 lib/evostream/cli/option/argument.rb
evostream-event-1.0.2 lib/evostream/cli/option/argument.rb
evostream-event-1.0.2.pre.75 lib/evostream/cli/option/argument.rb
evostream-event-1.0.2.pre.74 lib/evostream/cli/option/argument.rb
evostream-event-1.0.1 lib/evostream/cli/option/argument.rb
evostream-event-1.0.1.pre.72 lib/evostream/cli/option/argument.rb
evostream-event-1.0.0 lib/evostream/cli/option/argument.rb
evostream-event-1.0.0.pre.69 lib/evostream/cli/option/argument.rb