Sha256: 18eba3a58e3c368fe7dd2ce6967df6541f6c6b27f0b2dea5c3f5291e47d660da

Contents?: true

Size: 1 KB

Versions: 10

Compression:

Stored size: 1 KB

Contents

# frozen-string-literal: true

module Leftovers
  module ProcessorBuilders
    module Dynamic
      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
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

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