Class: Gloo::Verbs::Show

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

Constant Summary collapse

KEYWORD =
'show'.freeze
KEYWORD_SHORT =
'print'.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.



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
112
113
# File 'lib/gloo/verbs/show.rb', line 68

def self.doc_data
  {
    :name => KEYWORD,
    :shortcut => KEYWORD_SHORT,
    :description => "Show an object's value, a literal or the " \
      'result of an evaluation.',
    :syntax => [
      'show {target}',
      'show {target} ({color})'
    ],
    :parameters => [
      '{target} — The object that we want to see. The target ' \
        'might be the path to an object, a literal or an ' \
        'expression to be evaluated before being shown.',
      '{color} — Optional color for the text.'
    ],
    :result => "The object's value is shown, or the literal, or " \
      'the result of the evaluated expression is shown. It will ' \
      "contain the object's value.",
    :examples => <<~EXAMPLES.strip,
    :notes => <<~NOTES.strip
      Example with Color:

      #
      # Show multiple messages in color
      #

      colors [can] :
        var [string] : red
        on_load [script] :
          show "red" (colors.var)
          show "blue" (blue)
          show "green" (green)
          show "white" (white)
          show "black" (black)
          show "yellow" (yellow)
    NOTES
  }
end

.keywordObject

Get the Verb's keyword.



31
32
33
# File 'lib/gloo/verbs/show.rb', line 31

def self.keyword
  return KEYWORD
end

.keyword_shortcutObject

Get the Verb's keyword shortcut.



38
39
40
# File 'lib/gloo/verbs/show.rb', line 38

def self.keyword_shortcut
  return KEYWORD_SHORT
end

Instance Method Details

#runObject

Run the verb.



17
18
19
20
21
22
23
24
25
26
# File 'lib/gloo/verbs/show.rb', line 17

def run
  if @tokens.token_count > 1
    expr = Gloo::Expr::Expression.new( @engine, @tokens.params )
    result = expr.evaluate
    @engine.log.show get_formatted_string( result )
    @engine.heap.it.set_to result
  else
    @engine.log.show ''
  end
end