actionmailbox 7.0.8 → 7.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -139
  3. data/MIT-LICENSE +1 -1
  4. data/README.md +2 -2
  5. data/app/controllers/action_mailbox/ingresses/mailgun/inbound_emails_controller.rb +1 -0
  6. data/app/controllers/action_mailbox/ingresses/postmark/inbound_emails_controller.rb +1 -0
  7. data/app/controllers/action_mailbox/ingresses/sendgrid/inbound_emails_controller.rb +1 -0
  8. data/app/controllers/rails/conductor/action_mailbox/inbound_emails/sources_controller.rb +3 -1
  9. data/app/controllers/rails/conductor/action_mailbox/inbound_emails_controller.rb +2 -0
  10. data/app/controllers/rails/conductor/action_mailbox/incinerates_controller.rb +2 -0
  11. data/app/controllers/rails/conductor/action_mailbox/reroutes_controller.rb +2 -0
  12. data/app/models/action_mailbox/inbound_email/message_id.rb +1 -1
  13. data/app/models/action_mailbox/inbound_email.rb +8 -0
  14. data/app/views/rails/conductor/action_mailbox/inbound_emails/index.html.erb +3 -3
  15. data/config/routes.rb +1 -1
  16. data/db/migrate/20180917164000_create_action_mailbox_tables.rb +7 -1
  17. data/lib/action_mailbox/base.rb +24 -8
  18. data/lib/action_mailbox/callbacks.rb +2 -0
  19. data/lib/action_mailbox/deprecator.rb +7 -0
  20. data/lib/action_mailbox/engine.rb +4 -0
  21. data/lib/action_mailbox/gem_version.rb +3 -3
  22. data/lib/action_mailbox/mail_ext/addresses.rb +5 -1
  23. data/lib/action_mailbox/mail_ext/recipients.rb +2 -1
  24. data/lib/action_mailbox/router.rb +2 -0
  25. data/lib/action_mailbox/version.rb +1 -1
  26. data/lib/action_mailbox.rb +8 -0
  27. data/lib/rails/generators/mailbox/USAGE +1 -3
  28. data/lib/tasks/install.rake +1 -1
  29. metadata +16 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97816ef79a1bed8845053b39c5010c276cd7dc3a28c68e3cec3578433b1c0a86
4
- data.tar.gz: 3997d6f8881a21523097ac9c5525cab2cc72c0f5e540c50226e48f9040fb6fd9
3
+ metadata.gz: 406a7403da609a9f2d78398185e301959320444ce8246dceae31ba419ef46479
4
+ data.tar.gz: fd70fbc0c9ebfd8ec6c8318ed002715a4cf43d03e5b25494d30e66223d7881e9
5
5
  SHA512:
6
- metadata.gz: d545e3a06a5a61e304dcc78607ab504f95b1a775bf443816eb8073671d7bbaff793069d5b1d77d9318b4c791abfba2b1737fd9cae2f7693551e08999f0a992f1
7
- data.tar.gz: 7ff1f81147a8cc69ad86649d5cfa1d878d3e59ab811ae48a354b1c2a771cdac677d0f0dfb23320f247db03c95ac501280d6f56b8c6f9d4adacf88a0f518f7130
6
+ metadata.gz: 2db6a40d78c8a3084e606673c8613e8b2fe4162036e148715e7f554dc7fb17ec34afe387238e1d9e3cbc9a322fd767bcd0f8eaf7376ef037619f5e1c8eb7b487
7
+ data.tar.gz: a0845e3943517a64911a557c3347cbcbcb8f664bfc3acf8a1d0c52774a83cb4e637042568a275f5d0b733ea70c1aa57b38e78477cee6d56d618ef8e53114b5d4
data/CHANGELOG.md CHANGED
@@ -1,165 +1,41 @@
1
- ## Rails 7.0.8 (September 09, 2023) ##
1
+ ## Rails 7.1.1 (October 11, 2023) ##
2
2
 
