Class: Twb::CalculationField

Inherits:
Object
  • Object
show all
Includes:
Comparable, TabTool
Defined in:
lib/twb/fieldcalculation.rb

Instance Attribute Summary collapse

Attributes included from TabTool

#alerts, #docDir, #docfiles, #funcdoc, #licensed, #logfilename, #logger, #loglevel, #metrics, #properties, #ttdocdir, #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(code, datasource) ⇒ CalculationField

Returns a new instance of CalculationField.



227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
# File 'lib/twb/fieldcalculation.rb', line 227

def initialize code, datasource
  # puts "\n\nCalculationField ::  %-25s  |  %s  " % [datasource.uiname, code]
  @dataSource       = datasource
  @dataSourceName   = datasource.uiname
  @dataSourceRef    = :local
  @dataSourceExists = true
  @techUIdiff       = false
  @uiname           = ''
  rawCode  = code.gsub(/^\[|\]$/,'')
  parts    = rawCode.split('].[')
  #puts "Field: #{code}  \t parts: #{parts.length} - #{parts.inspect}"
  if parts.length == 1
    @name = parts[0]
    @techCode = "[#{parts[0]}]"
    #puts "@name: #{@name}"
    if datasource.nil?
      # puts 'a'
      @uiname = @name
      @uiCode = @techCode
      @techUIdiff = false
    else # !datasource.nil?
      # puts 'b'
      #puts "b - found uiname for '#{@name}'?: #{!datasource.fieldUIName(@name).nil?} \t is:#{datasource.fieldUIName(@name)} "
      @uiname = datasource.fieldUIName(@name).nil? ? @name : datasource.fieldUIName(@name) 
      @uiCode = @uiname.nil? ? @techCode :  "[#{@uiname}]"
      @techUIdiff = !@techCode.eql?(@uiCode)
      # puts ":b #{datasource.fieldUIName(@name).nil?}  ... #{@name}  ... #{@uiname}"
      # puts "CalculationField ::       uin: %-25s | @name:%-s" % [@uiname,@name]
    end
  else # parts.length <> 1
    # puts 'c'
    rdstech   = parts[0]
    calcField = parts[1]
    @uiname   = calcField
    @dataSourceName = rdstech
    @dataSourceRef  = :remote
    @techCode = "[#{rdstech}].[#{calcField}]"
    workbook  = datasource.workbook
    @dataSource  = workbook.nil? ? nil : workbook.datasource(rdstech)
   # puts "\t  twb: #{workbook.class}  /  remoteds: #{remoteds.class}  : #{remoteds.nil? ? "<<NOT FOUND:#{rdstech}:>>" : remoteds.uiname} "
    #--
    if @dataSource.nil? || @dataSource.fieldUIName(calcField).nil?
      # puts 'd'
      @uiname     = calcField
      @uiCode     = "[<<NOT FOUND>>#{rdstech}].[#{calcField}]"
      @techUIdiff = true
      @dataSourceExists = false
    else  # !remoteds.nil?
      # puts 'e'
      @dataSourceName = @dataSource.uiname
      @uiname         = @dataSource.fieldUIName(calcField)
      @uiCode         = "[#{@dataSourceName}].[#{@uiname}]"
      @techUIdiff     = !@techCode.eql?(@uiCode)
      @dataSourceExists = true
    end
  end
  # puts "\t     dsName: #{@dataSourceName}"
  # puts "\t   @name: #{@name}"
  # puts "\t     uiname: #{@uiname}"
  @fqName = "#{@dataSourceName}::#{@uiname}"
  @type   = if @dataSource.nil?
               :CalculatedField
            else
               @dataSource.calculatedField(@uiname).nil? ? :DatabaseField : :CalculatedField
            end
end

Instance Attribute Details

#dataSourceObject (readonly)

Returns the value of attribute dataSource.



223
224
225
# File 'lib/twb/fieldcalculation.rb', line 223

def dataSource
  @dataSource
end

#dataSourceExistsObject (readonly)

Returns the value of attribute dataSourceExists.



223
224
225
# File 'lib/twb/fieldcalculation.rb', line 223

def dataSourceExists
  @dataSourceExists
end

#dataSourceNameObject (readonly)

Returns the value of attribute dataSourceName.



223
224
225
# File 'lib/twb/fieldcalculation.rb', line 223

def dataSourceName
  @dataSourceName
end

#dataSourceRefObject (readonly)

Returns the value of attribute dataSourceRef.



223
224
225
# File 'lib/twb/fieldcalculation.rb', line 223

def dataSourceRef
  @dataSourceRef
end

#fqNameObject (readonly)

Returns the value of attribute fqName.



224
225
226
# File 'lib/twb/fieldcalculation.rb', line 224

def fqName
  @fqName
end

#nameObject (readonly)

Returns the value of attribute name.



221
222
223
# File 'lib/twb/fieldcalculation.rb', line 221

def name
  @name
end

#techCodeObject (readonly)

Returns the value of attribute techCode.



221
222
223
# File 'lib/twb/fieldcalculation.rb', line 221

def techCode
  @techCode
end

#techUIdiffObject (readonly)

Returns the value of attribute techUIdiff.



225
226
227
# File 'lib/twb/fieldcalculation.rb', line 225

def techUIdiff
  @techUIdiff
end

#typeObject (readonly)

Returns the value of attribute type.



224
225
226
# File 'lib/twb/fieldcalculation.rb', line 224

def type
  @type
end

#uiCodeObject (readonly)

Returns the value of attribute uiCode.



222
223
224
# File 'lib/twb/fieldcalculation.rb', line 222

def uiCode
  @uiCode
end

#uinameObject (readonly)

Returns the value of attribute uiname.



222
223
224
# File 'lib/twb/fieldcalculation.rb', line 222

def uiname
  @uiname
end

Instance Method Details

#<=>(other) ⇒ Object



298
299
300
301
302
303
304
305
# File 'lib/twb/fieldcalculation.rb', line 298

def <=>(other)
  # myName    = @uiname.nil? ? '' : @uiname
  # otherName = other.uiName.nil? ? "" : other.uiName
  # # puts "#{@uiname} / #{myName} <=>  #{otherName} / #{other.uiName}"
  # # puts "#{@uiname.nil?} // #{other.uiName.nil?}"
  # myName <=> otherName
  @fqName <=> other.fqName
end

#idObject

initialize



294
295
296
# File 'lib/twb/fieldcalculation.rb', line 294

def id
  @id ||= @id = "#{@dataSourceName}::#{@uiname}"
end