class Twb::Analysis::DataSources::ExtractsAnalyzer
Attributes
localEmit[RW]
Public Class Methods
new(**args)
click to toggle source
# File lib/twb/analysis/DataSources/extractsanalyzer.rb, line 29 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 Extracts', :description=>'Identifies Data Source Extracts & records relevant data.',} #-- docFileName = docFile('Extracts.csv') @extractsCSV = CSV.open(docFileName,@csvMode) #-- # <extract count='-1' enabled='true' units='records'> # <connection access_mode='readonly' # authentication='auth-none' # author-locale='en_US' # class='hyper' # dbname='C:/tech/Tableau/Tableau Tools/Ruby/gems/twb/lib/twb/analysis/datasources/data/Sample - World Bank Indicators (Excel).hyper' # default-settings='yes' # schema='Extract' # sslmode='' # update-time='05/17/2019 10:39:21 PM' # username='tableau_internal_user'> # <relation name='Extract' table='[Extract].[Extract]' type='table' /> # <refresh> # <refresh-event add-from-file-path='Sample - World Bank Indicators (Excel)' increment-value='%null%' refresh-type='create' rows-inserted='2354' timestamp-start='2019-05-17 22:39:21.474' /> # </refresh> # </connection> # </extract> #-- unless @csvAdd @csvHeader = [ 'Rec #', 'Workbook', 'Data Source', 'Enabled', 'Units', 'Access Mode', 'Authentication', 'Class', 'Extract Name (FQ)', 'Extract Name', 'Extract Directory', 'Default Settings', 'Schema', 'SSL Mode', 'Updated (UTC)', 'User Name' ] if @recordDir @csvHeader.push 'Workbook Dir' end @extractsCSV << @csvHeader end addDocFile @extractsCSV, docFileName, "Workbooks and their Data Source Extracts." #-- @twbCount = 0 @dsCount = 0 @extractCount = 0 @recNum = 0 end
Public Instance Methods
metrics()
click to toggle source
# File lib/twb/analysis/DataSources/extractsanalyzer.rb, line 90 def metrics { '# of Data Sources' => @dsCount, '# of Extracts' => @extractCount } end
parseDataSources()
click to toggle source
# File lib/twb/analysis/DataSources/extractsanalyzer.rb, line 107 def parseDataSources @dataSources = @twb.datasources @dataSources.each do |ds| @dsCount += 1 emit "DATA SOURCE:: #{ds.name}" dsNode = ds.node exnode = ds.node.at_xpath('./extract') unless exnode.nil? cnNode = exnode.at_xpath('./connection') # emit true, cnNode unless cnNode.nil? @extractCount += 1 dbName = cnNode['dbname'] # emit true, "cnNode['dbname'] :: #{cnNode['dbname']}" # unless dbName.nil? exName = File.basename dbName exDir = File.dirname dbName # end recordCSV [ @twbName, ds.uiname, exnode['enabled'], exnode['units'], cnNode['access_mode'], cnNode['authentication'], cnNode['class'], dbName, exName, exDir, cnNode['default-settings'], cnNode['schema'], cnNode['sslmode'], cnNode['update-time'], cnNode['username'] ] end end end end
processTWB(twb)
click to toggle source
# File lib/twb/analysis/DataSources/extractsanalyzer.rb, line 97 def processTWB twb @twb = twb @twbName = @twb.name @twbDir = @twb.dir emit " -- #{@twbName}" @twbCount += 1 parseDataSources finis end
Private Instance Methods
recordCSV(record)
click to toggle source
<extract count='-1' enabled='true' units='records'>
<connection access_mode='readonly' authentication='auth-none' author-locale='en_US' class='hyper' dbname='C:/tech/Tableau/Tableau Tools/Ruby/gems/twb/lib/twb/analysis/datasources/data/Sample - World Bank Indicators (Excel).hyper' default-settings='yes' schema='Extract' sslmode='' update-time='05/17/2019 10:39:21 PM' username='tableau_internal_user'> <relation name='Extract' table='[Extract].[Extract]' type='table' /> <refresh> <refresh-event add-from-file-path='Sample - World Bank Indicators (Excel)' increment-value='%null%' refresh-type='create' rows-inserted='2354' timestamp-start='2019-05-17 22:39:21.474' /> </refresh> </connection>
</extract>
# File lib/twb/analysis/DataSources/extractsanalyzer.rb, line 186 def recordCSV record numberedRec = [@recNum+=1] + record if @recordDir @extractsCSV << numberedRec.push(@twbDir) else @extractsCSV << numberedRec end end