Sha256: 479d2c8453a0c65c77e170ca305d0b1ca0f923104f52fb415996aa61dc40cdcd

Contents?: true

Size: 671 Bytes

Versions: 1

Compression:

Stored size: 671 Bytes

Contents

# name
# key
# rate_cents
module Freemium
  module SubscriptionPlan
    include Rates

    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
        has_and_belongs_to_many :coupons

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

        validates :name, presence: true
        validates :key, presence: true
        validates :rate_cents, presence: true

        serialize :features, Hash
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
freemium-ajb-0.0.4 lib/freemium/subscription_plan.rb