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