Class: Gloo::Verbs::Throw

Inherits:
Core::Verb show all
Defined in:
lib/gloo/verbs/throw.rb

Constant Summary collapse

KEYWORD =
'throw'.freeze
KEYWORD_SHORT =
'throw'.freeze
DEFAULT_MSG =
'Thrown by throw verb'.freeze

Constants inherited from Core::Baseo

Core::Baseo::NOT_IMPLEMENTED_ERR

Instance Attribute Summary

Attributes inherited from Core::Verb

#params, #tokens

Attributes inherited from Core::Baseo

#name

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Core::Verb

#display_value, help, inherited, #initialize, #type_display

Methods inherited from Core::Baseo

#initialize, #type_display

Constructor Details

This class inherits a constructor from Gloo::Core::Verb

Class Method Details

.doc_dataObject

Get the verb's documentation data.



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/gloo/verbs/throw.rb', line 60

def self.doc_data
  {
    :name => KEYWORD,
    :shortcut => KEYWORD_SHORT,
    :description => 'Deliberately raise a Ruby exception, to ' \
      'exercise the on_exception handling pipeline (e.g. for ' \
      'testing). Execution continues normally after the throw — ' \
      'it is not a fatal halt.',
    :syntax => [ 'throw {optional message}' ],
    :parameters => [
      "{message} — Optional. An expression evaluated and used as the thrown message. If not provided, a default message (\"#{DEFAULT_MSG}\") is used."
    ],
    :result => "Fires the app's on_exception handler, if one is " \
      'defined, with exception_data.message set to the thrown ' \
      'message. Does not fire on_error.',
    :examples => <<~EXAMPLES.strip,
    :notes => <<~NOTES.strip
      on_error and on_exception are independent channels: a checked
      gloo error (bad path, missing object) fires on_error only; a
      Ruby exception (from throw, or a real bug caught by gloo's
      safety net) fires on_exception only. Neither triggers the
      other, and in both cases the failing line is abandoned and
      execution continues with the next line.

      gloo logs every caught exception, so a throw during a script
      run also prints the message and a truncated backtrace to the
      console — that is the logging working, not a crash.

      See gloo_sample_code/lang/exceptions.gloo for a runnable
      walk-through.
    NOTES
  }
end

.keywordObject

Get the Verb's keyword.



26
27
28
# File 'lib/gloo/verbs/throw.rb', line 26

def self.keyword
  return KEYWORD
end

.keyword_shortcutObject

Get the Verb's keyword shortcut.



33
34
35
# File 'lib/gloo/verbs/throw.rb', line 33

def self.keyword_shortcut
  return KEYWORD_SHORT
end

Instance Method Details

#runObject

Run the verb.



19
20
21
# File 'lib/gloo/verbs/throw.rb', line 19

def run
  raise message
end