Sha256: 3436db941f5e5ba352d4de44429362d7b41a1f0dc29c5dc86d90cc19212b7466
Contents?: true
Size: 1.01 KB
Versions: 30
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true module Kitchen # An enumerator that detects the element type as it iterates and returns specific, # different element classes based on that type. # class TypeCastingElementEnumerator < ElementEnumeratorBase # Returns a factory for this enumerator # # @return [ElementEnumeratorFactory] # def self.factory ElementEnumeratorFactory.new( enumerator_class: self, detect_sub_element_class: true ) end # Returns a new enumerator that returns only the specified element classes within the # scope of this enumerator. # # @param element_classes [Array<ElementBase>] the element classes to limit iteration to # @return [TypeCastingElementEnumerator] # def only(*element_classes) element_classes.flatten! TypeCastingElementEnumerator.new do |block| each do |element| next unless element_classes.include?(element.class) block.yield(element) end end end end end
Version data entries
30 entries across 30 versions & 1 rubygems