Sha256: 63e55b92f31cf488701763d0a726b423e42645ae1a0e0de6950d4b718047076e
Contents?: true
Size: 867 Bytes
Versions: 4
Compression:
Stored size: 867 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 Matchers::And.new(matchers.first, matchers[1]) else Matchers::All.new(matchers.dup) end end private def flatten(value) case value when Matchers::And [*flatten(value.lhs), *flatten(value.rhs)] # :nocov: # not sure how to make this happen when 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