Subject: [PATCH 168/223] gnu: Add ruby-turbo-rails.

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

* gnu/packages/rails.scm (ruby-turbo-rails): New variable.
---

 gnu/packages/rails.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 925b95c3b2..04aa2d3f89 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -1244,6 +1244,34 @@ (define-public ruby-stimulus-rails
     (home-page "https://stimulus.hotwired.dev")
     (license license:expat)))
 
+(define-public ruby-turbo-rails
+  (package
+    (name "ruby-turbo-rails")
+    (version "1.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "turbo-rails" version))
+              (sha256
+               (base32
+                "0vm3iqgr3kxyyz5i09lhvfszp4pw1gw5j5rhhv1gmasv4kq2p3qh"))))
+    (build-system ruby-build-system)
+    ;; The test suite depends on JavaScript modules fetched via 'yarn'.
+    (arguments (list #:tests? #f))
+    (propagated-inputs (list ruby-actionpack ruby-activejob ruby-railties))
+    (synopsis "High performance web application framework")
+    (description
+     "Turbo aims to be as fast as single-page web application without having
+to write any JavaScript.  Turbo accelerates links and form submissions without
+requiring server-side changes to the generated HTML.  It allows carving up a
+page into independent frames, which can be lazy-loaded and operated as
+independent components.  Finally, it helps making partial page updates using
+just HTML and a set of CRUD-like container tags.  These three techniques
+reduce the amount of custom JavaScript that many web applications need to
+write by an order of magnitude.  And for the few dynamic bits that are left,
+Stimulus can be used.")
+    (home-page "https://github.com/hotwired/turbo-rails")
+    (license license:expat)))
+
 (define-public ruby-web-console
   (package
     (name "ruby-web-console")
-- 
2.39.1