Repository navigation
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated with `rbs prototype rb` from the activejob 8.1.4 source and post-processed the same way as the other Rails 8.1 gems: drop members already defined elsewhere, fill missing type arguments, add accessors defined with class_attribute, mattr_accessor, and cattr_accessor, add methods defined with delegate, and carry over typed signatures from 6.0 where the method still has the same parameters. The job generator in lib/rails is left out, as its superclass comes from railties, which activejob doesn't depend on. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Rails no longer has QueAdapter or SuckerPunchAdapter, so nothing refers to Que::Job or SuckerPunch::Job. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Logging defines them on the job class with cattr_accessor and class_attribute in its included block, which rbs prototype doesn't see. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
job_id, arguments, executions, queue_name, priority, and the other job attributes, enqueue, and perform_later, which returns the job or false when it couldn't be enqueued. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
rbs prototype marks a block as required unless the method checks it. These forward the block or don't use it: the callbacks with method names (before_perform :foo), assert_no_enqueued_jobs and assert_no_performed_jobs without a block, and a few internal methods. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…:Base ActiveJob::Callbacks and ActiveJob::Exceptions include ActiveSupport::Callbacks and ActiveSupport::Rescuable, so job classes have rescue_from and set_callback. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
7.0 had only hand-written signatures. 8.1 adds signatures generated with `rbs prototype rb` from the activestorage 8.1.4 lib and app sources and post-processed the same way as the other Rails 8.1 gems: drop members already defined elsewhere, fill missing type arguments, and add accessors defined with class_attribute, mattr_accessor, and cattr_accessor and methods defined with delegate. Methods defined inside `class_methods do ... end` are generated as the concern's ClassMethods. ActiveStorage::Blobs and ActiveStorage::Representations, which Zeitwerk defines for the controllers in app, are declared as modules. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
They were deprecated in 6.1 and removed in 7.0. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- has_one_attached and has_many_attached take a block to declare named variants, which yields the attachment reflection - The reflections inherit HasAttachedReflection, which has variant and named_variants - Blob#signed_id takes purpose:, expires_in:, and expires_at:, and returns a String Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
They're defined by the active_storage_blobs and active_storage_attachments tables and belongs_to/has_many, which rbs prototype doesn't see, and the models are in the gem, so apps' generated model signatures don't have them. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
key, filename, url, the content type predicates, and the direct upload URL and headers of Blob, and the parts of Filename. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
rbs prototype marks a block as required unless the method checks it. Variant#download and Preview#download pass the block to the service, and return the content when called without one, like Blob#download. The instrument methods pass it to ActiveSupport::Notifications.instrument. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… classes include The generated classes now extend the ClassMethods of the concerns they include, directly or through other concerns, as ActiveSupport::Concern does. FixtureSet gets generate_unique_secure_token, for example. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The reviewers are the same as activerecord's, and actionmailbox is added to the target gems listed in the README of the Rails gems. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated with `rbs prototype rb` from the actionmailbox 8.1.4 lib and app sources and post-processed the same way as the other Rails 8.1 gems: drop members already defined elsewhere, fill missing type arguments, add accessors defined with class_attribute, mattr_accessor, and cattr_accessor and methods defined with delegate, generate the methods defined inside `class_methods do ... end` as the concern's ClassMethods, and make the classes extend the ClassMethods of the concerns they include. The namespaces that Zeitwerk defines for the controllers in app (ActionMailbox::Ingresses::Mailgun, Rails::Conductor, ...) are declared as modules. The generators in lib/generators and lib/rails are left out, as their superclasses come from railties, which actionmailbox doesn't depend on. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…Email They're defined by the action_mailbox_inbound_emails table, enum, and has_one_attached, which rbs prototype doesn't see, and the model is in the gem, so apps' generated model signatures don't have them. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A mailbox's inbound_email and mail, and InboundEmail's mail, source, and processed?. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
rbs prototype marks a block as required unless the method checks it. before_processing, after_processing, and around_processing take method names, and create_inbound_email_from_mail and receive_inbound_email_from_mail pass the block to Mail.new, which builds the mail from the keyword arguments without one. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
@amatsuda Thanks for your contribution! Please follow the instructions below for each change. Available commandsYou can use the following commands by commenting on this PR.
|
There was a problem hiding this comment.
This file contains the names mechanically assigned to reviewers, as well as an indication of the intention to conduct a review, the declaration of which is left up to the individual.
I have the intention to review, but I do not know about others.

Adds signatures for actionmailbox 8.1, based on 8.1.4. This is a new gem in this repository.
This PR is stacked on #1093 (activestorage 8.1), which is stacked on #1090 (activejob 8.1), because actionmailbox 8.1 needs their signatures. Until they are merged, their commits show up here too. The commits for this PR are the ones starting with
actionmailbox:.The reviewers are the same as activerecord's, and actionmailbox is added to the target gems listed in the README of the Rails gems. The RuboCop config enables the strict cops.
How it is made
actionmailbox-generated.rbscomes fromrbs prototype rbrun onlibandapp, then post-processed the same way as the other Rails 8.1 gems:untypedclass_attribute,mattr_accessor, andcattr_accessor, and methods defined withdelegateclass_methods do ... endas the concern'sClassMethods, whichrbs prototypeskips, so mailboxes haveroutingandbefore_processingClassMethodsof the concerns they include, directly or through other concerns, asActiveSupport::Concerndoesapp(ActionMailbox::Ingresses::Mailgun,Rails::Conductor, ...)The generators in
lib/generatorsandlib/railsare left out, since their superclasses come from railties, which actionmailbox doesn't depend on.Methods the generator doesn't see
The columns of
ActionMailbox::InboundEmail(status,message_id, ...), the methods of itsstatusenum (delivered?,bounced!, ...), and itsraw_emailattachment. The model is in the gem, so apps' generated model signatures don't have them.Return types
A mailbox's
inbound_emailandmail, andInboundEmail#mail,source, andprocessed?.Optional blocks
All required blocks were checked against the source, and 5 were made optional:
before_processing,after_processing, andaround_processingwith method names, andcreate_inbound_email_from_mailandreceive_inbound_email_from_mail, which build the mail from keyword arguments without one.Tests
Each commit that changes types adds tests that fail without it.
bin/test gems/actionmailbox/8.1and RuboCop's strict cops pass on every commit from the generation commit onward.🤖 Generated with Claude Code