Module: Freemium::SubscriptionPlan

Includes:
Rates
Included in:
SubscriptionPlan
Defined in:
lib/freemium/subscription_plan.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Rates

#daily_rate, #monthly_rate, #paid?, #yearly_rate

Class Method Details

.included(base) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/freemium/subscription_plan.rb', line 11

def self.included(base)
  base.class_eval do
    # yes, subscriptions.subscription_plan_id may not be null, but
    # this at least makes the delete not happen if there are any active.
    has_many :subscriptions, :dependent => :nullify, :class_name => "Subscription", :foreign_key => :subscription_plan_id
    has_and_belongs_to_many :coupons, :class_name => "SubscriptionPlan",
      :join_table => :coupons_subscription_plans, :foreign_key => :subscription_plan_id, :association_foreign_key => :coupon_id

    composed_of :rate, :class_name => 'Money', :mapping => [ %w(rate_cents cents) ], :allow_nil => true

    validates_uniqueness_of :redemption_key, :allow_nil => true, :allow_blank => true
    validates_presence_of :name
    validates_presence_of :rate_cents
  end
end

Instance Method Details

#featuresObject



27
28
29
# File 'lib/freemium/subscription_plan.rb', line 27

def features
  Freemium::FeatureSet.find(self.feature_set_id)
end