Sha256: f31e7d0ebf691194105fb2cc3dfe74403d474f053cc98de09f9fe841c4b48270

Contents?: true

Size: 654 Bytes

Versions: 3

Compression:

Stored size: 654 Bytes

Contents

module Susply
  module OwnerMethods
    def self.included(base)
      base.extend ClassMethods
      base.class_eval do
        has_many :subscriptions, class_name: 'Susply::Subscription',
          foreign_key: 'owner_id'  
        has_many :payments, class_name: 'Susply::Payment',
          foreign_key: 'owner_id'  
      end
    end

    module ClassMethods
    end

    def has_active_subscription?
      active_subscription.present?
    end

    def active_subscription
      subscriptions.detect(&:active?)
    end

    def most_recently_deactivated_subscription
      subscriptions.reject(&:active?).max_by(&:deactivated_at)
    end  
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
susply-1.0.0 app/services/susply/owner_methods.rb
susply-0.0.2 app/services/susply/owner_methods.rb
susply-0.0.1 app/services/susply/owner_methods.rb