Class: Rubyzen::Declarations::RaiseDeclaration

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

Overview

Represents a raise statement.

Examples:

raise_decl = method.raises.first
raise_decl.exception_types #=> ["ArgumentError"]
raise_decl.message         #=> "invalid input"
raise_decl.with_string?    #=> false

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Providers::SourceCodeProvider

#source_code

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) ⇒ RaiseDeclaration

Returns a new instance of RaiseDeclaration.

Parameters:



25
26
27
28
# File 'lib/rubyzen/declarations/raise_declaration.rb', line 25

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

Instance Attribute Details

#nodeRuboCop::AST::Node (readonly)

Returns:

  • (RuboCop::AST::Node)


18
19
20
# File 'lib/rubyzen/declarations/raise_declaration.rb', line 18

def node
  @node
end

#parentMethodDeclaration, BlockDeclaration (readonly)



21
22
23
# File 'lib/rubyzen/declarations/raise_declaration.rb', line 21

def parent
  @parent
end

Instance Method Details

#exception_typesArray<String>

Returns the exception class names being raised. Defaults to [“RuntimeError”] for bare raise or raise “message”.

Returns:

  • (Array<String>)


34
35
36
# File 'lib/rubyzen/declarations/raise_declaration.rb', line 34

def exception_types
  extract_exception_types
end

#messageString?

Returns the error message string, if any.

Returns:

  • (String, nil)


49
50
51
# File 'lib/rubyzen/declarations/raise_declaration.rb', line 49

def message
  extract_message
end

#with_string?Boolean

Returns whether the raise uses a bare string (+raise “message”+).

Returns:

  • (Boolean)


41
42
43
44
# File 'lib/rubyzen/declarations/raise_declaration.rb', line 41

def with_string?
  first_arg = node.arguments.first
  first_arg&.type == :str
end