Sha256: 9d56ee2d0efd45c89cc017131e93356dd27bc683a19129a1cca9077802b3462a

Contents?: true

Size: 680 Bytes

Versions: 20

Compression:

Stored size: 680 Bytes

Contents

# frozen_string_literal: true

module Nuntius
  class Subscriber < ApplicationRecord
    belongs_to :list, counter_cache: :subscribers_count
    belongs_to :nuntiable, polymorphic: true, optional: true

    scope :subscribed, -> { where(unsubscribed_at: nil) }

    def name
      [first_name, last_name].compact.join(" ").presence || email
    end

    def first_name
      return nuntiable.first_name if nuntiable.respond_to?(:first_name)

      super
    end

    def last_name
      return nuntiable.last_name if nuntiable.respond_to?(:last_name)

      super
    end

    def email
      return nuntiable.email if nuntiable.respond_to?(:email)

      super
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
nuntius-1.3.19 app/models/nuntius/subscriber.rb
nuntius-1.3.18 app/models/nuntius/subscriber.rb
nuntius-1.3.17 app/models/nuntius/subscriber.rb
nuntius-1.3.16 app/models/nuntius/subscriber.rb
nuntius-1.3.15 app/models/nuntius/subscriber.rb
nuntius-1.3.14 app/models/nuntius/subscriber.rb
nuntius-1.3.13 app/models/nuntius/subscriber.rb
nuntius-1.3.12 app/models/nuntius/subscriber.rb
nuntius-1.3.11 app/models/nuntius/subscriber.rb
nuntius-1.3.10 app/models/nuntius/subscriber.rb
nuntius-1.3.9 app/models/nuntius/subscriber.rb
nuntius-1.3.8 app/models/nuntius/subscriber.rb
nuntius-1.3.7 app/models/nuntius/subscriber.rb
nuntius-1.3.6 app/models/nuntius/subscriber.rb
nuntius-1.3.5 app/models/nuntius/subscriber.rb
nuntius-1.3.4 app/models/nuntius/subscriber.rb
nuntius-1.3.3 app/models/nuntius/subscriber.rb
nuntius-1.3.2 app/models/nuntius/subscriber.rb
nuntius-1.3.1 app/models/nuntius/subscriber.rb
nuntius-1.3.0 app/models/nuntius/subscriber.rb