Class: Yoda::Parsing::Scopes::SingletonMethodDefinition

Inherits:
Base
  • Object
show all
Defined in:
lib/yoda/parsing/scopes/meta_method_definition.rb

Overview

Wrapper class for singleton method node. “‘ (defs (self) :foo (args) nil) “def self.foo; end”

~~~ keyword
         ~~~ name
              ~~~ end
~~~~~~~~~~~~~~~~~ expression

“‘

Instance Attribute Summary

Attributes inherited from Base

#child_scopes, #method_definitions, #node, #parent

Instance Method Summary collapse

Methods inherited from Base

#ancestor_scopes, #initialize, #inner_location?

Constructor Details

This class inherits a constructor from Yoda::Parsing::Scopes::Base

Instance Method Details

#arg_nodeParser::AST::Node

Returns:

  • (Parser::AST::Node)


21
22
23
# File 'lib/yoda/parsing/scopes/meta_method_definition.rb', line 21

def arg_node
  node.children[2]
end

#body_nodeParser::AST::Node

Returns:

  • (Parser::AST::Node)


26
27
28
# File 'lib/yoda/parsing/scopes/meta_method_definition.rb', line 26

def body_node
  node.children[3]
end

#body_nodesArray<Parser::AST::Node>

Returns:

  • (Array<Parser::AST::Node>)


31
32
33
# File 'lib/yoda/parsing/scopes/meta_method_definition.rb', line 31

def body_nodes
  [body_node]
end

#find_evaluation_root_scope(current_location) ⇒ Namespace?

Parameters:

Returns:

  • (Namespace, nil)


64
65
66
# File 'lib/yoda/parsing/scopes/meta_method_definition.rb', line 64

def find_evaluation_root_scope(current_location)
  return nil
end

#full_nameString

Returns:

  • (String)


40
41
42
# File 'lib/yoda/parsing/scopes/meta_method_definition.rb', line 40

def full_name
  "#{namespace.full_name}##{name}"
end

#kindObject



49
50
51
# File 'lib/yoda/parsing/scopes/meta_method_definition.rb', line 49

def kind
  :meta_method
end

#method?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/yoda/parsing/scopes/meta_method_definition.rb', line 53

def method?
  true
end

#nameSymbol

Returns:

  • (Symbol)


16
17
18
# File 'lib/yoda/parsing/scopes/meta_method_definition.rb', line 16

def name
  node.children[1]
end

#namespace_nameString

Returns:

  • (String)


45
46
47
# File 'lib/yoda/parsing/scopes/meta_method_definition.rb', line 45

def namespace_name
  namespace.full_name
end

#scope_nameString

Returns:

  • (String)


58
59
60
# File 'lib/yoda/parsing/scopes/meta_method_definition.rb', line 58

def scope_name
  parent.scope_name
end