class Twb::Analysis::WorksheetSummarizer

Attributes

localEmit[RW]

Public Class Methods

new(**args) click to toggle source

Worksheet attributes; from Worksheet.rb attr_reader :node, :name, :datasourcenames, :datasources attr_reader :panesCount attr_reader :fields, :rowFields, :colFields, :paneFields, :datasourceFields, :pageFields, :encodedFields, :slicesFields attr_reader :filters attr_reader :tooltip attr_accessor :hidden, :visible

# File lib/twb/analysis/Sheets/worksheetsummarizer.rb, line 36
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=>'Summarize Worksheets', :description=>'Identifies Worksheets & summarizes them.',}
  #--
  docFileName     = docFile('WorkheetSummaries.csv')
  @worksheetsCSV  = CSV.open(docFileName,@csvMode)
  unless @csvAdd
    @csvHeader = [ 'Rec #', 
                   'Workbook', 
                   'Worksheet',
                   'Hidden', 'Visible',
                   '# Data Sources', 
                   '# Fields - Data', '# Fields - Rows', '# Fields - Cols',
                   'Tooltip?', 'Filters?'
                 ]
    if @recordDir
      @csvHeader.push 'Workbook Dir'
    end
    @worksheetsCSV << @csvHeader
  end
  addDocFile @worksheetsCSV, docFileName, "Workbooks and their Worksheets' summaries."
  #--
  @twbCount    = 0
  @sheetCount  = 0
  @recNum      = 0
end

Public Instance Methods

metrics() click to toggle source
# File lib/twb/analysis/Sheets/worksheetsummarizer.rb, line 68
def metrics
  {
    '# of Worksheets' => @sheetCount
  }
end
parseSheets() click to toggle source
# File lib/twb/analysis/Sheets/worksheetsummarizer.rb, line 85
def parseSheets
  @worksheets  = @twb.worksheets
  @worksheets.each do |sheet|
    emit "SHEET:: #{sheet.name}"
    @sheetCount += 1
    recordCSV [ @twbName, 
                sheet.name, 
                sheet.hidden, 
                sheet.visible,
                sheet.datasources.length,
                sheet.datasourceFields.length,
                sheet.rowFields.length,
                sheet.colFields.length,
                !sheet.tooltip.nil?,
                !sheet.filters.nil?,
              ]
  end
end
processTWB(twb) click to toggle source
# File lib/twb/analysis/Sheets/worksheetsummarizer.rb, line 74
def processTWB twb
   @twb     = twb
   @twbName = @twb.name
   @twbDir  = @twb.dir
   @modTime = @twb.modtime
   emit "   -- #{@twbName}"
   @twbCount += 1
   parseSheets
   finis
end

Private Instance Methods

recordCSV(record) click to toggle source
# File lib/twb/analysis/Sheets/worksheetsummarizer.rb, line 106
def recordCSV record
  numberedRec = [@recNum+=1] + record
  if @recordDir
    @worksheetsCSV  << numberedRec.push(@twbDir)
  else
    @worksheetsCSV  << numberedRec
  end
end