Sha256: 31fd04ca231425de8c406747c250013f4603056d8d22f111e8eb49fcdd72a697

Contents?: true

Size: 787 Bytes

Versions: 12

Compression:

Stored size: 787 Bytes

Contents

# frozen_string_literal: true

module Leftovers
  module ProcessorBuilders
    module EachForDefinitionSet
      def self.each_or_self(value, &block)
        case value
        # :nocov:
        when nil then raise
        # :nocov:
        when Array then build(value.map(&block))
        else build([yield(value)])
        end
      end

      def self.build(processors)
        processors = compact(processors)

        case processors.length
        # :nocov:
        when 0 then raise
        # :nocov:
        when 1 then processors.first
        else ::Leftovers::ValueProcessors::EachForDefinitionSet.new(processors)
        end
      end

      def self.compact(processors)
        processors.flatten!
        processors.compact!

        processors
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
leftovers-0.7.0 lib/leftovers/processor_builders/each_for_definition_set.rb
leftovers-0.6.0 lib/leftovers/processor_builders/each_for_definition_set.rb
leftovers-0.5.5 lib/leftovers/processor_builders/each_for_definition_set.rb
leftovers-0.5.4 lib/leftovers/processor_builders/each_for_definition_set.rb
leftovers-0.5.3 lib/leftovers/processor_builders/each_for_definition_set.rb
leftovers-0.5.2 lib/leftovers/processor_builders/each_for_definition_set.rb
leftovers-0.5.1 lib/leftovers/processor_builders/each_for_definition_set.rb
leftovers-0.5.0 lib/leftovers/processor_builders/each_for_definition_set.rb
leftovers-0.4.3 lib/leftovers/processor_builders/each_for_definition_set.rb
leftovers-0.4.2 lib/leftovers/processor_builders/each_for_definition_set.rb
leftovers-0.4.1 lib/leftovers/processor_builders/each_for_definition_set.rb
leftovers-0.4.0 lib/leftovers/processor_builders/each_for_definition_set.rb