Module: Solargraph::NodeMethods
Instance Method Summary collapse
Instance Method Details
#infer(node) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/solargraph/node_methods.rb', line 23 def infer node if node.type == :str return 'String' elsif node.type == :array return 'Array' elsif node.type == :hash return 'Hash' elsif node.type == :int return 'Integer' elsif node.type == :float return 'Float' elsif node.type == :send if node.children[0].nil? # TODO Another local variable or method or something? sheesh else ns = unpack_name(node.children[0]) if node.children[1] == :new return ns end end elsif node.type == :cbase or node.type == :const unpack_name node end end |
#pack_name(node) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/solargraph/node_methods.rb', line 7 def pack_name(node) parts = [] node.children.each { |n| if n.kind_of?(AST::Node) if n.type == :cbase parts = pack_name(n) else parts += pack_name(n) end else parts.push n unless n.nil? end } parts end |
#unpack_name(node) ⇒ Object
3 4 5 |
# File 'lib/solargraph/node_methods.rb', line 3 def unpack_name(node) pack_name(node).join("::") end |