Class: Gloo::Verbs::Move

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

Constant Summary collapse

KEYWORD =
'move'.freeze
KEYWORD_SHORT =
'mv'.freeze
TO =
'to'.freeze
MISSING_SRC_ERR =
'Object to move was not specified!'.freeze
MISSING_SRC_OBJ_ERR =
'Could not find object to move: '.freeze
MISSING_DST_ERR =
"'Move' must include 'to' parent object!".freeze
MISSING_DST_OBJ_ERR =
'Could not resolve target: '.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.



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/gloo/verbs/move.rb', line 94

def self.doc_data
  {
    :name => KEYWORD,
    :shortcut => KEYWORD_SHORT,
    :description => 'Move an object to a new parent.',
    :syntax => [ 'move {path.to.object} to {new.parent}' ],
    :parameters => [
      '{path.to.object} — The object that we want to move.',
      '{new.parent} — The new location for the object.'
    ],
    :result => 'The object will now be in the new location.',
    :errors => [
      "#{MISSING_SRC_ERR} The {path.to.object} is not specified.",
      "#{MISSING_SRC_OBJ_ERR}{path.to.object} — The {path.to.object} cannot be resolved.",
      "#{MISSING_DST_ERR} The {new.parent} is not specified.",
      "#{MISSING_DST_OBJ_ERR}{new.parent} — The {new.parent} cannot be resolved."
    ],
    :examples => <<~EXAMPLES.strip
      can [can] :
        two [string] : def
        data [can] :
          one [string] : abc
        on_load [script] :
          move can.two to can.data
    EXAMPLES
  }
end

.keywordObject

Get the Verb's keyword.



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

def self.keyword
  return KEYWORD
end

.keyword_shortcutObject

Get the Verb's keyword shortcut.



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

def self.keyword_shortcut
  return KEYWORD_SHORT
end

Instance Method Details

#runObject

Run the verb.



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

def run
  dst = lookup_dst
  return if dst.nil?

  o = lookup_obj
  return unless o

  o.parent.remove_child o
  dst.add_child o
end