Class: Udongo::FlexibleContent::ColumnWidthCalculator

Inherits:
Object
  • Object
show all
Defined in:
lib/udongo/flexible_content/column_width_calculator.rb

Constant Summary collapse

COLUMNS =
%w(width_xs width_sm width_md width_lg width_xl)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(row) ⇒ ColumnWidthCalculator

Returns a new instance of ColumnWidthCalculator.



8
9
10
# File 'lib/udongo/flexible_content/column_width_calculator.rb', line 8

def initialize(row)
  @row = row
end

Instance Attribute Details

#rowObject (readonly)

Returns the value of attribute row.



4
5
6
# File 'lib/udongo/flexible_content/column_width_calculator.rb', line 4

def row
  @row
end

Instance Method Details

#calculate(field) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/udongo/flexible_content/column_width_calculator.rb', line 12

def calculate(field)
  field = field.to_sym
  return 12 if field == :width_xs || field == :width_sm

  difference = 12 - total(field)
  difference.zero? ? 12 : difference
end

#hashed_valuesObject



20
21
22
23
24
25
# File 'lib/udongo/flexible_content/column_width_calculator.rb', line 20

def hashed_values
  COLUMNS.inject({}) do |result, column|
    result[column.to_sym] = calculate(column.to_sym)
    result
  end
end

#total(field) ⇒ Object



27
28
29
30
31
# File 'lib/udongo/flexible_content/column_width_calculator.rb', line 27

def total(field)
  sum = row.columns.sum(field.to_sym).to_i
  return 12 if sum > 12
  sum
end