Sha256: 07cd635bc9e37768d44b4ea4456b4c0ff17de633d5b62f2055dff0cc96fd1024

Contents?: true

Size: 879 Bytes

Versions: 14

Compression:

Stored size: 879 Bytes

Contents

# frozen_string_literal: true

# :reek:UtilityFunction

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

14 entries across 14 versions & 1 rubygems

Version Path
evostream-event-2.0.3 lib/evostream/cli/option/argument.rb
evostream-event-2.0.3.pre.1265906291 lib/evostream/cli/option/argument.rb
evostream-event-2.0.3.pre.1265756691 lib/evostream/cli/option/argument.rb
evostream-event-2.0.3.pre.1265752332 lib/evostream/cli/option/argument.rb
evostream-event-2.0.2 lib/evostream/cli/option/argument.rb
evostream-event-2.0.2.pre.994185738 lib/evostream/cli/option/argument.rb
evostream-event-2.0.0.pre.994170151 lib/evostream/cli/option/argument.rb
evostream-event-2.0.0.pre.994165179 lib/evostream/cli/option/argument.rb
evostream-event-2.0.0.pre.994159616 lib/evostream/cli/option/argument.rb
evostream-event-2.0.0.pre.856454391 lib/evostream/cli/option/argument.rb
evostream-event-2.0.0.pre.856447460 lib/evostream/cli/option/argument.rb
evostream-event-2.0.0.pre.856441003 lib/evostream/cli/option/argument.rb
evostream-event-2.0.0.pre.816370746 lib/evostream/cli/option/argument.rb
evostream-event-2.0.0.pre.809444619 lib/evostream/cli/option/argument.rb