Class: Ruby::Reports::Services::TableBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby/reports/services/table_builder.rb

Overview

Defines report table building logic

Defined Under Namespace

Classes: Dummy

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#building_headerObject (readonly)

Returns the value of attribute building_header.



13
14
15
# File 'lib/ruby/reports/services/table_builder.rb', line 13

def building_header
  @building_header
end

Instance Method Details

#build_headerObject



38
39
40
41
42
43
44
45
# File 'lib/ruby/reports/services/table_builder.rb', line 38

def build_header
  @building_header = true
  DslProxy.exec(self, Dummy.new, &table_block)
  @building_header = false
  header = @table_header.dup
  cleanup_header
  header
end

#build_row(row) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/ruby/reports/services/table_builder.rb', line 30

def build_row(row)
  @row = row.is_a?(Hash) ? row.rekey! : row
  DslProxy.exec(self, @row, &table_block)
  row = @table_row.dup
  cleanup_row
  row
end

#column(name, value = nil, options = {}) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/ruby/reports/services/table_builder.rb', line 18

def column(name, value = nil, options = {})
  if (skip_if = options.delete(:skip_if))
    if skip_if.is_a?(Symbol)
      return if report.send(skip_if)
    elsif skip_if.respond_to?(:call)
      return if skip_if.call
    end
  end

  building_header ? add_header_cell(name) : add_row_cell(value, options)
end