Module: SpreeCmCommissioner::PaymentMethodDecorator

Defined in:
app/models/spree_cm_commissioner/payment_method_decorator.rb

Constant Summary collapse

DISPLAY =
%i[both front_end back_end frontend_for_early_adopter mini_app].freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.prepended(base) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/models/spree_cm_commissioner/payment_method_decorator.rb', line 5

def self.prepended(base)
  base.const_set(:DISPLAY, DISPLAY)

  # Expose a dedicated class helper so services can call Spree::PaymentMethod.ticket_transfer
  # instead of duplicating lookup/creation logic.
  base.define_singleton_method(:ticket_transfer) do
    Spree::PaymentMethod::Check.available_on_back_end.find_or_create_by!(name: 'Ticket Transfer') do |method|
      method.stores = [Spree::Store.default]
    end
  end

  base.scope :available_on_frontend_for_early_adopter, -> { active.where(display_on: %i[both front_end frontend_for_early_adopter]) }

  # override
  base.scope :available_on_front_end, -> { active.where(display_on: %i[front_end both mini_app]) }
end

Instance Method Details

#mini_app?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'app/models/spree_cm_commissioner/payment_method_decorator.rb', line 22

def mini_app?
  display_on == 'mini_app'
end