nuntius 1.3.7 → 1.3.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9b687606f90025f60156f83577dbc1b9d4d2edecdc70f84e497141ff37476965
4
- data.tar.gz: 8f17f799c7d5c991bb8141cb29dd0e026651dc24993ab67e1fe5ed77f47aebfd
3
+ metadata.gz: af9d9733e3d00160f1bc577fcfebcf92ce187f5ec1c24f0275234db388c73a6e
4
+ data.tar.gz: fedc019067d2fa07b1d870efc98c37201b38994246f2458a8d6fa9b42f54f0c9
5
5
  SHA512:
6
- metadata.gz: 27c5d73a3fc860ecb126e2967f75c8d985faf47af0900d59b704be4cf8a00821525344570e1bd611d92fa3ea33689ed1d0420c6edc46d9d69fa2aae58b3b605a
7
- data.tar.gz: 1152e80c5e52d47adc53ac5519e328852874495534daf54b4e96491acd911bbdba9e0001f61b30a1491506432b3accd0bf49971487709ee36240d525c2a5026e
6
+ metadata.gz: 3df6eee0f723825cdbfa9d6b32ed96e5f51eb95169022138f0dd51cd1ae930eb3e6855ae8cb3c2d958d9720ac5edae2868c12693107bff7b7ebda893665e7c72
7
+ data.tar.gz: ac2e65dad9eba341791de05f4f921b4568924c8fc5e14d2b832c114cb8625e19868a29b60ac9414ba698a93595349fc0630f39b2ebedf59ccdc0dba39226efaf
data/README.md CHANGED
@@ -55,7 +55,7 @@ class Car < ApplicationRecord
55
55
  end
56
56
  ```
57
57
 
58
- Additionally you need to define an extension of the Nuntius::BaseMessenger for the same model with a matching name (in app/messengers):
58
+ Additionally you need to define an extension of the Nuntius::BaseMessenger for the same model with a matching name (in app/messengers). Messengers can set extra parameters, but also manipulate templates selected.
59
59
 
60
60
  ```ruby
61
61
  class CarMessenger < Nuntius::BaseMessenger
@@ -105,6 +105,11 @@ timebased_scope class method like so:
105
105
  class CarMessenger < Nuntius::BaseMessenger
106
106
  # time_range is a range, for a before scope the time_range the interval is added to the current
107
107
  # time, the end of the range is 1 hour from the start.
108
+ #
109
+ # So say the interval is "10 days", the timerange will be:
110
+ # from: today + 10 days - 1 hour
111
+ # until: today + 10 days
112
+ # So it basically selects all Car's with a tuneup_at within 10 days from now (in a 1 hour window)
108
113
  timebased_scope :before_tuneup do |time_range, metadata|
109
114
  cars = Car.where(tuneup_at: time_range)
110
115
  cars = cars.where(color: metadata['color']) if metadata['color'].present?
@@ -113,6 +118,11 @@ class CarMessenger < Nuntius::BaseMessenger
113
118
 
114
119
  # For an after scope the time_range the interval is taken from the current time, the end of the
115
120
  # range is 1 hour from its start.
121
+ #
122
+ # So say the interval is "10 days", the timerange will be:
123
+ # from: today - 10 days - 1 hour
124
+ # until: today - 10 days
125
+ # So it basically selects all Car's with a tuneup_at 10 days since now (in a 1 hour window)
116
126
  timebased_scope :after_tuneup do |time_range, metadata|
117
127
  cars = Car.where(tuneup_at: time_range)
118
128
  cars = cars.where(color: metadata['color']) if metadata['color'].present?
@@ -131,8 +141,9 @@ following formats:
131
141
  - N week(s)
132
142
  - N month(s)
133
143
 
134
- To send timebased messages you need to execute Nuntius::TimestampBasedMessagesRunner.call, you could do this
135
- in a cronjob every 5 minutes with "bundle exec rails runner Nuntius::TimestampBasedMessagesRunner.call"
144
+ To send timebased messages you need to execute Nuntius::TimebasedEventsJob.perform, you could do this
145
+ in a cronjob every 5 minutes with "bundle exec rails runner 'Nuntius::TimebasedEventsJob.perform'".
146
+ Beter even is using Sidekiq::Cron or GoodJob
136
147
 
137
148
  ### Direct
138
149
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nuntius
4
- class TimebasedEventsRunner < ApplicationRunner
4
+ class TimebasedEventsJob < ApplicationJob
5
5
  def perform
6
6
  Nuntius::Template.where.not(interval: nil).each do |template|
