Sha256: 87f363d92a657f247056b16b659f9c3d1c6c7df60d04113355ae3f32f6650e13

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

module SolidusPaypalBraintree
  class Configuration < ::Spree::Base
    PAYPAL_BUTTON_PREFERENCES = {
      color: { availables: %w[gold blue silver white black], default: 'white' },
      shape: { availables: %w[pill rect], default: 'rect' },
      label: { availables: %w[checkout credit pay buynow paypal installment], default: 'checkout' },
      tagline: { availables: %w[true false], default: 'false' },
      layout: { availables: %w[horizontal vertical], default: 'horizontal' },
      messaging: { availables: %w[true false], default: 'false' }
    }.freeze

    belongs_to :store, class_name: 'Spree::Store'

    validates :store, presence: true

    # Preferences for Paypal button
    PAYPAL_BUTTON_PREFERENCES.each do |name, desc|
      preference_name = "paypal_button_#{name}".to_sym
      attribute_name = "preferred_#{preference_name}".to_sym

      preference preference_name, :string, default: desc[:default]

      validates attribute_name, inclusion: desc[:availables]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
solidus_paypal_braintree-1.0.0 app/models/solidus_paypal_braintree/configuration.rb