Class: Gloo::Verbs::Redirect
- Inherits:
-
Core::Verb
- Object
- Core::Baseo
- Core::Verb
- Gloo::Verbs::Redirect
- Defined in:
- lib/gloo/verbs/redirect.rb
Constant Summary collapse
- KEYWORD =
'redirect'.freeze
- KEYWORD_SHORT =
'go'.freeze
- RUN_MESSAGE =
'run'.freeze
- KEYWORD_HARD =
'hard'.freeze
- MISSING_EXPR_ERR =
'Missing Expression!'.freeze
- APP_NOT_RUNING_ERR =
'The application is not running!'.freeze
- BAD_TARGET_ERR =
'Bad redirect target!'.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.
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 |
# File 'lib/gloo/verbs/redirect.rb', line 142 def self.doc_data { :name => KEYWORD, :shortcut => KEYWORD_SHORT, :description => 'Redirect from the current script (or page). ' \ 'There are 3 ways to use this verb: redirect in a script; ' \ 'redirect from one page to another, where the parameter is ' \ 'a path to a page; or redirect (hard) to an external web ' \ 'site, where the parameter is the URL.', :syntax => [ 'redirect {path.to.object}', 'redirect https://example.com/ (hard)' ], :parameters => [ '{path.to.object} — Reference to the script to run, or ' \ 'reference to the page to redirect to. In the case of a ' \ 'redirect (hard) this is the target website we will redirect to.' ], :result => 'No more commands are executed in the currently ' \ 'running script. Execution transfers to the target script. ' \ 'If the target is a page, the current page is replaced with ' \ 'the target page.', :errors => [ "#{MISSING_EXPR_ERR} — Redirect requires the target page or script to redirect to.", "#{BAD_TARGET_ERR} — The target object does not exist or cannot receive the redirect.", "#{APP_NOT_RUNING_ERR} — Page cannot redirect because the application is not running." ], :examples => <<~EXAMPLES.strip # Redirect to a different script: redirect [can] : x [bool] : false first_time [script] : show 'It is true (first time)' second_time [script] : show 'It is true (second time)' on_load [script] : if ^.x then go ^.first_time show 'skipping first time' put true into ^.x if ^.x then go ^.second_time show 'skipping second time' EXAMPLES } end |
.keyword ⇒ Object
Get the Verb's keyword.
42 43 44 |
# File 'lib/gloo/verbs/redirect.rb', line 42 def self.keyword return KEYWORD end |
.keyword_shortcut ⇒ Object
Get the Verb's keyword shortcut.
49 50 51 |
# File 'lib/gloo/verbs/redirect.rb', line 49 def self.keyword_shortcut return KEYWORD_SHORT end |
Instance Method Details
#run ⇒ Object
Run the verb.
25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/gloo/verbs/redirect.rb', line 25 def run if @tokens.token_count < 2 @engine.err MISSING_EXPR_ERR return end if is_hard_redirect? redirect_hard else determine_target redirect_to_target end end |