3
3
  * No changes.
4
4
 
5
5
 
6
- ## Rails 7.0.7.2 (August 22, 2023) ##
6
+ ## Rails 7.1.0 (October 05, 2023) ##
7
7
 
8
8
  * No changes.
9
9
 
10
10
 
11
- ## Rails 7.0.7.1 (August 22, 2023) ##
11
+ ## Rails 7.1.0.rc2 (October 01, 2023) ##
12
12
 
13
13
  * No changes.
14
14
 
15
15
 
16
- ## Rails 7.0.7 (August 09, 2023) ##
16
+ ## Rails 7.1.0.rc1 (September 27, 2023) ##
17
17
 
18
18
  * No changes.
19
19
 
20
20
 
21
- ## Rails 7.0.6 (June 29, 2023) ##
21
+ ## Rails 7.1.0.beta1 (September 13, 2023) ##
22
22
 
23
- * No changes.
24
-
25
-
26
- ## Rails 7.0.5.1 (June 26, 2023) ##
27
-
28
- * No changes.
29
-
30
-
31
- ## Rails 7.0.5 (May 24, 2023) ##
32
-
33
- * No changes.
34
-
35
-
36
- ## Rails 7.0.4.3 (March 13, 2023) ##
37
-
38
- * No changes.
39
-
40
-
41
- ## Rails 7.0.4.2 (January 24, 2023) ##
42
-
43
- * No changes.
44
-
45
-
46
- ## Rails 7.0.4.1 (January 17, 2023) ##
47
-
48
- * No changes.
49
-
50
-
51
- ## Rails 7.0.4 (September 09, 2022) ##
52
-
53
- * No changes.
54
-
55
-
56
- ## Rails 7.0.3.1 (July 12, 2022) ##
57
-
58
- * No changes.
59
-
60
-
61
- ## Rails 7.0.3 (May 09, 2022) ##
62
-
63
- * No changes.
64
-
65
-
66
- ## Rails 7.0.2.4 (April 26, 2022) ##
67
-
68
- * No changes.
69
-
70
-
71
- ## Rails 7.0.2.3 (March 08, 2022) ##
72
-
73
- * No changes.
74
-
75
-
76
- ## Rails 7.0.2.2 (February 11, 2022) ##
77
-
78
- * No changes.
79
-
80
-
81
- ## Rails 7.0.2.1 (February 11, 2022) ##
82
-
83
- * No changes.
84
-
85
-
86
- ## Rails 7.0.2 (February 08, 2022) ##
87
-
88
- * No changes.
89
-
90
-
91
- ## Rails 7.0.1 (January 06, 2022) ##
92
-
93
- * No changes.
94
-
95
-
96
- ## Rails 7.0.0 (December 15, 2021) ##
97
-
98
- * No changes.
99
-
100
-
101
- ## Rails 7.0.0.rc3 (December 14, 2021) ##
102
-
103
- * No changes.
104
-
105
-
106
- ## Rails 7.0.0.rc2 (December 14, 2021) ##
107
-
108
- * No changes.
109
-
110
- ## Rails 7.0.0.rc1 (December 06, 2021) ##
111
-
112
- * Removed deprecated environment variable `MAILGUN_INGRESS_API_KEY`.
113
-
114
- *Rafael Mendonça França*
115
-
116
- * Removed deprecated `Rails.application.credentials.action_mailbox.mailgun_api_key`.
117
-
118
- *Rafael Mendonça França*
119
-
120
-
121
- ## Rails 7.0.0.alpha2 (September 15, 2021) ##
122
-
123
- * No changes.
124
-
125
-
126
- ## Rails 7.0.0.alpha1 (September 15, 2021) ##
127
-
128
- * Add `attachments` to the list of permitted parameters for inbound emails conductor.
129
-
130
- When using the conductor to test inbound emails with attachments, this prevents an
131
- unpermitted parameter warning in default configurations, and prevents errors for
132
- applications that set:
133
-
134
- ```ruby
135
- config.action_controller.action_on_unpermitted_parameters = :raise
136
- ```
137
-
138
- *David Jones*, *Dana Henke*
139
-
140
- * Add ability to configure ActiveStorage service
141
- for storing email raw source.
23
+ * Added `bounce_now_with` to send the bounce email without going through a mailer queue.
142
24
 
