Class: Twb::CodedField

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/twb/worksheet.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(incode) ⇒ CodedField

Returns a new instance of CodedField.



174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
# File 'lib/twb/worksheet.rb', line 174

def initialize incode
  # puts "CF: #{incode}"
  @code       = incode
  trimCode    = code.gsub(/^\[/,'').gsub(/\]$/,'')
  # puts "  : '#{trimCode}'"
  @dataSource = nil
  dsFldBits = trimCode.split('].[')
  if dsFldBits.length == 2
    @dataSource = dsFldBits[0]
    fieldCode   = dsFldBits[1]
  else
    fieldCode   = dsFldBits[0]
  end
  # puts "fc: #{fieldCode}"
  parts = fieldCode.split(':')
  bits = 
  if ':Measure Names'.eql?(fieldCode)
      {:prefix => nil, :name => fieldCode, :suffix => nil }
  else 
      case parts.length
      when 1
          bits = {:prefix => nil, :name => parts[0], :suffix => nil}
      when 3
          bits = {:prefix => parts[0], :name => parts[1], :suffix => parts[2]}
      when 4
          if parts[-1].match(/^(\d)+$/)
              bits = {:prefix => parts[0], :name => parts[1], :suffix => "#{parts[2]}:#{parts[3]}"}
          else
              bits = {:prefix => "#{parts[0]}:#{parts[1]}", :name => parts[2], :suffix => parts[3]}
          end
      when 5
          bits = {:prefix => "#{parts[0]}:#{parts[1]}", :name => parts[2], :suffix => "#{parts[3]}:#{parts[4]}"}
      else
          bits = {:prefix => "OOPS #{parts.inspect}", :name => '', :suffix => '' }
      end
  end
  @prefix = bits[:prefix]
  @name   = bits[:name]
  @suffix = bits[:suffix]
  # puts "       l: #{parts.length}   == #{bits}"
  # bits.each { |k,v| puts "       l: %-7s %s" % [k,v] }
end

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code.



172
173
174
# File 'lib/twb/worksheet.rb', line 172

def code
  @code
end

#dataSourceObject (readonly)

Returns the value of attribute dataSource.



172
173
174
# File 'lib/twb/worksheet.rb', line 172

def dataSource
  @dataSource
end

#nameObject (readonly)

Returns the value of attribute name.



172
173
174
# File 'lib/twb/worksheet.rb', line 172

def name
  @name
end

#prefixObject (readonly)

Returns the value of attribute prefix.



172
173
174
# File 'lib/twb/worksheet.rb', line 172

def prefix
  @prefix
end

#suffixObject (readonly)

Returns the value of attribute suffix.



172
173
174
# File 'lib/twb/worksheet.rb', line 172

def suffix
  @suffix
end

Instance Method Details

#<=>(other) ⇒ Object



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

def <=>(other)
  @code <=> other.code
end

#to_sObject



217
218
219
# File 'lib/twb/worksheet.rb', line 217

def to_s
  @code
end