class Riml::AST_Rewriter::ClassDefinitionToFunctions::SelfToObjArgumentInPrivateFunction

Public Class Methods

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

Public Instance Methods

match?(node) click to toggle source
# File lib/riml/ast_rewriter.rb, line 453
def match?(node)
  return unless GetVariableNode === node && node.scope_modifier == nil && node.name == 'self'
  return if node.parent.is_a?(DictGetDotNode) && node.parent.parent.is_a?(CallNode) &&
    (@class_node.private_function_names & node.parent.keys).size == 1
  # make sure we're not nested in a different function
  n = node
  until n.instance_of?(DefNode)
    n = n.parent
  end
  n == ast
end
replace(node) click to toggle source
# File lib/riml/ast_rewriter.rb, line 465
def replace(node)
  node.name = @class_node.constructor_obj_name
  node.scope_modifier = 'a:'
end