143
- ```yml
144
- # config/storage.yml
145
- incoming_emails:
146
- service: Disk
147
- root: /secure/dir/for/emails/only
148
- ```
25
+ *Ronan Limon Duparcmeur*
149
26
 
150
- ```ruby
151
- config.action_mailbox.storage_service = :incoming_emails
152
- ```
27
+ * Support configured primary key types in generated migrations.
153
28
 
154
- *Yurii Rashkovskii*
29
+ *Nishiki Liu*
155
30
 
156
- * Add ability to incinerate an inbound message through the conductor interface.
31
+ * Fixed ingress controllers' ability to accept emails that contain no UTF-8 encoded parts.
157
32
 
158
- *Santiago Bartesaghi*
33
+ Fixes #46297.
159
34
 
160
- * OpenSSL constants are now used for Digest computations.
35
+ *Jan Honza Sterba*
161
36
 
162
- *Dirkjan Bussink*
37
+ * Add X-Forwarded-To addresses to recipients.
163
38
 
39
+ *Andrew Stewart*
164
40
 
165
- Please check [6-1-stable](https://github.com/rails/rails/blob/6-1-stable/actionmailbox/CHANGELOG.md) for previous changes.
41
+ Please check [7-0-stable](https://github.com/rails/rails/blob/7-0-stable/actionmailbox/CHANGELOG.md) for previous changes.
data/MIT-LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2018-2022 Basecamp, LLC
3
+ Copyright (c) 37signals LLC
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # Action Mailbox
2
2
 
3
- Action Mailbox routes incoming emails to controller-like mailboxes for processing in Rails. It ships with ingresses for Mailgun, Mandrill, Postmark, and SendGrid. You can also handle inbound mails directly via the built-in Exim, Postfix, and Qmail ingresses.
3
+ Action Mailbox routes incoming emails to controller-like mailboxes for processing in \Rails. It ships with ingresses for Mailgun, Mandrill, Postmark, and SendGrid. You can also handle inbound mails directly via the built-in Exim, Postfix, and Qmail ingresses.
4
4
 
5
5
  The inbound emails are turned into `InboundEmail` records using Active Record and feature lifecycle tracking, storage of the original email on cloud storage via Active Storage, and responsible data handling with on-by-default incineration.
6
6
 
7
7
  These inbound emails are routed asynchronously using Active Job to one or several dedicated mailboxes, which are capable of interacting directly with the rest of your domain model.
8
8
 
9
- You can read more about Action Mailbox in the [Action Mailbox Basics](https://edgeguides.rubyonrails.org/action_mailbox_basics.html) guide.
9
+ You can read more about Action Mailbox in the [Action Mailbox Basics](https://guides.rubyonrails.org/action_mailbox_basics.html) guide.
10
10
 
11
11
  ## License
12
12
 
@@ -44,6 +44,7 @@ module ActionMailbox
44
44
  # <tt>https://example.com/rails/action_mailbox/mailgun/inbound_emails/mime</tt>.
45
45
  class Ingresses::Mailgun::InboundEmailsController < ActionMailbox::BaseController
46
46
  before_action :authenticate
47
+ param_encoding :create, "body-mime", Encoding::ASCII_8BIT
47
48
 
48
49
  def create
49
50
  ActionMailbox::InboundEmail.create_and_extract_message_id! mail
@@ -46,6 +46,7 @@ module ActionMailbox
46
46
  # content in JSON payload"*. Action Mailbox needs the raw email content to work.
47
47
  class Ingresses::Postmark::InboundEmailsController < ActionMailbox::BaseController
48
48
  before_action :authenticate_by_password
49
+ param_encoding :create, "RawEmail", Encoding::ASCII_8BIT
49
50
 
50
51
  def create
51
52
  ActionMailbox::InboundEmail.create_and_extract_message_id! params.require("RawEmail")
@@ -46,6 +46,7 @@ module ActionMailbox
46
46
  # full MIME message."* Action Mailbox needs the raw MIME message to work.
47
47
  class Ingresses::Sendgrid::InboundEmailsController < ActionMailbox::BaseController
48
48
  before_action :authenticate_by_password
49
+ param_encoding :create, :email, Encoding::ASCII_8BIT
49
50
 
50
51
  def create
51
52
  ActionMailbox::InboundEmail.create_and_extract_message_id! mail
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :enddoc:
4
+
3
5
  module Rails
4
- class Conductor::ActionMailbox::InboundEmails::SourcesController < Rails::Conductor::BaseController
6
+ class Conductor::ActionMailbox::InboundEmails::SourcesController < Rails::Conductor::BaseController # :nodoc:
5
7
  def new
6
8
  end
7
9
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :enddoc:
4
+
3
5
  module Rails
4
6
  class Conductor::ActionMailbox::InboundEmailsController < Rails::Conductor::BaseController
5
7
  def index
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :enddoc:
4
+
3
5
  module Rails
4
6
  # Incinerating will destroy an email that is due and has already been processed.
5
7
  class Conductor::ActionMailbox::IncineratesController < Rails::Conductor::BaseController
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # :enddoc:
4
+
3
5
  module Rails
4
6
  # Rerouting will run routing and processing on an email that has already been, or attempted to be, processed.
5
7
  class Conductor::ActionMailbox::ReroutesController < Rails::Conductor::BaseController
@@ -5,7 +5,7 @@
5
5
  # web request.
6
6
  #
7
7
  # If an inbound email does not, against the rfc822 mandate, specify a Message-ID, one will be generated
8
- # using the approach from <tt>Mail::MessageIdField</tt>.
8
+ # using the approach from +Mail::MessageIdField+.
9
9
  module ActionMailbox::InboundEmail::MessageId
10
10
  extend ActiveSupport::Concern
11
11
 
@@ -43,6 +43,14 @@ module ActionMailbox
43
43
  def processed?
44
44
  delivered? || failed? || bounced?
45
45
  end
46
+
47
+ def instrumentation_payload # :nodoc:
48
+ {
49
+ id: id,
50
+ message_id: message_id,
51
+ status: status
52
+ }
53
+ end
46
54
  end
47
55
  end
48
56
 
@@ -2,6 +2,9 @@
2
2
 
3
3
  <h1>All inbound emails</h1>
4
4
 
5
+ <%= link_to "New inbound email by form", main_app.new_rails_conductor_inbound_email_path %> |
6
+ <%= link_to "New inbound email by source", main_app.new_rails_conductor_inbound_email_source_path %>
7
+
5
8
  <table>
6
9
  <tr><th>Message ID</th><th>Status</th></tr>
7
10
  <% @inbound_emails.each do |inbound_email| %>
@@ -11,6 +14,3 @@
11
14
  </tr>
12
15
  <% end %>
13
16
  </table>
14
-
15
- <%= link_to "New inbound email by form", main_app.new_rails_conductor_inbound_email_path %> |
16
- <%= link_to "New inbound email by source", main_app.new_rails_conductor_inbound_email_source_path %>
data/config/routes.rb CHANGED
@@ -16,7 +16,7 @@ Rails.application.routes.draw do
16
16
 
17
17
  # TODO: Should these be mounted within the engine only?
18
18
  scope "rails/conductor/action_mailbox/", module: "rails/conductor/action_mailbox" do
19
- resources :inbound_emails, as: :rails_conductor_inbound_emails
19
+ resources :inbound_emails, as: :rails_conductor_inbound_emails, only: %i[index new show create]
20
20
  get "inbound_emails/sources/new", to: "inbound_emails/sources#new", as: :new_rails_conductor_inbound_email_source
21
21
  post "inbound_emails/sources", to: "inbound_emails/sources#create", as: :rails_conductor_inbound_email_sources
22
22
 
@@ -1,6 +1,6 @@
1
1
  class CreateActionMailboxTables < ActiveRecord::Migration[6.0]
2
2
  def change
3
- create_table :action_mailbox_inbound_emails do |t|
3
+ create_table :action_mailbox_inbound_emails, id: primary_key_type do |t|
4
4
  t.integer :status, default: 0, null: false
5
5
  t.string :message_id, null: false
6
6
  t.string :message_checksum, null: false
@@ -10,4 +10,10 @@ class CreateActionMailboxTables < ActiveRecord::Migration[6.0]
10
10
  t.index [ :message_id, :message_checksum ], name: "index_action_mailbox_inbound_emails_uniqueness", unique: true
11
11
  end
12
12
  end
13
+
14
+ private
15
+ def primary_key_type
16
+ config = Rails.configuration.generators
17
+ config.options[config.orm][:primary_key_type] || :primary_key
18
+ end
13
19
  end
@@ -6,6 +6,8 @@ require "action_mailbox/callbacks"
6
6
  require "action_mailbox/routing"
7
7
 
8
8
  module ActionMailbox
9
+ # = Action Mailbox \Base
10
+ #
9
11
  # The base class for all application mailboxes. Not intended to be inherited from directly. Inherit from
10
12
  # +ApplicationMailbox+ instead, as that's where the app-specific routing is configured. This routing
11
13
  # is specified in the following ways:
@@ -29,7 +31,7 @@ module ActionMailbox
29
31
  #
30
32
  # Application mailboxes need to override the #process method, which is invoked by the framework after
31
33
  # callbacks have been run. The callbacks available are: +before_processing+, +after_processing+, and
32
- # +around_processing+. The primary use case is ensure certain preconditions to processing are fulfilled
34
+ # +around_processing+. The primary use case is to ensure that certain preconditions to processing are fulfilled
33
35
  # using +before_processing+ callbacks.
34
36
  #
35
37
  # If a precondition fails to be met, you can halt the processing using the +#bounced!+ method,
@@ -79,14 +81,16 @@ module ActionMailbox
79
81
  end
80
82
 
81
83
  def perform_processing # :nodoc:
82
- track_status_of_inbound_email do
83
- run_callbacks :process do
84
- process
84
+ ActiveSupport::Notifications.instrument "process.action_mailbox", instrumentation_payload do
85
+ track_status_of_inbound_email do
86
+ run_callbacks :process do
87
+ process
88
+ end
85
89
  end
90
+ rescue => exception
91
+ # TODO: Include a reference to the inbound_email in the exception raised so error handling becomes easier
92
+ rescue_with_handler(exception) || raise
86
93
  end
87
- rescue => exception
88
- # TODO: Include a reference to the inbound_email in the exception raised so error handling becomes easier
89
- rescue_with_handler(exception) || raise
90
94
  end
91
95
 
92
96
  def process
@@ -97,14 +101,26 @@ module ActionMailbox
97
101
  inbound_email.delivered? || inbound_email.bounced?
98
102
  end
99
103
 
100
-
101
104
  # Enqueues the given +message+ for delivery and changes the inbound email's status to +:bounced+.
102
105
  def bounce_with(message)
103
106
  inbound_email.bounced!
104
107
  message.deliver_later
105
108
  end
106
109
 
110
+ # Immediately sends the given +message+ and changes the inbound email's status to +:bounced+.
111
+ def bounce_now_with(message)
112
+ inbound_email.bounced!
113
+ message.deliver_now
114
+ end
115
+
107
116
  private
117
+ def instrumentation_payload
118
+ {
119
+ mailbox: self,
120
+ inbound_email: inbound_email.instrumentation_payload
121
+ }
122
+ end
123
+
108
124
  def track_status_of_inbound_email
109
125
  inbound_email.processing!
110
126
  yield
@@ -3,6 +3,8 @@
3
3
  require "active_support/callbacks"
4
4
 
5
5
  module ActionMailbox
6
+ # = Action Mailbox \Callbacks
7
+ #
6
8
  # Defines the callbacks related to processing.
7
9
  module Callbacks
8
10
  extend ActiveSupport::Concern
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActionMailbox
4
+ def self.deprecator # :nodoc:
5
+ @deprecator ||= ActiveSupport::Deprecation.new
6
+ end
7
+ end
@@ -22,6 +22,10 @@ module ActionMailbox
22
22
 
23
23
  config.action_mailbox.storage_service = nil
24
24
 
25
+ initializer "action_mailbox.deprecator", before: :load_environment_config do |app|
26
+ app.deprecators[:action_mailbox] = ActionMailbox.deprecator
27
+ end
28
+
25
29
  initializer "action_mailbox.config" do
26
30
  config.after_initialize do |app|
27
31
  ActionMailbox.logger = app.config.action_mailbox.logger || Rails.logger
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActionMailbox
4
- # Returns the currently loaded version of Action Mailbox as a <tt>Gem::Version</tt>.
4
+ # Returns the currently loaded version of Action Mailbox as a +Gem::Version+.
5
5
  def self.gem_version
6
6
  Gem::Version.new VERSION::STRING
7
7
  end
8
8
 
9
9
  module VERSION
10
10
  MAJOR = 7
11
- MINOR = 0
12
- TINY = 8
11
+ MINOR = 1
12
+ TINY = 1
13
13
  PRE = nil
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
@@ -7,7 +7,7 @@ module Mail
7
7
  end
8
8
 
9
9
  def recipients_addresses
10
- to_addresses + cc_addresses + bcc_addresses + x_original_to_addresses
10
+ to_addresses + cc_addresses + bcc_addresses + x_original_to_addresses + x_forwarded_to_addresses
11
11
  end
12
12
 
13
13
  def to_addresses
@@ -26,6 +26,10 @@ module Mail
26
26
  Array(header[:x_original_to]).collect { |header| Mail::Address.new header.to_s }
27
27
  end
28
28
 
29
+ def x_forwarded_to_addresses
30
+ Array(header[:x_forwarded_to]).collect { |header| Mail::Address.new header.to_s }
31
+ end
32
+
29
33
  private
30
34
  def address_list(obj)
31
35
  if obj&.respond_to?(:element)
@@ -3,7 +3,8 @@
3
3
  module Mail
4
4
  class Message
5
5
  def recipients
6
- Array(to) + Array(cc) + Array(bcc) + Array(header[:x_original_to]).map(&:to_s)
6
+ Array(to) + Array(cc) + Array(bcc) + Array(header[:x_original_to]).map(&:to_s) +
7
+ Array(header[:x_forwarded_to]).map(&:to_s)
7
8
  end
8
9
  end
9
10
  end
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActionMailbox
4
+ # = Action Mailbox \Router
5
+ #
4
6
  # Encapsulates the routes that live on the ApplicationMailbox and performs the actual routing when
5
7
  # an inbound_email is received.
6
8
  class Router
@@ -3,7 +3,7 @@
3
3
  require_relative "gem_version"
4
4
 
5
5
  module ActionMailbox
6
- # Returns the currently loaded version of Action Mailbox as a <tt>Gem::Version</tt>.
6
+ # Returns the currently loaded version of Action Mailbox as a +Gem::Version+.
7
7
  def self.version
8
8
  gem_version
9
9
  end
@@ -1,7 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_support"
4
+ require "active_support/rails"
5
+ require "active_support/core_ext/numeric/time"
6
+
7
+ require "action_mailbox/version"
8
+ require "action_mailbox/deprecator"
3
9
  require "action_mailbox/mail_ext"
4
10
 
11
+ # :markup: markdown
12
+ # :include: actionmailbox/README.md
5
13
  module ActionMailbox
6
14
  extend ActiveSupport::Autoload
7
15
 
@@ -1,11 +1,9 @@
1
1
  Description:
2
- ============
3
2
  Generates a new mailbox class in app/mailboxes and invokes your template
4
3
  engine and test framework generators.
5
4
 
6
5
  Example:
7
- ========
8
- bin/rails generate mailbox inbox
6
+ `bin/rails generate mailbox inbox`
9
7
 
10
8
  creates an InboxMailbox class and test:
11
9
  Mailbox: app/mailboxes/inbox_mailbox.rb
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- desc "Installs Action Mailbox and its dependencies"
3
+ desc "Install Action Mailbox and its dependencies"
4
4
  task "action_mailbox:install" do
5
5
  Rails::Command.invoke :generate, ["action_mailbox:install"]
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionmailbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.8
4
+ version: 7.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-09-09 00:00:00.000000000 Z
12
+ date: 2023-10-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -17,70 +17,70 @@ dependencies:
17
17
  requirements:
18
18
  - - '='
19
19
  - !ruby/object:Gem::Version
20
- version: 7.0.8
20
+ version: 7.1.1
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - '='
26
26
  - !ruby/object:Gem::Version
27
- version: 7.0.8
27
+ version: 7.1.1
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: activerecord
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - '='
33
33
  - !ruby/object:Gem::Version
34
- version: 7.0.8
34
+ version: 7.1.1
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - '='
40
40
  - !ruby/object:Gem::Version
41
- version: 7.0.8
41
+ version: 7.1.1
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: activestorage
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - '='
47
47
  - !ruby/object:Gem::Version
48
- version: 7.0.8
48
+ version: 7.1.1
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - '='
54
54
  - !ruby/object:Gem::Version
55
- version: 7.0.8
55
+ version: 7.1.1
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: activejob
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - '='
61
61
  - !ruby/object:Gem::Version
62
- version: 7.0.8
62
+ version: 7.1.1
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - '='
68
68
  - !ruby/object:Gem::Version
69
- version: 7.0.8
69
+ version: 7.1.1
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: actionpack
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - '='
75
75
  - !ruby/object:Gem::Version
76
- version: 7.0.8
76
+ version: 7.1.1
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - '='
82
82
  - !ruby/object:Gem::Version
83
- version: 7.0.8
83
+ version: 7.1.1
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: mail
86
86
  requirement: !ruby/object:Gem::Requirement
@@ -177,6 +177,7 @@ files:
177
177
  - lib/action_mailbox.rb
178
178
  - lib/action_mailbox/base.rb
179
179
  - lib/action_mailbox/callbacks.rb
180
+ - lib/action_mailbox/deprecator.rb
180
181
  - lib/action_mailbox/engine.rb
181
182
  - lib/action_mailbox/gem_version.rb
182
183
  - lib/action_mailbox/mail_ext.rb
@@ -206,10 +207,10 @@ licenses:
206
207
  - MIT
207
208
  metadata:
208
209
  bug_tracker_uri: https://github.com/rails/rails/issues
209
- changelog_uri: https://github.com/rails/rails/blob/v7.0.8/actionmailbox/CHANGELOG.md
210
- documentation_uri: https://api.rubyonrails.org/v7.0.8/
210
+ changelog_uri: https://github.com/rails/rails/blob/v7.1.1/actionmailbox/CHANGELOG.md
211
+ documentation_uri: https://api.rubyonrails.org/v7.1.1/
211
212
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
212
- source_code_uri: https://github.com/rails/rails/tree/v7.0.8/actionmailbox
213
+ source_code_uri: https://github.com/rails/rails/tree/v7.1.1/actionmailbox
213
214
  rubygems_mfa_required: 'true'
214
215
  post_install_message:
215
216
  rdoc_options: []