Sha256: 761d83e6ef390dd0fbbb7ad05e84f0574187618d135434d5e184b4eeaa968501
Contents?: true
Size: 917 Bytes
Versions: 4
Compression:
Stored size: 917 Bytes
Contents
# frozen_string_literal: true module Leftovers module MatcherBuilders module And class << self def build(matchers) matchers = flatten(matchers).compact case matchers.length when 0 then nil when 1 then matchers.first when 2 then ::Leftovers::Matchers::And.new(matchers.first, matchers[1]) else ::Leftovers::Matchers::All.new(matchers.dup) end end private def flatten(value) case value when ::Leftovers::Matchers::And [*flatten(value.lhs), *flatten(value.rhs)] # :nocov: # not sure how to make this happen when ::Leftovers::Matchers::All flatten(value.matchers) # :nocov: when Array value.flat_map { |v| flatten(v) } else [value] end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems