class Proforma::Modeling::Pane::Column

A Pane Column is a list of lines that understands how to compile itself against a data source.

Attributes

align[W]
label_width[W]
lines[W]
value_width[W]

Public Class Methods

new( align: LEFT, label_width: nil, lines: [], value_width: nil ) click to toggle source
# File lib/proforma/modeling/pane/column.rb, line 27
def initialize(
  align: LEFT,
  label_width: nil,
  lines: [],
  value_width: nil
)
  @align        = align
  @label_width  = label_width
  @lines        = Line.array(lines)
  @value_width  = value_width
end

Public Instance Methods

align() click to toggle source
# File lib/proforma/modeling/pane/column.rb, line 39
def align
  @align || LEFT
end
compile(record, evaluator) click to toggle source
# File lib/proforma/modeling/pane/column.rb, line 55
def compile(record, evaluator)
  compiled_lines = lines.map { |line| line.compile(record, evaluator) }

  self.class.new(
    align: align,
    label_width: label_width,
    lines: compiled_lines,
    value_width: value_width
  )
end
label_width() click to toggle source
# File lib/proforma/modeling/pane/column.rb, line 43
def label_width
  @label_width ? @label_width.to_f : nil
end
lines() click to toggle source
# File lib/proforma/modeling/pane/column.rb, line 51
def lines
  Array(@lines)
end
value_width() click to toggle source
# File lib/proforma/modeling/pane/column.rb, line 47
def value_width
  @value_width ? @value_width.to_f : nil
end