Subject: [bug#62196] [PATCH 003/223] gnu: Add ruby-stud.

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

* gnu/packages/ruby.scm (ruby-stud): New variable.
---
 gnu/packages/ruby.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b55e1c7b7a..84ecdf14db 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1690,6 +1690,43 @@ (define-public ruby-gimme
       (home-page "https://github.com/searls/gimme")
       (license license:expat))))
 
+(define-public ruby-stud
+  (package
+    (name "ruby-stud")
+    (version "0.0.23")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "stud" version))
+              (sha256
+               (base32
+                "0qpb57cbpm9rwgsygqxifca0zma87drnlacv49cqs2n5iyi6z8kb"))))
+    (build-system ruby-build-system)
+    (native-inputs (list ruby-rspec))
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        ;; No Rakefile is included, so run rspec directly.
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (invoke "rspec")))))))
+    (synopsis "Retries, worker supervision, resource pools and more for Ruby")
+    (description "The Stud Ruby library adds a few things missing from the
+standard Ruby library such as:
+@table @code
+@item {Stud::Try}
+Retry on failure, with back-off, where failure is any exception.
+@item {Stud::Pool}
+Generic resource pools.
+@item {Stud::Task}
+Tasks (threads that can return values, exceptions, etc.)
+@item {Stud.interval}
+Interval execution (do X every N seconds).
+@item {Stud::Buffer}
+Batch and flush behavior.
+@end itemize")
+    (home-page "https://github.com/jordansissel/ruby-stud")
+    (license license:asl2.0)))
+
 (define-public ruby-standard
   (package
     (name "ruby-standard")
-- 
2.39.1