class Riml::AST_Rewriter::ClassDefinitionToFunctions::InsertInitializeMethod
Public Instance Methods
imported_superclass?()
click to toggle source
# File lib/riml/ast_rewriter.rb, line 653 def imported_superclass? classes.superclass(ast.full_name).imported? end
match?(class_node)
click to toggle source
if doesn’t have an initialize method, put one at the beginning of the class definition
# File lib/riml/ast_rewriter.rb, line 625 def match?(class_node) ClassDefinitionNode === class_node && class_node.constructor.nil? end
max_recursion_lvl()
click to toggle source
# File lib/riml/ast_rewriter.rb, line 657 def max_recursion_lvl 1 end
replace(class_node)
click to toggle source
# File lib/riml/ast_rewriter.rb, line 629 def replace(class_node) if class_node.superclass? && !imported_superclass? def_node = DefNode.new( '!', nil, nil, "initialize", superclass_params, nil, Nodes.new([SuperNode.new([], false)]) ) # has imported superclass and no initialize method. Must create # initialize method taking *splat parameter and call super with it elsif class_node.superclass? def_node = DefNode.new( '!', nil, nil, "initialize", ['...'], nil, Nodes.new([SuperNode.new([SplatNode.new(GetVariableNode.new('a:', '000'))], false)]) ) else def_node = DefNode.new( '!', nil, nil, "initialize", [], nil, Nodes.new([]) ) end class_node.expressions.nodes.unshift(def_node) reestablish_parents(class_node) end
superclass_params()
click to toggle source
# File lib/riml/ast_rewriter.rb, line 649 def superclass_params classes.superclass(ast.full_name).constructor.parameters end