class Twb::Analysis::WorkbookSummaryAnalyzer

Attributes

localEmit[RW]

Public Class Methods

new(**args) click to toggle source
# File lib/twb/analysis/workbooksummaryanalyzer.rb, line 28
def initialize(**args)
  @args      = args
  @recordDir = !@args.nil? && @args[:recordDir] == true
  @ttdocdir  = @args[:ttdocdir]
  @csvAdd    = !@args.nil? && args[:csvMode] == :add
  @csvMode   = @csvAdd ? 'a' : 'w'
  init
  @funcdoc   = {:class=>self.class, :blurb=>'Analyze Workbooks', :description=>'Workbook summary data: # Data Sources; Dashboards; Sheets; etc.'}
  #--
  docFileName  = docFile('WorkbookSummary.csv')
  @csvFile     = CSV.open(docFileName,@csvMode)
  unless @csvAdd
    csvHeader       = ['Rec #', 'Workbook','Directory','Type','Version','Build','Platform','Modified','# Data Sources','# Dashboards','# Worksheets']
    if @recordDir
      csvHeader.push('Workbook Directory')
    end
    @csvFile  << csvHeader 
  end
  addDocFile @csvFile, docFileName, "Workbook summary data."
  #--
  @twbCount    = 0
  @dashCount   = 0
  @dsCount     = 0
  @sheetCount  = 0
  @recNum      = 0
end

Public Instance Methods

metrics() click to toggle source
# File lib/twb/analysis/workbooksummaryanalyzer.rb, line 55
def metrics
  {
    # '# of Workbooks'    => @twbCount,
    '# of Data Sources' => @dsCount,
    '# of Dashboards'   => @dashCount,
    '# of Worksheets'   => @sheetCount
  }
end
processTWB(twb) click to toggle source
# File lib/twb/analysis/workbooksummaryanalyzer.rb, line 64
def processTWB twb
   @twb     = twb
   emit "   -- #{@twbName}"
   recordCSV [ @twb.name,
               @twb.dir, 
               @twb.type, 
               @twb.version, 
               @twb.build,
               @twb.platform,
               # @twb.base,
               @twb.modtime, 
               @twb.datasources.length,
               @twb.dashboards.length,
               @twb.worksheets.length
             ]
   @twbCount   += 1
   @dsCount    += @twb.datasources.length
   @dashCount  += @twb.dashboards.length
   @sheetCount += @twb.worksheets.length
   finis
end

Private Instance Methods

recordCSV(record) click to toggle source
# File lib/twb/analysis/workbooksummaryanalyzer.rb, line 88
def recordCSV record
  numberedRec = [@recNum+=1] + record
  if @recordDir
    @csvFile  << numberedRec.push(@twb.dir)
  else
    @csvFile  << numberedRec
  end
end