Sha256: 5ba9849676a4d1dd7bddef4f011ab6835fa8ab3cd21c12228db80f0d90ec3408

Contents?: true

Size: 811 Bytes

Versions: 10

Compression:

Stored size: 811 Bytes

Contents

# frozen_string_literal: true

module Leftovers
  module ValueProcessors
    class KeywordArgument
      # :nocov:
      using ::Leftovers::Backports::SetCaseEq if defined?(::Leftovers::Backports::SetCaseEq)
      # :nocov:

      def initialize(matcher, then_processor)
        @matcher = matcher
        @then_processor = then_processor

        freeze
      end

      def process(_str, node, method_node)
        kwargs = node.kwargs
        return unless kwargs

        result = []

        kwargs.children.each do |pair|
          next unless @matcher === pair

          argument_node = pair.second
          str = argument_node.to_s if argument_node.string_or_symbol?

          result << @then_processor.process(str, argument_node, method_node)
        end

        result
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
leftovers-0.5.5 lib/leftovers/value_processors/keyword_argument.rb
leftovers-0.5.4 lib/leftovers/value_processors/keyword_argument.rb
leftovers-0.5.3 lib/leftovers/value_processors/keyword_argument.rb
leftovers-0.5.2 lib/leftovers/value_processors/keyword_argument.rb
leftovers-0.5.1 lib/leftovers/value_processors/keyword_argument.rb
leftovers-0.5.0 lib/leftovers/value_processors/keyword_argument.rb
leftovers-0.4.3 lib/leftovers/value_processors/keyword_argument.rb
leftovers-0.4.2 lib/leftovers/value_processors/keyword_argument.rb
leftovers-0.4.1 lib/leftovers/value_processors/keyword_argument.rb
leftovers-0.4.0 lib/leftovers/value_processors/keyword_argument.rb