Sha256: 00c40ec8acd7cc85827d66c028252df402b4001c82659eee098627dfd84a6a8a

Contents?: true

Size: 601 Bytes

Versions: 5

Compression:

Stored size: 601 Bytes

Contents

module Pay
  class Merchant < Pay::ApplicationRecord
    belongs_to :owner, polymorphic: true

    validates :processor, presence: true

    store_accessor :data, :onboarding_complete

    delegate_missing_to :pay_processor

    def self.pay_processor_for(name)
      "Pay::#{name.to_s.classify}::Merchant".constantize
    end

    def pay_processor
      return if processor.blank?
      @pay_processor ||= self.class.pay_processor_for(processor).new(self)
    end

    def onboarding_complete?
      ActiveModel::Type::Boolean.new.cast(data&.fetch("onboarding_complete")) || false
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pay-7.3.0 app/models/pay/merchant.rb
pay-7.2.1 app/models/pay/merchant.rb
pay-7.1.1 app/models/pay/merchant.rb
pay-7.1.0 app/models/pay/merchant.rb
pay-7.0.0 app/models/pay/merchant.rb