Class: RLSL::Prism::InfererRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/rlsl/prism/type_inference/inferer_registry.rb

Instance Method Summary collapse

Constructor Details

#initializeInfererRegistry

Returns a new instance of InfererRegistry.



6
7
8
# File 'lib/rlsl/prism/type_inference/inferer_registry.rb', line 6

def initialize
  @handlers = {}
end

Instance Method Details

#infer(node, **options) ⇒ Object



20
21
22
23
24
25
# File 'lib/rlsl/prism/type_inference/inferer_registry.rb', line 20

def infer(node, **options)
  handler = @handlers[node.class]
  return unless handler

  handler.call(node, **options)
end

#register(node_class, target = nil, method_name = nil, &block) ⇒ Object



10
11
12
# File 'lib/rlsl/prism/type_inference/inferer_registry.rb', line 10

def register(node_class, target = nil, method_name = nil, &block)
  @handlers[node_class] = block || build_handler(target, method_name)
end

#register_methods(target, mapping) ⇒ Object



14
15
16
17
18
# File 'lib/rlsl/prism/type_inference/inferer_registry.rb', line 14

def register_methods(target, mapping)
  mapping.each do |node_class, method_name|
    register(node_class, target, method_name)
  end
end