class Riml::AST_Rewriter::ClassDefinitionToFunctions::DefNodeToPrivateFunction
Public Instance Methods
match?(node)
click to toggle source
# File lib/riml/ast_rewriter.rb, line 472 def match?(node) return unless node.instance_of?(DefNode) && node.name != 'initialize' node.private_function = true end
max_recursion_lvl()
click to toggle source
# File lib/riml/ast_rewriter.rb, line 492 def max_recursion_lvl 1 end
replace(node)
click to toggle source
# File lib/riml/ast_rewriter.rb, line 477 def replace(node) class_node = ast.parent class_name = class_node.name node.scope_modifier = 's:' node.original_name = node.name node.name = "#{class_name}_#{node.name}" node.sid = nil node.keywords -= ['dict'] node.parameters.unshift(class_node.constructor_obj_name) # rewrite `self` in function body to a:#{class_name}Obj self_to_obj_argument = SelfToObjArgumentInPrivateFunction.new(node, classes, class_node) self_to_obj_argument.rewrite_on_match reestablish_parents(node) end