Sha256: 026cb5ee5021a581add36017ef41116036a1cc8a5ac62d40c82de36bb3f7f003

Contents?: true

Size: 1.37 KB

Versions: 8

Compression:

Stored size: 1.37 KB

Contents

module Braintree
  class Plan
    include BaseModule

    attr_reader :add_ons
    attr_reader :billing_day_of_month
    attr_reader :billing_frequency
    attr_reader :created_at
    attr_reader :currency_iso_code
    attr_reader :description
    attr_reader :discounts
    attr_reader :id
    attr_reader :merchant_id
    attr_reader :name
    attr_reader :number_of_billing_cycles
    attr_reader :price
    attr_reader :trial_duration
    attr_reader :trial_duration_unit
    attr_reader :trial_period
    attr_reader :updated_at

    def self.all
      Configuration.gateway.plan.all
    end

    def initialize(gateway, attributes)
      @gateway = gateway
      set_instance_variables_from_hash(attributes)
      add_ons.map! { |attrs| AddOn._new(attrs) }
      discounts.map! { |attrs| Discount._new(attrs) }
      @price = Util.to_big_decimal(price)
    end

    class << self
      protected :new

      def create(*args)
        Configuration.gateway.plan.create(*args)
      end

      def create!(*args)
        Configuration.gateway.plan.create!(*args)
      end

      def find(*args)
        Configuration.gateway.plan.find(*args)
      end

      def update(*args)
        Configuration.gateway.plan.update(*args)
      end

      def update!(*args)
        Configuration.gateway.plan.update!(*args)
      end
    end

    def self._new(*args)
      self.new(*args)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
braintree-4.23.0 lib/braintree/plan.rb
braintree-4.22.0 lib/braintree/plan.rb
braintree-4.21.0 lib/braintree/plan.rb
braintree-4.20.0 lib/braintree/plan.rb
braintree-4.19.0 lib/braintree/plan.rb
braintree-4.18.0 lib/braintree/plan.rb
braintree-4.17.0 lib/braintree/plan.rb
braintree-4.16.0 lib/braintree/plan.rb