module Leftovers::ProcessorBuilders::Action
Public Class Methods
build(patterns, action)
click to toggle source
# File lib/leftovers/processor_builders/action.rb, line 6 def self.build(patterns, action) ::Leftovers::ProcessorBuilders::EachAction.each_or_self(patterns) do |pattern| case pattern when ::String, ::Integer ::Leftovers::ProcessorBuilders::Argument.build(pattern, final_transformer(action)) when ::Hash build_from_hash_value(action, **pattern) # :nocov: else raise # :nocov: end end end
build_from_hash_value( action, arguments: nil, keywords: nil, itself: nil, value: nil, nested: nil, recursive: nil, **transform_args )
click to toggle source
# File lib/leftovers/processor_builders/action.rb, line 24 def self.build_from_hash_value( # rubocop:disable Metrics/MethodLength, Metrics/ParameterLists action, arguments: nil, keywords: nil, itself: nil, value: nil, nested: nil, recursive: nil, **transform_args ) transformer = ::Leftovers::ProcessorBuilders::TransformSet.build(transform_args, action) if nested transformer = ::Leftovers::ProcessorBuilders::Each.build([ ::Leftovers::ProcessorBuilders::Action.build(nested, action), transformer ]) end if recursive placeholder = ::Leftovers::ValueProcessors::Placeholder.new transformer = ::Leftovers::ProcessorBuilders::Each.build( [placeholder, transformer] ) end processor = ::Leftovers::ProcessorBuilders::EachAction.build([ ::Leftovers::ProcessorBuilders::Argument.build(arguments, transformer), ::Leftovers::ProcessorBuilders::Keyword.build(keywords, transformer), ::Leftovers::ProcessorBuilders::Itself.build(itself, transformer), ::Leftovers::ProcessorBuilders::Value.build(value, transformer) ]) return processor unless recursive placeholder.processor = processor placeholder end
final_transformer(action)
click to toggle source
# File lib/leftovers/processor_builders/action.rb, line 20 def self.final_transformer(action) ::Leftovers::ProcessorBuilders::TransformSet.build_final(action) end