class Twb::Analysis::DataSources::DataSourceFieldsCSVEmitter
Attributes
csvFileName[R]
csvRecords[R]
dsCount[R]
fieldsCount[R]
Public Class Methods
csvFileNaame()
click to toggle source
# File lib/twb/analysis/DataSources/DataSourceFieldsCSVEmitter.rb, line 125 def self.csvFileNaame @@csvFileName end
csvFileType()
click to toggle source
# File lib/twb/analysis/DataSources/DataSourceFieldsCSVEmitter.rb, line 121 def self.csvFileType @@csvFileType end
csvHeader()
click to toggle source
# File lib/twb/analysis/DataSources/DataSourceFieldsCSVEmitter.rb, line 117 def self.csvHeader @@csvHeader end
new(**args)
click to toggle source
@@techFileType = 'TwbDataSourceFieldsTech' @@techFileName = @@techFileType + '.csv' @@techHeader = ['Field #',
'Workbook', 'Workbook Dir', 'Data Source', 'Field', 'Field Type', 'Property - Name', 'Property - Value' ]
# File lib/twb/analysis/DataSources/DataSourceFieldsCSVEmitter.rb, line 72 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(@@fullFileName) @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
cleanup()
click to toggle source
def emitTech dataSource, fieldName, type, properties
# puts "XX #{dataSource.uiname} :: #{fieldName} #{} :: #{type} :: #{properties}" @recNum+=1 properties.each do |name,value| @csvFileTech << [ @recNum, @twb.name, @twb.dir, dataSource.uiname, fieldName, type, name, value ] end
end
# File lib/twb/analysis/DataSources/DataSourceFieldsCSVEmitter.rb, line 269 def cleanup @csvFile.close unless @csvFile.nil? end
initializeX()
click to toggle source
# File lib/twb/analysis/DataSources/DataSourceFieldsCSVEmitter.rb, line 98 def initializeX # @csvFile = CSV.open(@@csvFileName,'w') # @csvFile << @@csvHeader # @csvRecords = Set.new # puts "Opened: #{!@csvFile.nil?} - #{@@csvFileName}" # -- @csvFileFull = CSV.open(@@fullFileName,'w') @csvFileFull << @@fullHeader puts "Opened: #{!@csvFileFull.nil?} - #{@@fullFileName} " # -- # @csvFileTech = CSV.open(@@techFileName,'w') # @csvFileTech << @@techHeader # puts "Opened: #{!@csvFileTech.nil?} - #{@@techFileName}" # -- @recNum = 0 @dsCount = 0 @fieldsCount = 0 end
processTwb(twb)
click to toggle source
# File lib/twb/analysis/DataSources/DataSourceFieldsCSVEmitter.rb, line 129 def processTwb twb @twb = nil @twb = twb if twb.instance_of? Twb::Workbook @twb = Twb::Workbook.new(twb) if twb.instance_of? String raise ArgumentError.new("ERROR in Workbok processing: '#{twb}' must be a Workbook (class) or the name of a Workbook (String), is a #{twb.class} \n ") unless @twb.is_a? Twb::Workbook # -- dss = @twb.datasources @fieldCnt = 0 dss.each do |ds| @dsname = ds.uiname # puts "\n -- #{ds.uiname} " # tables = Set.new # fields = {} @dsCount += 1 fclasses = Set.new ds.localFields.each do |field| recordFieldFull field, :local # recordField( fields, field, {:type=>:local,:columnField=>true,:hidden=>field.hidden} ) # emitTech( ds, field.uiname, 'Local', field.properties) # recordTech( field, 'LocalA') end ds.columnFields.each do |field| recordFieldFull field, :column # recordField( fields, field, {:type=>'column',:columnField=>true,:hidden=>field.hidden} ) # emitTech( ds, field.uiname, 'Column', field.properties) # recordTech( field, 'ColumnA') end ds.calculatedFields.each do |field| recordFieldFull field, :calc # puts "WWW #{field.class} :: #{field} ::prop:: #{field.properties.class} :: #{field.properties}" # recordField( fields, field, {:type=>'calc',:calculatedField=>true,:hidden=>field.hidden} ) # emitTech( ds, field.uiname, 'Calculated', field.properties) # recordTech( field, 'CalcA') end ds.metadataFields.each do |field| recordFieldFull field, :metadata # recordField( fields, field, {:type=>'metadata',:metadataField=>true} ) # emitTech( ds, field.uiname, 'MetaData', field.properties) # recordTech( field, 'MetadataA') end ds.dbFields.each do |field| recordFieldFull field, :db # recordField( fields, field, {:type=>'database',:dbField=>true} ) # emitTech( ds, field.uiname, 'Db', field.properties) # recordTech( field, 'DbA') end ds.mappedFields.each do |field| recordFieldFull field, :mapped # recordField( fields, field, {:type=>'mapped',:mappedField=>true} ) # emitTech( ds, field.uiname, 'Mapped', field.properties) # recordTech( field, 'MappedA') end # emitFields(fields) end end
recordFieldFull(field, source)
click to toggle source
# File lib/twb/analysis/DataSources/DataSourceFieldsCSVEmitter.rb, line 185 def recordFieldFull field, source # print field.properties.nil? ? '-' : ":#{field.properties.length}" # puts field.properties @fieldCnt+=1 field.properties.each do |name,value| # print name @csvFileFull << [ @recNum+=1, @twb.name, @twb.dir, @dsname, field.uiname, source, field.class, field.node.path.to_s.gsub(/[0-9]/,'').gsub('[]',''), name, value ] # @csvFileFull << csvRec end end