class Riml::AST_Rewriter::RegisterClassDependencies

Public Class Methods

new(ast, classes, class_dependency_graph, filename) click to toggle source
Calls superclass method Riml::AST_Rewriter::new
# File lib/riml/ast_rewriter.rb, line 161
def initialize(ast, classes, class_dependency_graph, filename)
  super(ast, classes, class_dependency_graph)
  @filename = filename
end

Public Instance Methods

match?(node) click to toggle source
# File lib/riml/ast_rewriter.rb, line 166
def match?(node)
  ClassDefinitionNode === node || ObjectInstantiationNode === node
end
replace(node) click to toggle source
# File lib/riml/ast_rewriter.rb, line 170
def replace(node)
  if ClassDefinitionNode === node
    @class_dependency_graph.class_defined(
      @filename, class_node_full_name(node),
      class_name_full_name(node.superclass_name)
    )
  else
    @class_dependency_graph.class_encountered(
      @filename,
      class_node_full_name(node.call_node)
    )
  end
end

Private Instance Methods

class_name_full_name(class_name) click to toggle source
# File lib/riml/ast_rewriter.rb, line 193
def class_name_full_name(class_name)
  return nil if class_name.nil?
  if class_name[1, 1] == ':'
    class_name
  else
    ClassDefinitionNode::DEFAULT_SCOPE_MODIFIER + class_name
  end
end
class_node_full_name(node) click to toggle source
# File lib/riml/ast_rewriter.rb, line 186
def class_node_full_name(node)
  (
   node.scope_modifier ||
   ClassDefinitionNode::DEFAULT_SCOPE_MODIFIER
  ) + node.name
end