Class: Rubyzen::Declarations::IfStatementDeclaration

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

Overview

Represents an if / unless statement within a method or class.

Examples:

if_stmt = method.if_statements.first
if_stmt.condition_source #=> "user.active?"
if_stmt.source_code      #=> "if user.active?\n  ..."

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Providers::SourceCodeProvider

#source_code

Methods included from Providers::LineNumberProvider

#line

Methods included from Providers::ClassNameProvider

#class_name

Methods included from Providers::FilePathProvider

#file_path

Constructor Details

#initialize(node, parent) ⇒ IfStatementDeclaration

Returns a new instance of IfStatementDeclaration.

Parameters:



24
25
26
27
# File 'lib/rubyzen/declarations/if_statement_declaration.rb', line 24

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

Instance Attribute Details

#nodeRuboCop::AST::Node (readonly)

Returns:

  • (RuboCop::AST::Node)


17
18
19
# File 'lib/rubyzen/declarations/if_statement_declaration.rb', line 17

def node
  @node
end

#parentMethodDeclaration, ClassDeclaration (readonly)



20
21
22
# File 'lib/rubyzen/declarations/if_statement_declaration.rb', line 20

def parent
  @parent
end

Instance Method Details

#condition_sourceString?

Returns the raw source of the condition expression.

Returns:

  • (String, nil)


32
33
34
# File 'lib/rubyzen/declarations/if_statement_declaration.rb', line 32

def condition_source
  node.condition&.source
end

#nameString

Returns the name of the parent declaration.

Returns:

  • (String)


39
40
41
# File 'lib/rubyzen/declarations/if_statement_declaration.rb', line 39

def name
  parent.name
end