Class: Solargraph::Convention::DataDefinition::DataAssignmentNode

Inherits:
DataDefintionNode
  • Object
show all
Defined in:
lib/solargraph/convention/data_definition/data_assignment_node.rb

Overview

A node wrapper for a Data definition via const assignment.

Examples:

MyData = Data.new(:bar, :baz) do
  def foo
  end
end

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from DataDefintionNode

#attributes, #body_node, #initialize

Constructor Details

This class inherits a constructor from Solargraph::Convention::DataDefinition::DataDefintionNode

Class Method Details

.match?(node) ⇒ Boolean

s(:casgn, nil, :Foo,

s(:block,
  s(:send,
    s(:const, nil, :Data), :define,
    s(:sym, :bar),
    s(:sym, :baz)),
  s(:args),
  s(:def, :foo,
    s(:args),
    s(:send, nil, :bar))))


26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/solargraph/convention/data_definition/data_assignment_node.rb', line 26

def match?(node)
  return false unless node&.type == :casgn
  return false if node.children[2].nil?

  data_node = if node.children[2].type == :block
                node.children[2].children[0]
              else
                node.children[2]
              end

  data_definition_node?(data_node)
end

Instance Method Details

#class_nameObject



40
41
42
43
44
45
46
# File 'lib/solargraph/convention/data_definition/data_assignment_node.rb', line 40

def class_name
  if node.children[0]
    Parser::NodeMethods.unpack_name(node.children[0]) + "::#{node.children[1]}"
  else
    node.children[1].to_s
  end
end