Class: Gloo::Verbs::Put

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

Constant Summary collapse

KEYWORD =
'put'.freeze
KEYWORD_SHORT =
'p'.freeze
INTO =
'into'.freeze
MISSING_EXPR_ERR =
'Missing Expression!'.freeze
INTO_MISSING_ERR =
'Target (into) missing!'.freeze
TARGET_ERR =
'Target could not be resolved: '.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.



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# File 'lib/gloo/verbs/put.rb', line 99

def self.doc_data
  {
    :name => KEYWORD,
    :shortcut => KEYWORD_SHORT,
    :description => 'Put a value into an object. ' \
      'The value is the result of an expression.',
    :syntax => [ 'put {expression} into {dst.path}' ],
    :parameters => [
      '{expression} — The expression that is evaluated.',
      '{dst.path} — The path to the destination object.'
    ],
    :result => 'The destination object has the result of the ' \
      'evaluated expression. It will also be set into it.',
    :errors => [
      "#{MISSING_EXPR_ERR} — The into keyword is missing, or no source expression is provided.",
      "#{INTO_MISSING_ERR} — The destination is not specified.",
      "#{TARGET_ERR}{dst.path} — The destination of the put cannot be resolved."
    ],
    :examples => <<~EXAMPLES.strip
      > put 'one' into str
      > put "two" into str
      > put 123 into x
      > put 3 + 5 into x
      > put TRUE into flag
    EXAMPLES
  }
end

.keywordObject

Get the Verb's keyword.



34
35
36
# File 'lib/gloo/verbs/put.rb', line 34

def self.keyword
  return KEYWORD
end

.keyword_shortcutObject

Get the Verb's keyword shortcut.



41
42
43
# File 'lib/gloo/verbs/put.rb', line 41

def self.keyword_shortcut
  return KEYWORD_SHORT
end

Instance Method Details

#runObject

Run the verb.



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

def run
  value = fetch_value_tokens
  return if value.nil?

  target = lookup_target
  return if target.nil?

  update_target target, value
end