Sha256: 7fb442de9e5695e86a4d1d13274fa451d929bcad895c484b8f72b9c921b16b61

Contents?: true

Size: 703 Bytes

Versions: 2

Compression:

Stored size: 703 Bytes

Contents

module Bodega
  module PaymentMethod
    class Base
      class << self
        def options(*new_options)
          option_namespace = self.name.split('::').pop.underscore
          Bodega.class_eval do
            option option_namespace do
              options(*new_options.flatten)
            end
          end
        end
      end

      attr_accessor :options, :order

      def checkout_url(success_url, cancel_url)
        raise "Implement #{self.class.name}#checkout_url"
      end

      def complete!
        raise "Implement #{self.class.name}#complete!"
      end

      def initialize(order, options)
        self.order = order
        self.options = options
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bodega-0.3.0 lib/bodega/payment_method/base.rb
bodega-0.2.0 lib/bodega/payment_method/base.rb