Module: Freemium::CouponRedemption
- Included in:
- CouponRedemption
- Defined in:
- lib/freemium/coupon_redemption.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/freemium/coupon_redemption.rb', line 4 def self.included(base) base.class_eval do belongs_to :subscription, :class_name => "Subscription" belongs_to :coupon, :class_name => "Coupon" before_create :set_redeemed_on validates_presence_of :coupon validates_presence_of :subscription validates_uniqueness_of :coupon_id, :scope => :subscription_id, :message => "has already been applied" validate :custom_validation, :on => :create end end |
Instance Method Details
#active?(date = Date.today) ⇒ Boolean
22 23 24 |
# File 'lib/freemium/coupon_redemption.rb', line 22 def active?(date = Date.today) expires_on ? date <= self.expires_on : true end |
#expire! ⇒ Object
18 19 20 |
# File 'lib/freemium/coupon_redemption.rb', line 18 def expire! self.update_attribute :expired_on, Date.today end |
#expires_on ⇒ Object
26 27 28 29 |
# File 'lib/freemium/coupon_redemption.rb', line 26 def expires_on return nil unless self.coupon.duration_in_months self.redeemed_on + self.coupon.duration_in_months.months end |
#redeemed_on ⇒ Object
31 32 33 |
# File 'lib/freemium/coupon_redemption.rb', line 31 def redeemed_on self['redeemed_on'] || Date.today end |