module Leftovers::ProcessorBuilders::Dynamic
Public Class Methods
build(dynamic_rules)
click to toggle source
# File lib/leftovers/processor_builders/dynamic.rb, line 6 def self.build(dynamic_rules) # rubocop:disable Metrics/MethodLength ::Leftovers::ProcessorBuilders::EachDynamic.each_or_self(dynamic_rules) do |dynamic| call = ::Leftovers::ProcessorBuilders::Action.build(dynamic.delete(:call), :call) define = ::Leftovers::ProcessorBuilders::Action.build(dynamic.delete(:define), :define) matcher = ::Leftovers::MatcherBuilders::Node.build(**dynamic) # this nonsense saves a method call and array instantiation per method if call && define ::Leftovers::DynamicProcessors::CallDefinition.new(matcher, call, define) elsif define ::Leftovers::DynamicProcessors::Definition.new(matcher, define) elsif call ::Leftovers::DynamicProcessors::Call.new(matcher, call) # :nocov: else raise # :nocov: end end end