7
7
  messenger = Nuntius::BaseMessenger.messenger_for_class(template.klass)
@@ -9,7 +9,8 @@ module Nuntius
9
9
 
10
10
  define_callbacks :action, terminator: ->(_target, result_lambda) { result_lambda.call == false }
11
11
 
12
- attr_reader :templates, :attachments, :event, :object, :params
12
+ attr_reader :attachments, :event, :object, :params
13
+ attr_accessor :templates
13
14
 
14
15
  def initialize(object, event, params = {})
15
16
  @object = object
@@ -9,7 +9,7 @@ class TemplatePresenter < ApplicationPresenter
9
9
  messenger = Nuntius::BaseMessenger.messenger_for_class(class_name)
10
10
  messenger.instance_methods(false).each do |m|
11
11
  events << [m, m, {"data-chain": class_name,
12
- "data-timebased": messenger.timebased_scopes.include?(m)}]
12
+ "data-timebased": messenger.timebased_scopes.include?(m) ? "Y" : "N"}]
13
13
  end
14
14
  end
15
15
  events.sort_by(&:first)
@@ -21,12 +21,12 @@
21
21
  .col-span-6 data-toggle-target="insertion"
22
22
 
23
23
  template data-toggle-target='toggleable' data-toggle-not-value='Custom'
24
- .col-span-6.deze data-controller='toggle' data-toggle-attr='data-timebased'
24
+ .col-span-6 data-controller='toggle' data-toggle-attr='data-timebased'
25
25
  .grid.grid-cols-12.gap-4
26
26
  .col-span-6
27
27
  = f.input :event, collection: template.all_events, include_blank: false, chain_to: 'template[klass]', input_html: { data: { 'toggle-target' => 'input' } }, as: :dropdown
28
28
  .col-span-6 data-toggle-target="insertion"
29
- template data-toggle-target='toggleable' data-toggle-value='true'
29
+ template data-toggle-target='toggleable' data-toggle-value='Y'
30
30
  = f.input :interval
31
31
 
32
32
  template data-toggle-target='toggleable' data-toggle-value='Custom'
@@ -41,7 +41,6 @@ module Nuntius
41
41
  option :logger, default: -> { Rails.logger }, proc: true
42
42
  option :admin_authentication_module, default: "Auxilium::Concerns::AdminAuthenticated"
43
43
  option :base_controller, default: "::ApplicationController"
44
- option :base_runner, default: "Nuntius::BasicApplicationRunner"
45
44
  option :layout, default: "application"
46
45
  option :admin_layout, default: "application"
47
46
  option :jobs_queue_name, default: "message"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nuntius
4
- VERSION = "1.3.7"
4
+ VERSION = "1.3.8"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nuntius
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.7
4
+ version: 1.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom de Grunt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-27 00:00:00.000000000 Z
11
+ date: 2024-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apnotic
@@ -459,6 +459,7 @@ files:
459
459
  - app/jobs/nuntius/messenger_job.rb
460
460
  - app/jobs/nuntius/purge_message_job.rb
461
461
  - app/jobs/nuntius/retrieve_mail_job.rb
462
+ - app/jobs/nuntius/timebased_events_job.rb
462
463
  - app/jobs/nuntius/transport_delivery_job.rb
463
464
  - app/jobs/nuntius/transport_refresh_job.rb
464
465
  - app/message_boxes/nuntius/base_message_box.rb
@@ -488,9 +489,6 @@ files:
488
489
  - app/providers/nuntius/teams_teams_provider.rb
489
490
  - app/providers/nuntius/twilio_sms_provider.rb
490
491
  - app/providers/nuntius/twilio_voice_provider.rb
491
- - app/runners/nuntius/application_runner.rb
492
- - app/runners/nuntius/basic_application_runner.rb
493
- - app/runners/nuntius/timebased_events_runner.rb
494
492
  - app/services/nuntius/application_service.rb
495
493
  - app/services/nuntius/aws_sns_processor_service.rb
496
494
  - app/services/nuntius/deliver_campaign_service.rb
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Nuntius
4
- class ApplicationRunner < Nuntius.config.base_runner.constantize
5
- end
6
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Nuntius
4
- # This is the default runner used for runners in Nuntius, you can insert your
5
- # own in the Nuntius configuration in your Rails Nuntius initializer.
6
- class BasicApplicationRunner
7
- def call
8
- perform
9
- end
10
-
11
- class << self
12
- delegate :call, to: :new
13
- end
14
- end
15
- end