noticed 2.8.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dec070db3dc9527a542e8f4cb57edc6dd61397c8cb870dd3efbb4dccd905b410
4
- data.tar.gz: 9ca50907997ea442ff27c305d679aa7ed4e02d80658938bc7f5b75e4888ce95d
3
+ metadata.gz: 20ca096170ce0f9fa8fd0e52cae0546de54f044ebfeef249e72244208a4b75e0
4
+ data.tar.gz: 42c580d5326bb34b7c9624d904a35a1009b1880d901e8a585b16303495918c4f
5
5
  SHA512:
6
- metadata.gz: 9539c8bc4303864682d8270eebb39b0e1e79b0db7e50b8674e0cdae9c5bb1ec59b5ae556309162e91c74e678bcfb37369414edbeeaebb081a1822395de79e561
7
- data.tar.gz: 67190713e1fefee0a28458659e04dd5a4d3984b620e7ccb080e1e6e5dc6d49ec06b63d6c74ae8ab1a6b4dda99e1a2dc4bfb43a0495b9271015e45762c378ad21
6
+ metadata.gz: 804c185cf057a92f6d8745c24131819ef2fa41bb2098ff277a70f9de14b4096650f4de88b50d571c1f6f83105017760c711fe54853cdf1bfd8b786d9de7074b3
7
+ data.tar.gz: c1a845920409b634c596a8e8a38ca5f475b76000418e066feb196e511fe055ddae9abf4cac2bdf52594afa741417ad64eaf57d2a0e834bd011f9298ef72b2bbc
data/README.md CHANGED
@@ -4,9 +4,6 @@
4
4
 
