Class: Twb::Analysis::DataSources::DataSourcesEnumerator

Inherits:
Object
  • Object
show all
Includes:
TabTool
Defined in:
lib/twb/analysis/DataSources/datasourcesenumerator.rb

Instance Attribute Summary collapse

Attributes included from TabTool

#alerts, #docDir, #docfiles, #funcdoc, #id, #licensed, #logfilename, #logger, #loglevel, #properties, #ttdocdir, #type, #uuid

Instance Method Summary collapse

Methods included from TabTool

#addDocFile, #alert, #closeDocFiles, #config, #docFile, #docFileMaxNameLen, #docfilesdoc, #docfilesdocto_s, #emit, #emitCSV, #finis, #hasConfig, #init, #initCSV, #initDocDir, #initLogger, #license=, #licensed?, #loadConfig

Constructor Details

#initialize(**args) ⇒ DataSourcesEnumerator

Returns a new instance of DataSourcesEnumerator.



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# 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
      @sheetFieldsCSV << [ 'Record #',
                           'Workbook',
                           'Workbook Directory',
                           'Data Source',
                           'Data Source (tech)',
                           'Class',
                           'Extract?',
                           '# Connections',
                           '# Fields',
                           'Published?',
                           '# Tables',
                           '# Aliases',
                           '# Groups'
                         ]
  end
  addDocFile @sheetFieldsCSV, docFileName, "Workbooks and the Data Sources they contain."
  #--
  @dsCount  = 0
  @recNum   = 0
end

Instance Attribute Details

#localEmitObject

Returns the value of attribute localEmit.



28
29
30
# File 'lib/twb/analysis/DataSources/datasourcesenumerator.rb', line 28

def localEmit
  @localEmit
end

Instance Method Details

#metricsObject



63
64
65
66
67
# File 'lib/twb/analysis/DataSources/datasourcesenumerator.rb', line 63

def metrics
  {
    '# of Data Sources'        => @dsCount,
  }
end

#parseDataSourcesObject



77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/twb/analysis/DataSources/datasourcesenumerator.rb', line 77

def parseDataSources
  @dataSources  = @twb.datasources
  @dataSources.each do |ds|
    @dsCount += 1
    @sheetFieldsCSV << [ @recNum+=1,
                         @twb.name,
                         @twb.dir,
                         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
                       ]
  end
end

#processTWB(twb) ⇒ Object



69
70
71
72
73
74
75
# File 'lib/twb/analysis/DataSources/datasourcesenumerator.rb', line 69

def processTWB twb
   @twb     = twb
   @twbName = @twb.name
   @twbDir  = @twb.dir
   emit "   -- #{@twbName}"
   parseDataSources
end