Subject: [bug#62196] [PATCH 067/223] gnu: ruby-activejob: Update to 7.0.4.3 and enable tests.

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 20 Mar 2023 13:13:59 -0400

* gnu/packages/rails.scm (ruby-activejob): Update to 7.0.4.3.
[source]: Use ruby-rails-monorepo.
[arguments]: Remove #:tests? argument.  Add #:phases argument.
[native-inputs]: New field.
---
 gnu/packages/rails.scm | 57 ++++++++++++++++++++++++++----------------
 1 file changed, 36 insertions(+), 21 deletions(-)

diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 338c92ddaa..bff4e09264 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -522,27 +522,42 @@ (define-public ruby-actioncable
 
 (define-public ruby-activejob
   (package
-   (name "ruby-activejob")
-   (version "6.1.3")
-   (source
-    (origin
-     (method url-fetch)
-     (uri (rubygems-uri "activejob" version))
-     (sha256
-      (base32
-       "175d8q0achdlsxjsvq0w9znvfqfkgbj75kbmdrvg4fb277wwplmf"))))
-   (build-system ruby-build-system)
-   (arguments
-    '(;; No included tests
-      #:tests? #f))
-   (propagated-inputs
-    (list ruby-activesupport ruby-globalid))
-   (synopsis "Declare job classes for multiple backends")
-   (description
-    "ActiveJob allows declaring job classes in a common way across Rails
-applications.")
-   (home-page "https://rubyonrails.org/")
-   (license license:expat)))
+    (name "ruby-activejob")
+    (version %ruby-rails-version)
+    (source ruby-rails-monorepo)
+    (build-system ruby-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'extract-gemspec 'chdir
+            (lambda _
+              (chdir "activejob")))
+          (add-after 'chdir 'delete-problematic-tests
+            (lambda _
+              (substitute* "Rakefile"
+                ;; Remove the adapters that aren't yet packaged or would
+                ;; introduce cyclic dependencies.
+                (("backburner ") "")
+                (("resque ") "")
+                (("sidekiq ") "")
+                (("sneakers ") "")
+                (("sucker_punch ") ""))
+              (substitute* "test/cases/exceptions_test.rb"
+                (("ActiveJob::QueueAdapters::SneakersAdapter") "")))))))
+    (native-inputs
+     (list ruby-queue-classic
+           ruby-delayed-job
+           ruby-que
+           ruby-zeitwerk))
+    (propagated-inputs
+     (list ruby-activesupport
+           ruby-globalid))
+    (synopsis "Declare job classes for multiple backends")
+    (description "ActiveJob allows declaring job classes in a common way
+across Rails applications.")
+    (home-page "https://rubyonrails.org/")
+    (license license:expat)))
 
 (define-public ruby-activestorage
   (package
-- 
2.39.1