Sha256: 541cf253e8496682316dc5ae759b880901c1501aa50450384f4cda879291f233

Contents?: true

Size: 1.5 KB

Versions: 48

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

module PactBroker
  module Client
    module CLI
      class VersionSelectorOptionsParser

        def self.call words
          selectors = []
          previous_option = nil
          split_equals(words).each do | word |
            case word
            when "--pacticipant", "-a"
              selectors << {}
            when "--latest", "-l"
              selectors << { pacticipant: nil } if selectors.empty?
              selectors.last[:latest] = true
            when /^\-/
              nil
            else
              case previous_option
              when "--pacticipant", "-a"
                selectors.last[:pacticipant] = word
              when "--version", "-e"
                selectors << { pacticipant: nil } if selectors.empty?
                selectors.last[:version] = word
              when "--latest", "-l"
                selectors << { pacticipant: nil } if selectors.empty?
                selectors.last[:tag] = word
              when "--all"
                selectors << { pacticipant: nil } if selectors.empty?
                selectors.last[:tag] = word
              end
            end
            previous_option = word if word.start_with?("-")
          end
          selectors
        end

        def self.split_equals(words)
          words.flat_map do |word|
            if word.start_with?("-") && word.include?("=")
              word.split('=', 2)
            else
              word
            end
          end
        end
      end
    end
  end
end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
pact_broker-client-1.40.0 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.39.0 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.38.3 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.38.2 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.38.1 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.38.0 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.37.1 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.37.0 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.36.0 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.35.0 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.34.0 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.33.0 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.32.0 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.31.0 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.30.0 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.29.1 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.29.0 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.28.4 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.28.3 lib/pact_broker/client/cli/version_selector_options_parser.rb
pact_broker-client-1.28.2 lib/pact_broker/client/cli/version_selector_options_parser.rb