Sha256: 3f5ca307eabbc179a7e30b9ab47cbea83b05fc78df6909c9e841d9c8b1b46147

Contents?: true

Size: 663 Bytes

Versions: 6

Compression:

Stored size: 663 Bytes

Contents

module Udongo
  module FlexibleContent
    class ColumnWidthCalculator
      attr_reader :row

      COLUMNS = %w(width_xs width_sm width_md width_lg width_xl)

      def initialize(row)
        @row = row
      end

      def calculate(field)
        difference = 12 - total(field)
        return 12 if difference.zero?
        difference
      end

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

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

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
udongo-2.0.4 lib/udongo/flexible_content/column_width_calculator.rb
udongo-2.0.3 lib/udongo/flexible_content/column_width_calculator.rb
udongo-2.0.2 lib/udongo/flexible_content/column_width_calculator.rb
udongo-2.0.1 lib/udongo/flexible_content/column_width_calculator.rb
udongo-2.0.0 lib/udongo/flexible_content/column_width_calculator.rb
udongo-1.0.4 lib/udongo/flexible_content/column_width_calculator.rb