Class: VMFolder

Inherits:
Object
  • Object
show all
Defined in:
lib/VMFolder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ref, session, name, collapsed = false) ⇒ VMFolder

Returns a new instance of VMFolder.



5
6
7
8
9
10
11
# File 'lib/VMFolder.rb', line 5

def initialize ref, session, name, collapsed = false
  @ref = ref
  @session = session
  @name = name
  @children = []
  @collapsed = collapsed
end

Instance Attribute Details

#collapsedObject (readonly)

Returns the value of attribute collapsed.



4
5
6
# File 'lib/VMFolder.rb', line 4

def collapsed
  @collapsed
end

Instance Method Details

#add_child(child) ⇒ Object



20
21
22
# File 'lib/VMFolder.rb', line 20

def add_child child
  @children.push child
end

#cached_stateObject



29
30
31
# File 'lib/VMFolder.rb', line 29

def cached_state
  state
end

#color(cached = nil) ⇒ Object



54
55
56
# File 'lib/VMFolder.rb', line 54

def color cached=nil
  @collapsed ? 'grey' : 'white'
end

#draw {|[@name, self]| ... } ⇒ Object

Yields:



48
49
50
51
52
53
# File 'lib/VMFolder.rb', line 48

def draw
  yield [@name, self]
  unless @collapsed
  @children.each { |c| c.draw { |i| yield i } }
  end
end

#execute_task(task, *args) ⇒ Object



32
33
34
35
# File 'lib/VMFolder.rb', line 32

def execute_task task, *args
  self.send task.to_sym, *args if has_task? task
  true
end

#foldObject



36
37
38
# File 'lib/VMFolder.rb', line 36

def fold
  @collapsed = true
end

#fold_childrenObject



45
46
47
# File 'lib/VMFolder.rb', line 45

def fold_children
  @children.each { |c| c.fold if c.respond_to? :fold }
end

#has_task?(task) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/VMFolder.rb', line 23

def has_task? task
  ['fold', 'unfold','toggle_fold','fold_children'].include? task.to_s
end

#nameObject



12
13
14
# File 'lib/VMFolder.rb', line 12

def name
  @name.strip
end

#save_dataObject



15
16
17
18
19
# File 'lib/VMFolder.rb', line 15

def save_data
  result = { :collapsed => @collapsed }
  @children.each { |c| result[c.name] = c.save_data if c.respond_to? :save_data }
  result
end

#stateObject



26
27
28
# File 'lib/VMFolder.rb', line 26

def state
  Hash[ :state => [], :hw => [] ]
end

#toggle_foldObject



42
43
44
# File 'lib/VMFolder.rb', line 42

def toggle_fold
  @collapsed = !@collapsed
end

#unfoldObject



39
40
41
# File 'lib/VMFolder.rb', line 39

def unfold
  @collapsed = false
end