Class: Yast::SnapperClass::Tree

Inherits:
Object
  • Object
show all
Defined in:
../../src/modules/Snapper.rb

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (Tree) initialize(name, parent)

Returns a new instance of Tree



525
526
527
528
529
530
# File '../../src/modules/Snapper.rb', line 525

def initialize(name, parent)
  @name = name
  @status = 0
  @parent = parent
  @children = []
end

Instance Attribute Details

- (Object) children (readonly)

Returns the value of attribute children



523
524
525
# File '../../src/modules/Snapper.rb', line 523

def children
  @children
end

- (Object) name

Returns the value of attribute name



522
523
524
# File '../../src/modules/Snapper.rb', line 522

def name
  @name
end

- (Object) status

Returns the value of attribute status



522
523
524
# File '../../src/modules/Snapper.rb', line 522

def status
  @status
end

Instance Method Details

- (Object) add(fullname, status)



569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
# File '../../src/modules/Snapper.rb', line 569

def add(fullname, status)

  a, b = fullname.split("/", 2)
  return add(b, status) if fullname.start_with? "/" #leading /

  i = @children.index{ |x| x.name == a }

  if i
    if b
      @children[i].add(b, status)
    else
      @children[i].status = status
    end
  else
    subtree = Tree.new(a, self)
    if b
      subtree.add(b, status)
    else
      subtree.status = status
    end
    @children << subtree
  end

end

- (Boolean) created?

Returns:

  • (Boolean)


547
548
549
# File '../../src/modules/Snapper.rb', line 547

def created?()
  return @status & 0x01 != 0
end

- (Boolean) deleted?

Returns:

  • (Boolean)


551
552
553
# File '../../src/modules/Snapper.rb', line 551

def deleted?()
  return @status & 0x02 != 0
end

- (Object) each



532
533
534
535
536
537
538
539
540
541
# File '../../src/modules/Snapper.rb', line 532

def each()
  if @parent != nil
    yield self
  end
  @children.each do |subtree|
    subtree.each do |e|
      yield e
    end
  end
end

- (Object) find(fullname)



595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
# File '../../src/modules/Snapper.rb', line 595

def find(fullname)

  a, b = fullname.split("/", 2)
  return find(b) if fullname.start_with? "/" #leading /

  i = @children.index{ |x| x.name == a }

  if !i
    return nil
  end

  if !b
    return @children[i]
  else
    return @children[i].find(b)
  end

end

- (Object) fullname



543
544
545
# File '../../src/modules/Snapper.rb', line 543

def fullname()
  return @parent ? @parent.fullname() + "/" + @name : @name
end

- (Object) icon



556
557
558
559
560
561
562
563
564
565
566
# File '../../src/modules/Snapper.rb', line 556

def icon()
  if @status == 0
    return "yast-gray-dot.png"
  elsif created?
    return "yast-green-dot.png"
  elsif deleted?
    return "yast-red-dot.png"
  else
    return "yast-yellow-dot.png"
  end
end