Sha256: 3bf7f15348a8d874b4cc8d32f052cb5ba55e472e5833f894154b964e3303d30d

Contents?: true

Size: 520 Bytes

Versions: 5

Compression:

Stored size: 520 Bytes

Contents

require_relative 'entities/unhandled'

module Analyst

  module Processor

    PROCESSORS = Hash.new(Analyst::Entities::Unhandled)

    def self.register_processor(type, processor)
      if PROCESSORS.key? type
        raise "(#{type}) nodes already registered by #{PROCESSORS[type]}"
      end
      PROCESSORS[type] = processor
    end

    def self.process_node(node, parent)
      return if node.nil?
      return unless node.respond_to?(:type)
      PROCESSORS[node.type].process(node, parent)
    end

  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
analyst-1.2.4 lib/analyst/processor.rb
analyst-1.2.3 lib/analyst/processor.rb
analyst-1.2.2 lib/analyst/processor.rb
analyst-1.2.1 lib/analyst/processor.rb
analyst-1.2.0 lib/analyst/processor.rb