Sha256: 32eee228d89d93312fd1e9616786ec6b8cf3790f1435aa4bc2615072487d2b47

Contents?: true

Size: 837 Bytes

Versions: 1

Compression:

Stored size: 837 Bytes

Contents

module Shopper
  module CheckoutPage
    class ProgressPresenter < Rectify::Presenter
      def initialize(steps, current_step, select_up_to_step)
        @steps = steps
        @current_step = current_step
        @select_up_to_step_index = @steps.index select_up_to_step
      end

      def steps
        @steps.each_with_index.map do |s, index|
          classes = 'step'
          classes += ' active' if active?(index)

          number = index + 1

          name = s.capitalize

          divider = !last?(index)

          { classes: classes, number: number, name: name, divider: divider }
        end
      end

      private

      def last?(index)
        @last_index ||= @steps.length - 1
        index == @last_index
      end

      def active?(index)
        index <= @select_up_to_step_index
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shoppper-0.1.0 app/presenters/shopper/checkout_page/progress_presenter.rb