Sha256: 32f8dd6043c2dfe0ae3f629cd246e9482bf7554557b54367038b59741ae5654f

Contents?: true

Size: 905 Bytes

Versions: 4

Compression:

Stored size: 905 Bytes

Contents

# frozen-string-literal: true

module Leftovers
  module ProcessorBuilders
    module TransformChain
      class << self
        def build(transforms, next_transform)
          case transforms
          when ::Hash then build_from_hash(transforms, next_transform)
          when ::Symbol
            ::Leftovers::ProcessorBuilders::Transform.build(transforms, true, next_transform)
          # :nocov:
          else raise Leftovers::UnexpectedCase, "Unhandled value #{transforms.inspect}"
            # :nocov:
          end
        end

        private

        def build_from_hash(transforms, next_transform)
          transforms.reverse_each do |(transform, transform_arg)|
            next_transform = ::Leftovers::ProcessorBuilders::Transform.build(
              transform, transform_arg, next_transform
            )
          end

          next_transform
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
leftovers-0.11.1 lib/leftovers/processor_builders/transform_chain.rb
leftovers-0.11.0 lib/leftovers/processor_builders/transform_chain.rb
leftovers-0.10.0 lib/leftovers/processor_builders/transform_chain.rb
leftovers-0.9.0 lib/leftovers/processor_builders/transform_chain.rb