Sha256: 4fe24f003e77ea7de51932bbfb56ef0c79b04d66be25903b898883fa1047655b
Contents?: true
Size: 761 Bytes
Versions: 4
Compression:
Stored size: 761 Bytes
Contents
# frozen_string_literal: true module Leftovers module MatcherBuilders module NodeHasKeywordArgument class << self def build(keywords, value_matcher) value_matcher = NodePairValue.build(value_matcher) keyword_matcher = build_keyword_matcher(keywords) pair_matcher = And.build([keyword_matcher, value_matcher]) return unless pair_matcher Matchers::NodeHasAnyKeywordArgument.new(pair_matcher) end private def build_keyword_matcher(keywords) if ::Leftovers.wrap_array(keywords).include?('**') Matchers::NodeType.new(:pair) else NodePairKey.build(Node.build(keywords)) end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems