Sha256: 5efee09bdb29117eb814d725d576d8148cd637247f8c51867dbcdf93a09e394e

Contents?: true

Size: 981 Bytes

Versions: 1

Compression:

Stored size: 981 Bytes

Contents

module Shopper
  module CartPage
    class CartPresenter < Rectify::Presenter
      def initialize(order, coupon = nil, items = nil)
        @order = order
        @coupon = Shopper::CartPage::CouponDecorator
                  .new(coupon || order.coupon || Shopper::Coupon.new)
        @items = Shopper::ItemsTable::ItemDecorator
                 .for_collection(items || order.order_items, description: false)
      end

      attr_reader :coupon, :items

      def order_summary
        Shopper::OrderSummary::OrderDecorator.new(current_order, deficit_method: :show_zero)
      end

      def order_details
        Shopper::OrderDetails::OrderDecorator.new(@order, edit_link: true)
      end

      def checkout_path
        @checkout_path ||= begin
          step = Shopper::CheckoutManager.new(@order).minimal_accessible_step
          view_context.checkout_path(step)
        end
      end

      def cart_empty?
        @order.order_items.empty?
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shoppper-0.1.0 app/presenters/shopper/cart_page/cart_presenter.rb