• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

simukappu / activity_notification / 17074615695

19 Aug 2025 03:39PM UTC coverage: 99.749%. Remained the same
17074615695

push

travis-ci

simukappu
Bump version to v2.4.0

3575 of 3584 relevant lines covered (99.75%)

1533.49 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/lib/activity_notification/orm/active_record/subscription.rb
1
require 'activity_notification/apis/subscription_api'
6✔
2

3
module ActivityNotification
6✔
4
  module ORM
6✔
5
    module ActiveRecord
6✔
6
      # Subscription model implementation generated by ActivityNotification.
7
      class Subscription < ::ActiveRecord::Base
6✔
8
        include SubscriptionApi
6✔
9
        self.table_name = ActivityNotification.config.subscription_table_name
6✔
10

11
        # Belongs to target instance of this subscription as polymorphic association.
12
        # @scope instance
13
        # @return [Object] Target instance of this subscription
14
        belongs_to :target,               polymorphic: true
6✔
15

16
        # Serialize parameters Hash
17
        # :nocov:
18
        if Rails.gem_version >= Gem::Version.new('7.1')
✔
19
          serialize  :optional_targets, type: Hash, coder: YAML
✔
20
        else
21
          serialize  :optional_targets, Hash
✔
22
        end
23
        # :nocov:
24

25
        validates  :target,               presence: true
6✔
26
        validates  :key,                  presence: true, uniqueness: { scope: :target }
6✔
27
        validates_inclusion_of :subscribing,          in: [true, false]
6✔
28
        validates_inclusion_of :subscribing_to_email, in: [true, false]
6✔
29
        validate   :subscribing_to_email_cannot_be_true_when_subscribing_is_false
6✔
30
        validates  :subscribed_at,            presence: true, if:     :subscribing
6✔
31
        validates  :unsubscribed_at,          presence: true, unless: :subscribing
6✔
32
        validates  :subscribed_to_email_at,   presence: true, if:     :subscribing_to_email
6✔
33
        validates  :unsubscribed_to_email_at, presence: true, unless: :subscribing_to_email
6✔
34
        validate   :subscribing_to_optional_target_cannot_be_true_when_subscribing_is_false
6✔
35

36
        # Selects filtered subscriptions by target instance.
37
        #   ActivityNotification::Subscription.filtered_by_target(@user)
38
        # is the same as
39
        #   @user.subscriptions
40
        # @scope class
41
        # @param [Object] target Target instance for filter
42
        # @return [ActiveRecord_AssociationRelation<Subscription>] Database query of filtered subscriptions
43
        scope :filtered_by_target,  ->(target) { where(target: target) }
24✔
44

45
        # Includes target instance with query for subscriptions.
46
        # @return [ActiveRecord_AssociationRelation<Subscription>] Database query of subscriptions with target
47
        scope :with_target,               -> { includes(:target) }
1,980✔
48

49
        # Selects unique keys from query for subscriptions.
50
        # @return [Array<String>] Array of subscription unique keys
51
        def self.uniq_keys
6✔
52
          # select method cannot be chained with order by other columns like created_at
53
          # select(:key).distinct.pluck(:key)
54
          pluck(:key).uniq
816✔
55
        end
56

57
      end
58
    end
59
  end
60
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc