class RBase::Columns::CharacterColumn

Public Class Methods

new(name, options = {}) click to toggle source
Calls superclass method RBase::Columns::Column.new
# File lib/rbase/columns.rb, line 78
def initialize(name, options = {})
  if options[:size] && options[:decimal]
    size = options[:decimal]*256 + options[:size] 
  else
    size = options[:size] || 254
  end
  
  super name, options.merge(:size => size)

  if options[:encoding]
    @unpack_converter = Iconv.new('utf-8', options[:encoding])
    @pack_converter = Iconv.new(options[:encoding], 'utf-8')
  end
end

Public Instance Methods

inspect() click to toggle source
# File lib/rbase/columns.rb, line 105
def inspect
  "#{name}(string #{size})"
end
pack(value) click to toggle source
# File lib/rbase/columns.rb, line 93
def pack(value)
  value = value.to_s
  value = @pack_converter.iconv(value) if @pack_converter
  [value].pack("A#{size}")
end
unpack(data) click to toggle source
# File lib/rbase/columns.rb, line 99
def unpack(data)
  value = data.rstrip
  value = @unpack_converter.iconv(value) if @unpack_converter
  value
end