Class: Rubyzen::Declarations::ParameterDeclaration

Inherits:
Object
  • Object
show all
Includes:
Providers::ClassNameProvider, Providers::FilePathProvider, Providers::LineNumberProvider
Defined in:
lib/rubyzen/declarations/parameter_declaration.rb

Overview

Represents a method parameter.

Examples:

param = method.parameters.first
param.name           #=> :user_id
param.default_value  #=> 42

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Providers::ClassNameProvider

#class_name

Methods included from Providers::LineNumberProvider

#line

Methods included from Providers::FilePathProvider

#file_path

Constructor Details

#initialize(node, parent) ⇒ ParameterDeclaration

Returns a new instance of ParameterDeclaration.

Parameters:

  • node (RuboCop::AST::Node)

    the AST node

  • parent (MethodDeclaration)

    the parent declaration



23
24
25
26
# File 'lib/rubyzen/declarations/parameter_declaration.rb', line 23

def initialize(node, parent)
  @node = node
  @parent = parent
end

Instance Attribute Details

#nodeRuboCop::AST::Node (readonly)

Returns:

  • (RuboCop::AST::Node)


16
17
18
# File 'lib/rubyzen/declarations/parameter_declaration.rb', line 16

def node
  @node
end

#parentMethodDeclaration (readonly)

Returns:



19
20
21
# File 'lib/rubyzen/declarations/parameter_declaration.rb', line 19

def parent
  @parent
end

Instance Method Details

#default_valueObject?

Returns the default value if one is defined.

Returns:

  • (Object, nil)


38
39
40
# File 'lib/rubyzen/declarations/parameter_declaration.rb', line 38

def default_value
  node.children[1]&.value
end

#nameSymbol

Returns the parameter name.

Returns:

  • (Symbol)


31
32
33
# File 'lib/rubyzen/declarations/parameter_declaration.rb', line 31

def name
  node.name
end