class StripeDiscount

Public Class Methods

stripe_class() click to toggle source
# File lib/stripe_model_callbacks/models/stripe_discount.rb, line 12
def self.stripe_class
  Stripe::Discount
end

Public Instance Methods

assign_from_stripe(object) click to toggle source
# File lib/stripe_model_callbacks/models/stripe_discount.rb, line 16
def assign_from_stripe(object)
  assign_attributes(
    created: object.respond_to?(:created) ? Time.zone.at(object.created) : nil,
    start: Time.zone.at(object.start),
    end: object.end ? Time.zone.at(object.end) : nil,
    stripe_coupon_id: object.coupon.id,
    stripe_customer_id: object.customer,
    stripe_subscription_id: object.subscription
  )

  assign_coupon_attributes(object)
  assign_other_coupon_attributes(object)
end

Private Instance Methods

assign_coupon_attributes(object) click to toggle source
# File lib/stripe_model_callbacks/models/stripe_discount.rb, line 32
def assign_coupon_attributes(object)
  assign_attributes(
    coupon_amount_off_cents: object.coupon.amount_off ? Money.new(object.coupon.amount_off, object.coupon.currency) : nil,
    coupon_created: Time.zone.at(object.coupon.created),
    coupon_currency: object.coupon.currency,
    coupon_duration: object.coupon.duration,
    coupon_duration_in_months: object.coupon.duration_in_months,
    coupon_livemode: object.coupon.livemode
  )
end
assign_other_coupon_attributes(object) click to toggle source
# File lib/stripe_model_callbacks/models/stripe_discount.rb, line 43
def assign_other_coupon_attributes(object)
  assign_attributes(
    coupon_max_redemptions: object.coupon.max_redemptions,
    coupon_metadata: JSON.generate(object.coupon.try(:metadata)),
    coupon_percent_off: object.coupon.percent_off,
    coupon_redeem_by: object.coupon.redeem_by ? Time.zone.at(object.coupon.redeem_by) : nil,
    coupon_times_redeemed: object.coupon.times_redeemed,
    coupon_valid: object.coupon.valid
  )
end