class RDG::Analysis::Registry
Public Class Methods
clear()
click to toggle source
# File lib/rdg/analysis/registry.rb, line 12 def self.clear by_type.clear end
register_by_type(analyser, *types)
click to toggle source
# File lib/rdg/analysis/registry.rb, line 4 def self.register_by_type(analyser, *types) types.each { |type| by_type[type] = analyser } end
register_default(analyser)
click to toggle source
# File lib/rdg/analysis/registry.rb, line 8 def self.register_default(analyser) by_type.default = analyser end
Private Class Methods
by_type()
click to toggle source
# File lib/rdg/analysis/registry.rb, line 26 def self.by_type @by_type ||= {} end
Public Instance Methods
analyser_for(ast_node, context)
click to toggle source
# File lib/rdg/analysis/registry.rb, line 16 def analyser_for(ast_node, context) by_node[ast_node].new(ast_node, context) end
prepend_for(ast_node, analyser)
click to toggle source
# File lib/rdg/analysis/registry.rb, line 20 def prepend_for(ast_node, analyser) by_node[ast_node] = Composite.compose(analyser, by_node[ast_node]) end
Private Instance Methods
by_node()
click to toggle source
# File lib/rdg/analysis/registry.rb, line 30 def by_node @by_node ||= Hash.new { |h, node| h[node] = Registry.by_type[node.type] } end