Class: Gloo::Verbs::Check
- Inherits:
-
Core::Verb
- Object
- Core::Baseo
- Core::Verb
- Gloo::Verbs::Check
- Defined in:
- lib/gloo/verbs/check.rb
Constant Summary collapse
- KEYWORD =
'check'.freeze
- KEYWORD_SHORT =
'<-'.freeze
- FOR =
'for'.freeze
- UNKNOWN_MSG_ERR =
'Missing message!'.freeze
Constants inherited from Core::Baseo
Core::Baseo::NOT_IMPLEMENTED_ERR
Instance Attribute Summary
Attributes inherited from Core::Verb
Attributes inherited from Core::Baseo
Class Method Summary collapse
-
.doc_data ⇒ Object
Get the verb's documentation data.
-
.keyword ⇒ Object
Get the Verb's keyword.
-
.keyword_shortcut ⇒ Object
Get the Verb's keyword shortcut.
Instance Method Summary collapse
-
#run ⇒ Object
Run the verb.
Methods inherited from Core::Verb
#display_value, help, inherited, #initialize, #type_display
Methods inherited from Core::Baseo
Constructor Details
This class inherits a constructor from Gloo::Core::Verb
Class Method Details
.doc_data ⇒ Object
Get the verb's documentation data.
59 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 109 110 111 |
# File 'lib/gloo/verbs/check.rb', line 59 def self.doc_data { :name => KEYWORD, :shortcut => KEYWORD_SHORT, :description => 'Send a message to an object to investigate ' \ 'its state — typically a yes/no question such as blank?, ' \ 'contains? or starts_with?. Mechanically identical to the ' \ 'tell verb; by convention check is used to investigate ' \ 'state while tell is used to trigger an action. Using the ' \ 'verb that matches intent makes the code read like ' \ 'natural communication.', :syntax => [ 'check {path.to.object} for {condition_message}' ], :parameters => [ '{path.to.object} — The object that we want to send a condition_message to.', '{message} — The condition_message to send.' ], :result => 'The result depends on the message that is sent, but ' \ 'by convention the result of the check will be in it.', :errors => [ "#{UNKNOWN_MSG_ERR} — No message was specified, or the 'for' keyword is missing.", 'Object was not found — The target of the message was not found.' ], :examples => <<~EXAMPLES.strip, :notes => <<~NOTES.strip check and tell send the same message the same way — the two spellings exist for readability. Use check for state questions (blank?, contains?, responds_to?, starts_with?) and tell for action messages (up, inc, run, unload). The answer to a check lands in it, so it pairs naturally with if / unless: 'check my.str for blank?' then 'if it then ...'. NOTES } end |
.keyword ⇒ Object
Get the Verb's keyword.
35 36 37 |
# File 'lib/gloo/verbs/check.rb', line 35 def self.keyword return KEYWORD end |
.keyword_shortcut ⇒ Object
Get the Verb's keyword shortcut.
42 43 44 |
# File 'lib/gloo/verbs/check.rb', line 42 def self.keyword_shortcut return KEYWORD_SHORT end |
Instance Method Details
#run ⇒ Object
Run the verb.
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/gloo/verbs/check.rb', line 20 def run msg = @tokens.after_token( FOR ) unless msg @engine.err( UNKNOWN_MSG_ERR ) return end Gloo::Exec::Dispatch.( @engine, msg, @tokens.second, @params ) end |