Sha256: 677b1a684ad7e492ff06c34ed57f1c7d2b492d22a68c5b79455c2663e2fa0ecb
Contents?: true
Size: 1.42 KB
Versions: 9
Compression:
Stored size: 1.42 KB
Contents
module Stripe module Coupons include ConfigurationBuilder configuration_for :coupon do attr_accessor :name, :duration, :amount_off, :currency, :duration_in_months, :max_redemptions, :percent_off, :redeem_by validates_presence_of :id, :duration validates_presence_of :duration_in_months, :if => :repeating? validates_inclusion_of :duration, :in => %w(forever once repeating), :message => "'%{value}' is not one of 'forever', 'once' or 'repeating'" validates_inclusion_of :percent_off, in: 1..100, unless: ->(coupon) {coupon.percent_off.nil?} validates_numericality_of :percent_off, :greater_than => 0, unless: ->(coupon) {coupon.percent_off.nil?} validates_numericality_of :duration_in_months, :greater_than => 0, :if => :repeating? validates_numericality_of :max_redemptions, greater_than: 0, unless: ->(coupon) {coupon.max_redemptions.nil?} def initialize(*args) super @currency = 'usd' @max_redemptions = 1 end def repeating? duration == 'repeating' end def create_options { :name => name, :duration => duration, :percent_off => percent_off, :amount_off => amount_off, :currency => currency, :duration_in_months => duration_in_months, :max_redemptions => max_redemptions, :redeem_by => redeem_by } end end end end
Version data entries
9 entries across 9 versions & 1 rubygems