Sha256: a275c2100e12e617d06823a9fd5b46cc93a51af8333562812002e4f80aa94965

Contents?: true

Size: 1.45 KB

Versions: 12

Compression:

Stored size: 1.45 KB

Contents

module Yoda
  module Parsing
    module Scopes
      # Wrapper class for singleton method node.
      # @see https://github.com/whitequark/parser/blob/2.2/doc/AST_FORMAT.md#singleton-methods
      # ```
      # (defs (self) :foo (args) nil)
      # "def self.foo; end"
      #  ~~~ keyword
      #           ~~~ name
      #                ~~~ end
      #  ~~~~~~~~~~~~~~~~~ expression
      # ```
      class SingletonMethodDefinition < Base
        # @return [Symbol]
        def name
          node.children[1]
        end

        # @return [Parser::AST::Node]
        def arg_node
          node.children[2]
        end

        # @return [Parser::AST::Node]
        def body_node
          node.children[3]
        end

        # @return [Array<Parser::AST::Node>]
        def body_nodes
          [body_node]
        end

        def body_node
          node.children[3]
        end

        # @return [String]
        def full_name
          "#{namespace.full_name}##{name}"
        end

        # @return [String]
        def namespace_name
          namespace.full_name
        end

        def kind
          :meta_method
        end

        def method?
          true
        end

        # @return [String]
        def scope_name
          parent.scope_name
        end

        # @param current_location [Location]
        # @return [Namespace, nil]
        def find_evaluation_root_scope(current_location)
          return nil
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
yoda-language-server-0.10.1 lib/yoda/parsing/scopes/meta_method_definition.rb
yoda-language-server-0.10.0 lib/yoda/parsing/scopes/meta_method_definition.rb
yoda-language-server-0.9.0 lib/yoda/parsing/scopes/meta_method_definition.rb
yoda-language-server-0.8.0 lib/yoda/parsing/scopes/meta_method_definition.rb
yoda-language-server-0.7.2 lib/yoda/parsing/scopes/meta_method_definition.rb
yoda-language-server-0.7.1 lib/yoda/parsing/scopes/meta_method_definition.rb
yoda-language-server-0.7.0 lib/yoda/parsing/scopes/meta_method_definition.rb
yoda-language-server-0.6.2 lib/yoda/parsing/scopes/meta_method_definition.rb
yoda-language-server-0.6.1 lib/yoda/parsing/scopes/meta_method_definition.rb
yoda-language-server-0.6.0 lib/yoda/parsing/scopes/meta_method_definition.rb
yoda-language-server-0.5.0 lib/yoda/parsing/scopes/meta_method_definition.rb
yoda-language-server-0.4.0 lib/yoda/parsing/scopes/meta_method_definition.rb