class PureDocx::Constructors::TableColumn

Constants

MAX_TABLE_WIDTH

Attributes

client_columns_width[R]
columns_count[R]

Public Class Methods

new(client_table_width, client_columns_width, columns_count) click to toggle source
# 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

Public Instance Methods

calculate_default_width() click to toggle source
# 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_width() click to toggle source
# 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_width() click to toggle source
# File lib/puredocx/constructors/table_column.rb, line 22
def table_width
  @client_table_width || MAX_TABLE_WIDTH
end
total_params_width() click to toggle source
# File lib/puredocx/constructors/table_column.rb, line 26
def total_params_width
  @total_params_width ||= client_columns_width&.compact&.inject(:+)
end

Private Instance Methods

ensure_correct_table_max_width!() click to toggle source
# File lib/puredocx/constructors/table_column.rb, line 38
def ensure_correct_table_max_width!
  return unless total_params_width > MAX_TABLE_WIDTH
  msg = %(Wrong table width: #{total_params_width}, please change it! Table width should be 10000.)
  raise TableColumnsWidthError, msg
end