Subject: [PATCH 204/223] gnu: ruby-hashie: Update to 5.0.0 and enable tests.

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

* gnu/packages/ruby.scm (ruby-hashie): Update to 5.0.0.
[arguments]: Enable tests.  Add #:test-target and #:phases arguments.
[native-inputs]: New field.
---

 gnu/packages/ruby.scm | 35 +++++++++++++++++++++++++++--------
 1 file changed, 27 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 92fc99575d..520dd70a08 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13054,18 +13054,37 @@ (define-public ruby-rouge
 (define-public ruby-hashie
   (package
     (name "ruby-hashie")
-    (version "3.6.0")
+    (version "5.0.0")
     (source (origin
-              (method url-fetch)
-              (uri (rubygems-uri "hashie" version))
+              (method git-fetch)        ;for tests
+              (uri (git-reference
+                    (url "https://github.com/hashie/hashie")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "13bdzfp25c8k51ayzxqkbzag3wj5gc1jd8h7d985nsq6pn57g5xh"))))
+                "0ihami0cdn71cvwzwgr3vxqvqi0ifqsna0vlyqiqlhsnf93w0cm8"))))
     (build-system ruby-build-system)
-    (native-inputs
-     (list bundler))
-    (arguments `(#:tests? #f)); FIXME: Could not locate Gemfile or .bundle/ directory
-    (home-page "https://github.com/intridea/hashie")
+    (arguments
+     (list #:test-target "spec"
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'disable-bundler
+                          (lambda _
+                            (substitute* "Rakefile"
+                              ((".*require 'bundler'.*") "")
+                              ((".*Bundler.setup.*") "")
+                              (("Bundler::GemHelper\\.install_tasks") ""))))
+                        (add-after 'unpack 'disable-rubocop
+                          (lambda _
+                            (substitute* "Rakefile"
+                              (("require 'rubocop/rake_task'") "")
+                              (("RuboCop::RakeTask.new") ""))))
+                        (add-after 'unpack 'relax-requirements
+                          (lambda _
+                            ;; Contains multiple extraneous dependencies.
+                            (delete-file "Gemfile"))))))
+    (native-inputs (list ruby-json ruby-pry ruby-rspec ruby-rspec-pending-for))
+    (home-page "https://github.com/hashie/hashie")
     (synopsis "Extensions to Ruby Hashes")
     (description "Hashie is a collection of classes and mixins that make Ruby
 hashes more powerful.")
-- 
2.39.1