class Twb::Analysis::DataSources::DataSourcesEnumerator

Attributes

localEmit[RW]

Public Class Methods

new(**args) click to toggle source
# File lib/twb/analysis/DataSources/datasourcesenumerator.rb, line 30
def initialize(**args)
  @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=>"Enumerate Workbooks' Data Sources", :description=>'Documents Data Sources, recoring their names.',}
  #--
  docFileName      = docFile('DataSources.csv')
  @sheetFieldsCSV  = CSV.open( docFileName,@csvMode)
  unless @csvAdd
    if @recordDir
      @sheetFieldsCSV  << ['Rec #','Workbook','Data Source','Data Source (tech)','Class','Extract?','# Connections','# Fields','Published?', '# Tables', '# Aliases', '# Groups', 'Workbook Dir']
    else
      @sheetFieldsCSV  << ['Rec #','Workbook','Data Source','Data Source (tech)','Class','Extract?','# Connections','# Fields','Published?', '# Tables', '# Aliases', '# Groups']
    end
  end
  addDocFile @sheetFieldsCSV, docFileName, "Workbooks and the Data Sources they contain."
  #--
  @dsCount  = 0
  @recNum   = 0
end

Public Instance Methods

metrics() click to toggle source
# File lib/twb/analysis/DataSources/datasourcesenumerator.rb, line 54
def metrics
  {
    '# of Data Sources'        => @dsCount,
  }
end
parseDataSources() click to toggle source
# File lib/twb/analysis/DataSources/datasourcesenumerator.rb, line 68
def parseDataSources
  @dataSources  = @twb.datasources
  @dataSources.each do |ds|
    @dsCount += 1
    recordCSV [ @twbName, 
                ds.uiname, 
                ds.name, 
                ds.dsclass, 
                ds.isExtract, 
                ds.connections.length,
                ds.allFields.length, 
                ds.isPublished, 
                ds.tables.length, 
                ds.aliases.length, 
                ds.groups.length 
              ]
    # [@twbName, @modTime, sheet.name, filter.type, filter.inexclude, filter.dataSource.uiname, filter.uiname, nil,   nil,    nil,  filter.inexMode, filter.includeNull, filter.kind]
  end
end
processTWB(twb) click to toggle source
# File lib/twb/analysis/DataSources/datasourcesenumerator.rb, line 60
def processTWB twb
   @twb     = twb
   @twbName = @twb.name
   @twbDir  = @twb.dir
   emit "   -- #{@twbName}"
   parseDataSources
end

Private Instance Methods

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