summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/ruby.scm38
1 files changed, 38 insertions, 0 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 0dc3561fbb..d876f57b61 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3219,6 +3219,44 @@ names.")
     (home-page "https://github.com/thoughtbot/shoulda-context")
     (license license:expat)))
 
+(define-public ruby-shoulda-matchers
+  (package
+    (name "ruby-shoulda-matchers")
+    (version "3.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "shoulda-matchers" version))
+       (sha256
+        (base32
+         "1agabvb8i39mjrp3kb78nvhl41xk1i258hdwdlj0fm8nj9yzn1jb"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'fix-import
+           (lambda _
+             ;; A presumed bug reported upstream at
+             ;; https://github.com/thoughtbot/shoulda-matchers/pull/871
+             (substitute* (string-append  "lib/shoulda/matchers/active_model/"
+                                          "validate_inclusion_of_matcher.rb")
+               (("^require 'bigdecimal'")
+                "require 'bigdecimal'; require 'date'"))))
+         (replace 'check
+           (lambda _
+             ;; Do not run tests to avoid circular dependence with rails.  Instead
+             ;; just import the library to test.
+             (zero? (system* "ruby" "-Ilib" "-r" "shoulda-matchers")))))))
+    (propagated-inputs
+     `(("ruby-activesupport" ,ruby-activesupport)))
+    (synopsis "Collection of testing matchers extracted from Shoulda")
+    (description
+     "Shoulda Matchers provides RSpec- and Minitest-compatible one-liners that
+test common Rails functionality.  These tests would otherwise be much longer,
+more complex, and error-prone.")
+    (home-page "https://github.com/thoughtbot/shoulda-matchers")
+    (license license:expat)))
+
 (define-public ruby-ansi
   (package
     (name "ruby-ansi")