Sha256: 90126510d83446d9c8c8cdebd55d97e00b73fec43afa2852dd73129e31a66d15

Contents?: true

Size: 1023 Bytes

Versions: 21

Compression:

Stored size: 1023 Bytes

Contents

module Recurly
  # Redemptions are not top-level resources, but they can be accessed (and
  # created) through {Coupon} instances.
  #
  # @example
  #   coupon = Coupon.find "summer2011"
  #   coupon.redemptions.each { |r| p r }
  #   coupon.redeem Account.find("groupon_lover")
  class Redemption < Resource
    # @return [Coupon]
    belongs_to :coupon

    # @return [Account]
    belongs_to :account, :readonly => false

    # @return [Subscription]
    belongs_to :subscription

    # @return [Invoice]
    belongs_to :invoice

    define_attribute_methods %w(
      uuid
      single_use
      total_discounted_in_cents
      currency
      state
      coupon_code
      subscription_uuid
      created_at
      updated_at
    )

    def save
      return false if persisted?
      copy_from coupon.redeem account, currency
      true
    rescue Recurly::API::UnprocessableEntity => e
      apply_errors e
      false
    end

    # Redemptions are only writeable through {Coupon} instances.
    embedded!
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
recurly-2.9.3 lib/recurly/redemption.rb
recurly-2.8.3 lib/recurly/redemption.rb
recurly-2.7.9 lib/recurly/redemption.rb
recurly-2.9.2 lib/recurly/redemption.rb
recurly-2.8.2 lib/recurly/redemption.rb
recurly-2.7.8 lib/recurly/redemption.rb
recurly-2.9.1 lib/recurly/redemption.rb
recurly-2.8.1 lib/recurly/redemption.rb
recurly-2.7.7 lib/recurly/redemption.rb
recurly-2.10.1 lib/recurly/redemption.rb
recurly-2.10.0 lib/recurly/redemption.rb
recurly-2.9.0 lib/recurly/redemption.rb
recurly-2.8.0 lib/recurly/redemption.rb
recurly-2.8.0.rc3 lib/recurly/redemption.rb
recurly-2.7.6 lib/recurly/redemption.rb
recurly-2.8.0.rc2 lib/recurly/redemption.rb
recurly-2.8.0.rc1 lib/recurly/redemption.rb
recurly-2.7.5 lib/recurly/redemption.rb
recurly-2.7.4 lib/recurly/redemption.rb
recurly-2.7.3 lib/recurly/redemption.rb