class Twb::Analysis::SheetFiltersAnalyzer
Attributes
localEmit[RW]
Public Class Methods
new(**args)
click to toggle source
# File lib/twb/analysis/Sheets/sheetfiltersanalyzer.rb, line 28 def initialize(**args) @args = args # puts "@args: #{@args}" @recordDir = !@args.nil? && @args[:recordDir] == true @ttdocdir = @args[:ttdocdir] @csvAdd = args[:csvMode] == :add @csvMode = @csvAdd ? 'a' : 'w' init @funcdoc = {:class=>self.class, :blurb=>'Analyze Worksheet Filters', :description=>'Documents Quick Filters and the values they employ, if any. Work in progess.',} #-- docFileName = docFile('WorksheetFilters.csv') @sheetFieldsCSV = CSV.open( docFileName,@csvMode) unless @csvAdd if @recordDir @sheetFieldsCSV << ['Rec #','Workbook','Workbook Modified','Worksheet','Filter Type','Operation','Data Source','Field','Value','Alias', 'Alias?','Operation Mode','Include Null?','Kind','Workbook Dir'] else @sheetFieldsCSV << ['Rec #','Workbook','Workbook Modified','Worksheet','Filter Type','Operation','Data Source','Field','Value','Alias', 'Alias?','Operation Mode','Include Null?','Kind'] end end addDocFile @sheetFieldsCSV, docFileName, "Workbooks, Worksheets and the sheets' Quick Filters" #-- @sheetCount = 0 @filterCount = 0 @recNum = 0 end
Public Instance Methods
metrics()
click to toggle source
# File lib/twb/analysis/Sheets/sheetfiltersanalyzer.rb, line 54 def metrics { '# of Worksheets' => @sheetCount, '# of Worksheet Filters' => @filterCount } end
parseFilters()
click to toggle source
# File lib/twb/analysis/Sheets/sheetfiltersanalyzer.rb, line 71 def parseFilters @worksheets = @twb.worksheets @worksheets.each do |sheet| emit "\n\nSHEET: #{sheet.name}" filters = sheet.filters filters.each do |filter| filter.emit "-----------------------------\nWORKSHEET:: #{sheet.name}\n-----------------------------" if filter.values.empty? # @sheetFieldsCSV << ['Workbook','Worksheet','Filter Type','Operation' ,'Data Source','Field','Value','Alias', 'Alias?'] recordCSV [@twbName, @modTime, sheet.name, filter.type, filter.inexclude, filter.dataSource.uiname, filter.uiname, nil, nil, nil, filter.inexMode, filter.includeNull, filter.kind] end filter.values.each do |valueMap| value = valueMap[:value] valias = valueMap[:alias] same = value.eql? valias emit "RECORDING FILTER VALUES: %-35s -- %-25s same? %s " % [value,valias,same] recordCSV [@twbName, @modTime, sheet.name, filter.type, filter.inexclude, filter.dataSource.uiname, filter.uiname, value, valias, same, filter.inexMode, filter.includeNull, filter.kind] end end end end
processTWB(twb)
click to toggle source
# File lib/twb/analysis/Sheets/sheetfiltersanalyzer.rb, line 61 def processTWB twb @twb = twb @twbName = @twb.name @twbDir = @twb.dir @modTime = @twb.modtime emit " -- #{@twbName}" @twbDomainsLoaded = false parseFilters end
Private Instance Methods
recordCSV(record)
click to toggle source
# File lib/twb/analysis/Sheets/sheetfiltersanalyzer.rb, line 95 def recordCSV record numberedRec = [@recNum+=1] + record if @recordDir @sheetFieldsCSV << numberedRec.push(@twbDir) else @sheetFieldsCSV << numberedRec end end