Skip to content

2.0.0

Compare
Choose a tag to compare
@jonhue jonhue released this 04 Jun 10:44

Breaking Changes:

  • Change Pusher/DeliveryMethod API to not push immediately when initialized. Important: If you have any custom
    pushers, you need to add a call method to it and move any code out of initialize (except
    code that is just doing initialization) and into the call method. [#49] (#55)

  • Groups should now be defined using callables like -> { where(subscriber: true) }. [#44] (#84)

  • notification_subscribers/notification_subscribables now return Subscription instances instead of actual subscribers/subscribables. [#70] (#87)

  • Pushers/Delivery methods should now be in the NotificationPusher::DeliveryMethod namespace. [#58] (#88)

  • Introduced a base class for pushers/delivery methods. Your custom pushers should now extend NotificationPusher::DeliveryMethod::Base. The class already implements the necessary initialization of instance vars. From your call method, you can access notification and options. [#58] (#88)

  • Renamed the define_pusher configuration option to register_delivery_method. [#58] (#88)

  • Renamed the push method to deliver and the pusher/delivery method attributes from :pusher to :delivery_method and from :pusher_options to :delivery_options. [#58] (#88)

  • register_delivery_method (formerly define_pusher) now takes a name:symbol, the class name of the delivery method class_name:symbol and an options hash (optional). [#51] (#89)

    NotificationPusher.configure do |config|
      config.register_delivery_method :email, :ActionMailer, from: 'my@email.com'
    end
  • Removed the NotificationSettings::Settings class (& database table) that held settings & status of a target/subscription. This information is now stored directly in the target/subscription records. The new settings field uses Hashie::Mash. Therefore, its API changed dramatically. [#38] (#95)

  • Added form objects that significantly reduce the work required to build a settings form. [#38] (#95)

  • All used statuses & notification categories must now be configured in the NotificationSettings initializer. [#38] (#95)

  • When using the ActionMailer delivery method with NotificationRenderer, 'notification-renderer' must be required explicitly. Otherwise the delivery method expects :mailer and :action options that specify a custom mailer. [#53] (#101)


3c3d719 [#53] Add an ActionMailer notification-pusher that lets you use existing mailers and templates (#101)
7cc892e [#38] Use Hash.new({}) for category_settings (#95)
2114610 [#96] CI not catching RuboCop & RSpec errors (#99)
7bcdd63 [#97] Allow automatic merging without approving reviews (#98)
8f9679e [#52] Allow Notification#target to be optional to allow more flexible sending to a dynamic "group" (#94)
f268974 [#92] Fix auto merge (#93)
d7dd25f [#51] Swappable pushers (separate pusher name/key from pusher class) (#91)
5926392 [#48] deliver not called on NotificationMailer.push (#89)
6a98464 [#70] Cant notify subscribers (#87)
4159cb3 [#58] Rename Pusher to DeliveryMethod (#88)
3c03ab6 [#85] Remove notification-pusher-actioncable (#86)
9f9f96a [#7] Write specs (#84)
dda30f0 [#34] Document in notification-settings that rails g notification_handler:install must be run prior to rails g notification_settings:install (#81)
5a0bfd3 [#60] Rails 5.1 support (#79)
863aab9 [#77] Enable auto merge (#78)
2117e9c Update rubocop to version 0.68.1 (#76)
fa4c54a Update rubocop to version 0.68.0 (#75)
2631305 Update rubocop-rspec: 1.27.0 → 1.29.0 (minor) (#65)
85de34f Use create_notification_setting! method on after_create_commit callback (#69)
af99f40 [#72] Fix travis (#73)
90164c1 Update .travis.yml
f59ab4e Change pushers to not immediately push when initialized (#55)
ec47c40 [#45] Fix errors in initialize_pusher (#46)
bb46dab [#33] Automatically build notification_setting if object doesn't have one yet (#40)
b6b1a92 [#35] Treat notifications to be enabled by default (#37)
04841c3 Fix: method_missing needs to be a class method (#32)
5044265 [#26] Update Readmes (#31)