class Twb::Util::TwbDashSheetDataDotBuilder
Attributes
dashCount[R]
dataSourceCount[R]
dotFile[R]
dotFileName[R]
sheetCount[R]
workbook[R]
Public Class Methods
new(twb)
click to toggle source
# File lib/twb/util/twbDashSheetDataDotBuilder.rb, line 46 def initialize twb @workbook = if twb.instance_of?(Twb::Workbook) then twb else Twb::Workbook.new(twb) end @dashCount = @workbook.dashboards.length @worksheets = @workbook.worksheetNames @sheetCount = @worksheets.length @datasources = @workbook.datasourceUINames @dataSourceCount = @datasources.length pairs = processDashboards pairs += processWorksheets pairs += processOrphans initDot buildBody(pairs) sameRank([@workbook.name] ) sameRank( @workbook.dashboardNames ) sameRank( @workbook.worksheetNames ) sameRank( @workbook.datasourceNames ) buildHeader labelDataSources closeDot end
Public Instance Methods
buildBody(pairs)
click to toggle source
# File lib/twb/util/twbDashSheetDataDotBuilder.rb, line 76 def buildBody(pairs) @dotFile.puts "\n subgraph cluster_1 {" @dotFile.puts " color= grey;" @dotFile.puts "" pairs.each { |pair| @dotFile.puts " \"#{pair[0]}\" -> \"#{pair[1]}\" " } @dotFile.puts "" @dotFile.puts " }" end
buildHeader()
click to toggle source
# File lib/twb/util/twbDashSheetDataDotBuilder.rb, line 93 def buildHeader @dotFile.puts '' @dotFile.puts ' subgraph cluster_0 {' @dotFile.puts ' color=white;' @dotFile.puts ' node [shape="box3d" style="filled" ];' @dotFile.puts ' "Workbook" -> "Dashboard" -> "Worksheet" -> "Data Source"' @dotFile.puts ' }' end
closeDot()
click to toggle source
# File lib/twb/util/twbDashSheetDataDotBuilder.rb, line 110 def closeDot @dotFile.puts ' ' @dotFile.puts '}' @dotFile.close end
initDot()
click to toggle source
# File lib/twb/util/twbDashSheetDataDotBuilder.rb, line 70 def initDot @dotFileName = @workbook.name + '.dot' @dotFile = File.open(@dotFileName,'w') @dotFile.puts @@dotHeader end
labelDataSources()
click to toggle source
# File lib/twb/util/twbDashSheetDataDotBuilder.rb, line 102 def labelDataSources @dotFile.puts " " @workbook.datasources.each do |ds| name = ds.name @dotFile.puts " \"#{name}\" [label=\"#{ds.uiname}\"];" end end
processDashboards()
click to toggle source
# File lib/twb/util/twbDashSheetDataDotBuilder.rb, line 116 def processDashboards pairs = [] @workbook.dashboards.each do |dash| dashName = dash.name pairs << [@workbook.name,dashName] dash.worksheets.each do |sheet| sheetName = sheet.name pairs << [dashName,sheetName] @worksheets.delete sheetName end end return pairs end
processOrphans()
click to toggle source
# File lib/twb/util/twbDashSheetDataDotBuilder.rb, line 143 def processOrphans pairs = [] #@datasources.each { |dsn| pairs << [@workbook.name,dsn] } #@worksheets.each { |wsn| pairs << [@workbook.name,wsn] } return pairs end
processWorksheets()
click to toggle source
# File lib/twb/util/twbDashSheetDataDotBuilder.rb, line 130 def processWorksheets pairs = [] @workbook.worksheets.each do |sheet| sheetName = sheet.name sheet.datasources.each do |ds| dsName = ds.name pairs << [sheetName,ds.name] @datasources.delete ds.uiname end end return pairs end
sameRank(elements)
click to toggle source
# File lib/twb/util/twbDashSheetDataDotBuilder.rb, line 85 def sameRank(elements) @dotFile.puts "\n {rank=same " elements.each do |e| @dotFile.puts " \"#{e}\"" end @dotFile.puts " }" end