Class: Twb::JoinTree
- Inherits:
-
Object
- Object
- Twb::JoinTree
- Defined in:
- lib/twb/datasource.rb
Instance Attribute Summary collapse
-
#datasource ⇒ Object
readonly
Returns the value of attribute datasource.
-
#maxdepth ⇒ Object
readonly
Returns the value of attribute maxdepth.
-
#root ⇒ Object
readonly
Returns the value of attribute root.
-
#tables ⇒ Object
readonly
Returns the value of attribute tables.
Instance Method Summary collapse
- #add(host, dest) ⇒ Object
- #disp(table) ⇒ Object
-
#initialize(datasource) ⇒ JoinTree
constructor
A new instance of JoinTree.
- #iterate ⇒ Object
- #setDepth(table, depth) ⇒ Object
- #table(tableName) ⇒ Object
- #tableDepth(tableName) ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(datasource) ⇒ JoinTree
Returns a new instance of JoinTree.
568 569 570 571 572 573 |
# File 'lib/twb/datasource.rb', line 568 def initialize datasource @datasource = datasource @root = nil @maxdepth = 0 @tables = {} end |
Instance Attribute Details
#datasource ⇒ Object (readonly)
Returns the value of attribute datasource.
566 567 568 |
# File 'lib/twb/datasource.rb', line 566 def datasource @datasource end |
#maxdepth ⇒ Object (readonly)
Returns the value of attribute maxdepth.
566 567 568 |
# File 'lib/twb/datasource.rb', line 566 def maxdepth @maxdepth end |
#root ⇒ Object (readonly)
Returns the value of attribute root.
566 567 568 |
# File 'lib/twb/datasource.rb', line 566 def root @root end |
#tables ⇒ Object (readonly)
Returns the value of attribute tables.
566 567 568 |
# File 'lib/twb/datasource.rb', line 566 def tables @tables end |
Instance Method Details
#add(host, dest) ⇒ Object
575 576 577 578 579 580 581 582 583 584 585 586 587 |
# File 'lib/twb/datasource.rb', line 575 def add host, dest # puts "\nJT add() host: #{host}" # puts " dest: #{dest}" from = @tables[host.name].nil? ? host : @tables[host.name] to = @tables[dest.name].nil? ? dest : @tables[dest.name] from.addChild(to) @tables[from.name] = from @tables[to.name] = to if @root.nil? || @root.name.eql?(to.name) @root = from end setDepth(@root,1) end |
#disp(table) ⇒ Object
604 605 606 607 |
# File 'lib/twb/datasource.rb', line 604 def disp table # puts "%s %s %s (%d)" % [' ' * table.depth, '-' * table.depth, table.name, table.depth] table.children.each { |n,c| disp c} end |
#iterate ⇒ Object
609 610 611 |
# File 'lib/twb/datasource.rb', line 609 def iterate disp @root end |
#setDepth(table, depth) ⇒ Object
593 594 595 596 597 598 |
# File 'lib/twb/datasource.rb', line 593 def setDepth table, depth # puts "-- setDepth(#{table.class}[#{table.name}] \t, #{depth})" @tables[table.name].depth = depth childrenDepth = depth+1 table.children.each { |n,c| setDepth(c,childrenDepth)} end |
#table(tableName) ⇒ Object
589 590 591 |
# File 'lib/twb/datasource.rb', line 589 def table tableName @tables[tableName] end |
#tableDepth(tableName) ⇒ Object
600 601 602 |
# File 'lib/twb/datasource.rb', line 600 def tableDepth tableName @tables[tableName].nil? ? 0 : @tables[tableName].depth end |
#to_s ⇒ Object
613 614 615 616 617 618 619 |
# File 'lib/twb/datasource.rb', line 613 def to_s str = "root: #{@root}\ntables" @tables.each do |t| str << " tbl:: #{t}" end return str end |