summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/ruby.scm29
1 files changed, 29 insertions, 0 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 3e536472eb..373bf5c85f 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3268,6 +3268,35 @@ more complex, and error-prone.")
                (base32
                 "0d3ryqcsk1n9y35bx5wxnqbgw4m8b3c79isazdjnnbg8crdp72d0"))))))
 
+(define-public ruby-shoulda
+  (package
+    (name "ruby-shoulda")
+    (version "3.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "shoulda" version))
+       (sha256
+        (base32
+         "0csmf15a7mcinfq54lfa4arp0f4b2jmwva55m0p94hdf3pxnjymy"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           ;; Don't run tests to avoid circular dependence with rails.  Instead
+           ;; just import the library to test.
+           (lambda _ (zero? (system* "ruby" "-Ilib" "-r" "shoulda")))))))
+    (propagated-inputs
+     `(("ruby-shoulda-context" ,ruby-shoulda-context)
+       ("ruby-shoulda-matchers" ,ruby-shoulda-matchers-2)))
+    (synopsis "Context framework and matchers for testing")
+    (description
+     "@code{shoulda} is a meta-package combining @code{shoulda-context} and
+@code{shoulda-matchers} providing tools for writing tests.")
+    (home-page "https://github.com/thoughtbot/shoulda")
+    (license license:expat)))
+
 (define-public ruby-ansi
   (package
     (name "ruby-ansi")