class Pulo::FrameCell

Public Class Methods

new(parent_column,parent_row,value=nil) click to toggle source
# File lib/pulo/frames/frame_cell.rb, line 4
def initialize(parent_column,parent_row,value=nil)
  @parent_column=parent_column
  @parent_row=parent_row
  @error=false
  self.value=value
end

Public Instance Methods

column() click to toggle source
# File lib/pulo/frames/frame_cell.rb, line 11
def column
  @parent_column
end
empty?() click to toggle source
# File lib/pulo/frames/frame_cell.rb, line 19
def empty?
  @value.nil?
end
error?() click to toggle source
# File lib/pulo/frames/frame_cell.rb, line 33
def error?
  @error
end
row() click to toggle source
# File lib/pulo/frames/frame_cell.rb, line 15
def row
  @parent_row
end
set_error() click to toggle source
# File lib/pulo/frames/frame_cell.rb, line 27
def set_error
  @error=true
end
to_s() click to toggle source
# File lib/pulo/frames/frame_cell.rb, line 74
def to_s
  begin
    @parent_column.formatter.call(value).ljust(@parent_column.width,' ')
  rescue Exception => e
    value.to_s
  end
end
unset_error() click to toggle source
# File lib/pulo/frames/frame_cell.rb, line 30
def unset_error
  @error=false
end
value() click to toggle source
# File lib/pulo/frames/frame_cell.rb, line 37
def value
  #raise "Column (#{@parent_column.name}) requires re-calc, value not available." if @parent_column.recalc_required
  return "ERR" if error?
  #return "UNK" if @parent_column.recalc_required
  #return "NIL" if empty?
  @value
end
value=(val) click to toggle source
# File lib/pulo/frames/frame_cell.rb, line 45
def value=(val)

  if @parent_column.column_class==NilClass
    @parent_column.column_class=val.class
    if val.class.respond_to?(:quantity_name)
      @parent_column.column_unit=val.unit
    end
  end

  if val.class.respond_to?(:quantity_name)
    if val.unit.name!=@parent_column.column_unit.name
      val=val.send(@parent_column.column_unit.name)
    end
  end

  if @parent_column.column_class!=NilClass && val.class!=NilClass
    if val.class.respond_to?(:quantity_name)
      unless val.class.dimensions==@parent_column.column_class.dimensions
        raise "Tried to set a value (#{val.to_s}) of class #{val.class} with dimensions #{val.class.dimensions} on column #{@parent_column.name} which already has a defined class of #{@parent_column.column_class}."
      end
    else
      unless val.class==@parent_column.column_class
        raise "Tried to set a value (#{val.to_s}) of class #{val.class} on column #{@parent_column.name} which already has a defined class of #{@parent_column.column_class}."
      end
    end
  end
  @value=val
end
value_column?() click to toggle source
# File lib/pulo/frames/frame_cell.rb, line 23
def value_column?
  @parent_column.value_column?
end