Skip to content

Commit

Permalink
Add some deprecations & backwards compatibility to make upgrading easier
Browse files Browse the repository at this point in the history
  • Loading branch information
excid3 committed Jan 25, 2024
1 parent eb99e2c commit 00bc011
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 7 deletions.
4 changes: 2 additions & 2 deletions UPGRADE.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ class CommentNotifier < Noticed::Event
config.message = :to_websocket
end

def to_websocket
def to_websocket(notification)
{ foo: :bar }
end
end
Expand Down Expand Up @@ -172,7 +172,7 @@ end

### Deliver Later

Notifications are always delivered later now. The `.deliver_later` method has been removed. Instead you can just user `.deliver`
Notifications are always delivered later now. `deliver` and `deliver_later` perform the same action.

### Required Params

Expand Down
15 changes: 10 additions & 5 deletions app/models/concerns/noticed/deliverable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ def bulk_deliver_by(name, options = {})
def deliver_by(name, options = {})
raise NameError, "#{name} has already been used for this Notifier." if delivery_methods.has_key?(name)

if name == :database
Noticed.deprecator.warn <<-WARNING.squish
The :database delivery method has been deprecated and does nothing. Notifiers automatically save to the database now.
WARNING
return
end

config = ActiveSupport::OrderedOptions.new.merge(options)
yield config if block_given?
delivery_methods[name] = DeliverBy.new(name, config)
Expand Down Expand Up @@ -67,11 +74,7 @@ def with(params)
def deliver(recipients = nil, options = {})
new.deliver(recipients, options)
end

# For backwards compatibility
def deliver_later(recipients = nil, options = {})
deliver(recipients, options)
end
alias_method :deliver_later, :deliver
end

# CommentNotifier.deliver(User.all)
Expand Down Expand Up @@ -106,6 +109,8 @@ def deliver(recipients = nil, options = {})

self
end
alias_method :deliver_later, :deliver


def recipient_attributes_for(recipient)
{
Expand Down
3 changes: 3 additions & 0 deletions test/dummy/app/notifiers/deprecated_notifier.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
class DeprecatedNotifier < Noticed::Base
param :message
end
8 changes: 8 additions & 0 deletions test/notifier_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -139,4 +139,12 @@ class NotifierTest < ActiveSupport::TestCase
end
end
end

test "deprecations don't cause problems" do
assert_nothing_raised do
Noticed.deprecator.silence do
DeprecatedNotifier.with(message: "test").deliver_later
end
end
end
end

0 comments on commit 00bc011

Please sign in to comment.