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