Sha256: 6d0b08871d539ad7f953b7c41a1858cc09423da908f8c20d2385abc8c2d59b63
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
# frozen-string-literal: true module Leftovers module ProcessorBuilders module TransformSet class << self def build(transforms, action) each_builder(action).each_or_self(transforms) do |transform| case transform when ::Hash next build(transform[:transforms], action) if transform[:transforms] ::Leftovers::ProcessorBuilders::TransformChain.build(transform, build_final(action)) when ::String ::Leftovers::ProcessorBuilders::TransformChain.build(transform, build_final(action)) # :nocov: else raise Leftovers::UnexpectedCase, "Unhandled value #{transform.inspect}" # :nocov: end end end def build_final(action) case action when :sym ::Leftovers::ValueProcessors::ReturnSym when :definition_node ::Leftovers::ValueProcessors::ReturnDefinitionNode # :nocov: else raise Leftovers::UnexpectedCase, "Unhandled value #{action.inspect}" # :nocov: end end private def each_builder(action) case action when :sym ::Leftovers::ProcessorBuilders::Each when :definition_node ::Leftovers::ProcessorBuilders::EachForDefinitionSet # :nocov: else raise Leftovers::UnexpectedCase, "Unhandled value #{action.inspect}" # :nocov: end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
leftovers-0.8.0 | lib/leftovers/processor_builders/transform_set.rb |