Class: VMFolder
- Inherits:
-
Object
- Object
- VMFolder
- Defined in:
- lib/VMFolder.rb
Instance Attribute Summary collapse
-
#collapsed ⇒ Object
readonly
Returns the value of attribute collapsed.
Instance Method Summary collapse
- #add_child(child) ⇒ Object
- #cached_state ⇒ Object
- #color(cached = nil) ⇒ Object
- #draw {|[@name, self]| ... } ⇒ Object
- #execute_task(task, *args) ⇒ Object
- #fold ⇒ Object
- #fold_children ⇒ Object
- #has_task?(task) ⇒ Boolean
-
#initialize(ref, session, name, collapsed = false) ⇒ VMFolder
constructor
A new instance of VMFolder.
- #name ⇒ Object
- #save_data ⇒ Object
- #state ⇒ Object
- #toggle_fold ⇒ Object
- #unfold ⇒ Object
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
#collapsed ⇒ Object (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_state ⇒ Object
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
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 |
#fold ⇒ Object
36 37 38 |
# File 'lib/VMFolder.rb', line 36 def fold @collapsed = true end |
#fold_children ⇒ Object
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
23 24 25 |
# File 'lib/VMFolder.rb', line 23 def has_task? task ['fold', 'unfold','toggle_fold','fold_children'].include? task.to_s end |
#name ⇒ Object
12 13 14 |
# File 'lib/VMFolder.rb', line 12 def name @name.strip end |
#save_data ⇒ Object
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 |
#state ⇒ Object
26 27 28 |
# File 'lib/VMFolder.rb', line 26 def state Hash[ :state => [], :hw => [] ] end |
#toggle_fold ⇒ Object
42 43 44 |
# File 'lib/VMFolder.rb', line 42 def toggle_fold @collapsed = !@collapsed end |
#unfold ⇒ Object
39 40 41 |
# File 'lib/VMFolder.rb', line 39 def unfold @collapsed = false end |