5
5
  [![Build Status](https://github.com/excid3/noticed/workflows/Tests/badge.svg)](https://github.com/excid3/noticed/actions) [![Gem Version](https://badge.fury.io/rb/noticed.svg)](https://badge.fury.io/rb/noticed)
6
6
 
7
- > [!IMPORTANT]
8
- > **⚠️ Upgrading from V1? Read the [Upgrade Guide](https://github.com/excid3/noticed/blob/main/UPGRADE.md)!**
9
-
10
7
  Noticed is a gem that allows your application to send notifications of varying types, over various mediums, to various recipients. Be it a Slack notification to your own team when some internal event occurs or a notification to your user, sent as a text message, email, and real-time UI element in the browser, Noticed supports all of the above (at the same time)!
11
8
 
12
9
  Noticed implements two top-level types of delivery methods:
@@ -5,8 +5,8 @@ class BulkDeliveryMethods::<%= class_name %> < ApplicationBulkDeliveryMethod
5
5
  # bulk_deliver_by :<%= file_path %>, class: "<%= class_name %>"
6
6
  # end
7
7
 
8
- # Specify the config options your delivery method requires in its config block
9
- required_options # :foo, :bar
8
+ # Specify required options for the deliver_by config block
9
+ # required_options :foo, :bar
10
10
 
11
11
  def deliver
12
12
  # Logic for sending the notification
@@ -5,8 +5,8 @@ class DeliveryMethods::<%= class_name %> < ApplicationDeliveryMethod
5
5
  # deliver_by :<%= file_path %>, class: "<%= class_name %>"
6
6
  # end
7
7
 
8
- # Specify the config options your delivery method requires in its config block
9
- required_options # :foo, :bar
8
+ # Specify required options for the deliver_by config block
9
+ # required_options :foo, :bar
10
10
 
11
11
  def deliver
12
12
  # Logic for sending the notification
@@ -29,6 +29,8 @@ module Noticed
29
29
  request.body = json.to_json
30
30
  elsif (form = args.delete(:form))
31
31
  request.form_data = form
32
+ elsif (body = args.delete(:body))
33
+ request.body = body
32
34
  end
33
35
 
34
36
  logger.debug("POST #{url}")
@@ -10,7 +10,8 @@ module Noticed
10
10
  basic_auth: evaluate_option(:basic_auth),
11
11
  headers: evaluate_option(:headers),
12
12
  json: evaluate_option(:json),
13
- form: evaluate_option(:form)
13
+ form: evaluate_option(:form),
14
+ body: evaluate_option(:body)
14
15
  )
15
16
  end
16
17
  end
data/lib/noticed/coder.rb CHANGED
@@ -11,7 +11,11 @@ module Noticed
11
11
 
12
12
  def self.dump(data)
13
13
  return if data.nil?
14
- ActiveJob::Arguments.send(:serialize_argument, data)
14
+ if Rails.gem_version >= Gem::Version.new("8.1.0.beta1")
15
+ ActiveJob::Arguments.serialize(data)
16
+ else
17
+ ActiveJob::Arguments.send(:serialize_argument, data)
18
+ end
15
19
  end
16
20
  end
17
21
  end
@@ -0,0 +1,24 @@
1
+ module Noticed
2
+ module DeliveryMethods
3
+ class ActionPushNative < DeliveryMethod
4
+ required_options :devices, :format
5
+
6
+ def deliver
7
+ notification = evaluate_option(:silent) ? notification_class : notification_class.silent
8
+
9
+ notification
10
+ .with_apple(evaluate_option(:with_apple))
11
+ .with_google(evaluate_option(:with_google))
12
+ .with_data(evaluate_option(:with_data))
13
+ .new(**evaluate_option(:format))
14
+ .deliver_later_to(evaluate_option(:devices))
15
+ end
16
+
17
+ def notification_class
18
+ fetch_constant(:class) || ApplicationPushNotification
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ ActiveSupport.run_load_hooks :noticed_delivery_methods_action_push_native, Noticed::DeliveryMethods::ActionPushNative
@@ -9,7 +9,8 @@ module Noticed
9
9
  basic_auth: evaluate_option(:basic_auth),
10
10
  headers: evaluate_option(:headers),
11
11
  json: evaluate_option(:json),
12
- form: evaluate_option(:form)
12
+ form: evaluate_option(:form),
13
+ body: evaluate_option(:body)
13
14
  )
14
15
  end
15
16
  end
@@ -2,6 +2,10 @@ module Noticed
2
2
  class Engine < ::Rails::Engine
3
3
  isolate_namespace Noticed
4
4
 
5
+ initializer "noticed.deprecator" do |app|
6
+ app.deprecators[:noticed] = Noticed.deprecator if app.respond_to?(:deprecators)
7
+ end
8
+
5
9
  initializer "noticed.has_notifications" do
6
10
  ActiveSupport.on_load(:active_record) do
7
11
  include Noticed::HasNotifications
@@ -1,3 +1,3 @@
1
1
  module Noticed
2
- VERSION = "2.8.0"
2
+ VERSION = "2.9.0"
3
3
  end
data/lib/noticed.rb CHANGED
@@ -1,53 +1,30 @@
1
1
  require "noticed/version"
2
2
  require "noticed/engine"
3
3
 
4
+ require "zeitwerk"
5
+
6
+ loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
7
+ loader.ignore("#{__dir__}/generators")
8
+ loader.setup
9
+
4
10
  module Noticed
5
11
  include ActiveSupport::Deprecation::DeprecatedConstantAccessor
6
12
 
7
13
  def self.deprecator # :nodoc:
8
- @deprecator ||= ActiveSupport::Deprecation.new
14
+ @deprecator ||= ActiveSupport::Deprecation.new("3.0", "Noticed")
9
15
  end
10
16
 
11
17
  deprecate_constant :Base, "Noticed::Event", deprecator: deprecator
12
18
 
13
- autoload :ApiClient, "noticed/api_client"
14
- autoload :BulkDeliveryMethod, "noticed/bulk_delivery_method"
15
- autoload :Coder, "noticed/coder"
16
- autoload :DeliveryMethod, "noticed/delivery_method"
17
- autoload :HasNotifications, "noticed/has_notifications"
18
- autoload :NotificationChannel, "noticed/notification_channel"
19
- autoload :RequiredOptions, "noticed/required_options"
20
- autoload :Translation, "noticed/translation"
21
-
22
- module BulkDeliveryMethods
23
- autoload :Bluesky, "noticed/bulk_delivery_methods/bluesky"
24
- autoload :Discord, "noticed/bulk_delivery_methods/discord"
25
- autoload :Slack, "noticed/bulk_delivery_methods/slack"
26
- autoload :Test, "noticed/bulk_delivery_methods/test"
27
- autoload :Webhook, "noticed/bulk_delivery_methods/webhook"
28
- end
29
-
30
19
  module DeliveryMethods
31
20
  include ActiveSupport::Deprecation::DeprecatedConstantAccessor
32
21
  deprecate_constant :Base, "Noticed::DeliveryMethod", deprecator: Noticed.deprecator
33
-
34
- autoload :ActionCable, "noticed/delivery_methods/action_cable"
35
- autoload :Email, "noticed/delivery_methods/email"
36
- autoload :Fcm, "noticed/delivery_methods/fcm"
37
- autoload :Ios, "noticed/delivery_methods/ios"
38
- autoload :MicrosoftTeams, "noticed/delivery_methods/microsoft_teams"
39
- autoload :Slack, "noticed/delivery_methods/slack"
40
- autoload :Test, "noticed/delivery_methods/test"
41
- autoload :TwilioMessaging, "noticed/delivery_methods/twilio_messaging"
42
- autoload :VonageSms, "noticed/delivery_methods/vonage_sms"
43
- autoload :Webhook, "noticed/delivery_methods/webhook"
44
22
  end
45
23
 
46
24
  mattr_accessor :parent_class
47
25
  @@parent_class = "Noticed::ApplicationJob"
48
26
 
49
- class ValidationError < StandardError
50
- end
27
+ class ValidationError < StandardError; end
51
28
 
52
29
  class ResponseUnsuccessful < StandardError
53
30
  attr_reader :response
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: noticed
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.0
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Oliver
@@ -67,6 +67,7 @@ files:
67
67
  - lib/noticed/coder.rb
68
68
  - lib/noticed/delivery_method.rb
69
69
  - lib/noticed/delivery_methods/action_cable.rb
70
+ - lib/noticed/delivery_methods/action_push_native.rb
70
71
  - lib/noticed/delivery_methods/discord.rb
71
72
  - lib/noticed/delivery_methods/email.rb
72
73
  - lib/noticed/delivery_methods/fcm.rb
@@ -101,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
101
102
  - !ruby/object:Gem::Version
102
103
  version: '0'
103
104
  requirements: []
104
- rubygems_version: 3.7.0
105
+ rubygems_version: 3.7.2
105
106
  specification_version: 4
106
107
  summary: Notifications for Ruby on Rails applications
107
108
  test_files: []