Class: PureDocx::Constructors::TableColumn

Inherits:
Object
  • Object
show all
Defined in:
lib/puredocx/constructors/table_column.rb

Constant Summary collapse

MAX_TABLE_WIDTH =
9_355

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client_table_width, client_columns_width, columns_count) ⇒ TableColumn

Returns a new instance of TableColumn.



8
9
10
11
12
# File 'lib/puredocx/constructors/table_column.rb', line 8

def initialize(client_table_width, client_columns_width, columns_count)
  @client_table_width   = client_table_width
  @client_columns_width = client_columns_width
  @columns_count        = columns_count
end

Instance Attribute Details

#client_columns_widthObject (readonly)

Returns the value of attribute client_columns_width.



6
7
8
# File 'lib/puredocx/constructors/table_column.rb', line 6

def client_columns_width
  @client_columns_width
end

#columns_countObject (readonly)

Returns the value of attribute columns_count.



6
7
8
# File 'lib/puredocx/constructors/table_column.rb', line 6

def columns_count
  @columns_count
end

Instance Method Details

#calculate_default_widthObject



30
31
32
33
34
# File 'lib/puredocx/constructors/table_column.rb', line 30

def calculate_default_width
  return (table_width / columns_count)          if client_columns_width.nil?
  return (table_width - total_params_width / 1) if client_columns_width.none?(&:nil?)
  ((table_width - total_params_width) / client_columns_width.select(&:nil?).size)
end

#columns_widthObject



14
15
16
17
18
19
20
# File 'lib/puredocx/constructors/table_column.rb', line 14

def columns_width
  default_width = calculate_default_width
  ensure_correct_table_max_width! unless total_params_width.nil?

  return [default_width] * columns_count if client_columns_width.nil?
  client_columns_width.map { |item| item.nil? ? default_width : item }
end

#table_widthObject



22
23
24
# File 'lib/puredocx/constructors/table_column.rb', line 22

def table_width
  @client_table_width || MAX_TABLE_WIDTH
end

#total_params_widthObject



26
27
28
# File 'lib/puredocx/constructors/table_column.rb', line 26

def total_params_width
  @total_params_width ||= client_columns_width&.compact&.inject(:+)
end