Class: Proforma::Modeling::Pane

Inherits:
Object
  • Object
show all
Includes:
Compiling::Compilable
Defined in:
lib/proforma/modeling/pane.rb,
lib/proforma/modeling/pane/line.rb,
lib/proforma/modeling/pane/column.rb

Overview

Think of a pane like a pivoted table. It has columns but not in the same respect as a table’s columns. For a pane, it makes up a vertical section. Each column (section) then has a number of lines which holds the label:value pairs that facilitates data rendering.

Defined Under Namespace

Classes: Column, Line

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(columns: []) ⇒ Pane

Returns a new instance of Pane.



25
26
27
# File 'lib/proforma/modeling/pane.rb', line 25

def initialize(columns: [])
  @columns = Column.array(columns)
end

Instance Attribute Details

#columnsObject



29
30
31
# File 'lib/proforma/modeling/pane.rb', line 29

def columns
  Array(@columns)
end

Instance Method Details

#compile(data, evaluator) ⇒ Object



33
34
35
36
37
# File 'lib/proforma/modeling/pane.rb', line 33

def compile(data, evaluator)
  compiled_columns = columns.map { |column| column.compile(data, evaluator) }

  self.class.new(columns: compiled_columns)
end