Class: Gloo::Verbs::Run

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

Constant Summary collapse

KEYWORD =
'run'.freeze
KEYWORD_SHORT =
'r'.freeze
EVALUATE_RUN =
'~>'.freeze
MISSING_EXPR_ERR =
'Missing Expression!'.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.



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
# File 'lib/gloo/verbs/run.rb', line 80

def self.doc_data
  {
    :name => KEYWORD,
    :shortcut => KEYWORD_SHORT,
    :description => 'Run a script or other object. This is the ' \
      'same as sending a run message to the object.',
    :syntax => [
      'run {path.to.object}',
      'run ~> {expression}'
    ],
    :parameters => [
      '{path.to.object} — Reference to the object which will be ' \
        'run. The object must be a runnable object such as a script.',
      '{expression} — Evaluate the expression and run it.'
    ],
    :result => 'The result depends on the object that is run.',
    :errors => [
      "#{MISSING_EXPR_ERR} — No expression is provided as parameter to the verb."
    ],
    :examples => <<~EXAMPLES.strip
      > run my.script

      > create s as script : "show 3 + 4"
      > run s

      # Run a script in an evaluated expression:
      > create s as string : "show 3 + 4"
      > run ~> s
    EXAMPLES
  }
end

.keywordObject

Get the Verb's keyword.



36
37
38
# File 'lib/gloo/verbs/run.rb', line 36

def self.keyword
  return KEYWORD
end

.keyword_shortcutObject

Get the Verb's keyword shortcut.



43
44
45
# File 'lib/gloo/verbs/run.rb', line 43

def self.keyword_shortcut
  return KEYWORD_SHORT
end

Instance Method Details

#runObject

Run the verb.



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/gloo/verbs/run.rb', line 20

def run
  if @tokens.token_count < 2
    @engine.err MISSING_EXPR_ERR
    return
  end

  if @tokens.second == EVALUATE_RUN
    run_expression
  else
    run_script
  end
end