Class: Udongo::FlexibleContent::ColumnWidthCalculator
- Inherits:
-
Object
- Object
- Udongo::FlexibleContent::ColumnWidthCalculator
- 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
-
#row ⇒ Object
readonly
Returns the value of attribute row.
Instance Method Summary collapse
- #calculate(field) ⇒ Object
- #hashed_values ⇒ Object
-
#initialize(row) ⇒ ColumnWidthCalculator
constructor
A new instance of ColumnWidthCalculator.
- #total(field) ⇒ Object
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
#row ⇒ Object (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_values ⇒ Object
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 |