class Twb::Util::AtomizeCSVRecords

Attributes

metrics[R]

include Graph

ttdocdir[RW]

Public Class Methods

new(**args) click to toggle source
# File lib/twb/util/atomizecsvrecords.rb, line 35
def initialize(**args)
    @ttdocdir  = @args[:ttdocdir]
    @csvAdd    = @args[:csvMode] == :add
    @csvMode   = @csvAdd ? 'a' : 'w'
    init
    @funcdoc   = {:class=>self.class, :blurb=>'Analyze Calculated Fields', :description=>'Calculated fields can be complex, this tool provides robust coverage.',}
    # --
    @executed  = false
end

Public Instance Methods

loadFields(fileName) click to toggle source
# File lib/twb/util/atomizecsvrecords.rb, line 45
def loadFields fileName
  fields = Set.new
  file = File.open(fileName)
  unless file.nil?
    file.each_line { |line|
      fields.add line.chomp
    }
  end
  return fields
end
loadMetrics() click to toggle source
# File lib/twb/util/atomizecsvrecords.rb, line 92
def loadMetrics
  @metrics = {
               '# of Data Sources'      => @dataSourcesCount,
               '# of Calculated Fields' => @calculatedFieldsCount,
               '# of Referenced Fields' => @referencedFieldsCount,
             }
end
processData(fileName) click to toggle source
# File lib/twb/util/atomizecsvrecords.rb, line 62
def processData fileName
  unless @executed
    emit true, "initialize AtomizeCSVRecords args #{args}"
    @atomicCSV = CSV.open(@@csvFileName, 'w')
    # --
    inputFileName = fileName.nil? ? 'csvData.csv' : fileName
    keyFields     = loadFields 'key.fields'
    excludeFields = loadFields 'exclude.fields'
    puts "\t Using these key fields: #{$keyFields.inspect}"
    puts "\t Excluding these fields: #{$excludeFields.inspect}"

      $fieldValsCSV = '.csv'
      $atomicCSV    = CSV.open($fieldValsCSV, 'w')
      $atomicFields = $keyFields.to_a + [ 'Rec #', 'Field', 'Value' ]
      puts "\n\t CSV output fields: #{$atomicFields.inspect}"
      $atomicCSV << $atomicFields


      $recCnt, $fldsCnt = 0, 0

      $recNum = 0

    @executed = true
  end
end
processTWB(workbook) click to toggle source
# File lib/twb/util/atomizecsvrecords.rb, line 56
def processTWB workbook
  puts "\n\t ALERT: Utility tool: #{self.class} - does not implement Workbook processing"
  puts   "\t                                    - deferring to single execution"
  processData fileName
end