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