class Twb::Analysis::DataSources::FieldsAliasesAnalyzer

Attributes

calculatedFieldsCount[R]
metrics[R]
referencedFieldsCount[R]

Public Class Methods

new(**args) click to toggle source
# File lib/twb/analysis/DataSources/fieldsaliasesanalyzer.rb, line 39
def initialize(**args)
    emit "initialize FieldsAliasesAnalyzer args #{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=>"Analyze Fields' Aliases", :description=>'Understanding the aliases for field values can be important and useful.',}
    #-- CSV records collectors
    # @csvFormulaFields    = Set.new
    # @csvFormulaLines     = Set.new
    #-- Counters setup --
    # @twbCount              = 0
    @dataSourcesCount   = 0
    @aliasedFieldsCount = 0
    @aliasessCount      = 0
    @recNum             = 0
    #--
    # @referencedFields     = SortedSet.new
    #--
    @csvFile   = initCSV(@@csvFileName, 'Fields and their aliased values.',                      @@csvFileHeader )
    #--
    @localEmit  = false
    # @imageFiles = Array.new
    #--
    # @doGraph = config(:dograph)
end

Public Instance Methods

processAliases(field) click to toggle source
# File lib/twb/analysis/DataSources/fieldsaliasesanalyzer.rb, line 91
def processAliases field
  aliasNodes = field.node.xpath('./aliases//alias')
  aliasNodes.each do |anode|
    key      = anode['key']
    value    = anode['value']
    numberedRec = [
                    @recNum +=1, 
                    @twbName,
                    @dsUIName,
                    @fieldName,
                    anode['key'].to_s.gsub(/^["]+/,'').gsub(/["]+$/,''),
                    anode['value']
                  ]
    #--
    if @recordDir
      @csvFile  << numberedRec.push(@twbDir)
    else
      @csvFile  << numberedRec
    end
  end
end
processDS(ds) click to toggle source
# File lib/twb/analysis/DataSources/fieldsaliasesanalyzer.rb, line 76
def processDS ds
  @dsUIName  = ds.uiname
  @dsCaption = ds.caption
  @dsName    = ds.name
  #--
  ds.columnFields.each do |fld|
    if fld.hasaliases
      @fieldName    = fld.name
      @fieldCaption = fld.caption
      @fieldUIName  = fld.uiname
      processAliases(fld) 
    end
  end
end
processTWB(twb) click to toggle source
# File lib/twb/analysis/DataSources/fieldsaliasesanalyzer.rb, line 68
def processTWB twb
  @twbName = twb.name
  @twDir   = twb.dir
  twb.datasources.each do |ds|
    processDS ds
  end
end