Subject: [PATCH 205/223] gnu: Add ruby-snaky-hash.

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

* gnu/packages/ruby.scm (ruby-snaky-hash): New variable.
---

 gnu/packages/ruby.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 520dd70a08..87b78f7d2b 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3798,6 +3798,49 @@ (define-public ruby-simplecov-lcov
     (home-page "https://github.com/fortissimo1997/simplecov-lcov")
     (license license:expat)))
 
+(define-public ruby-snaky-hash
+  (package
+    (name "ruby-snaky-hash")
+    (version "2.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference       ;for tests
+                    (url "https://gitlab.com/oauth-xx/snaky_hash")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0zmixxzi2g2d75zii65bq037j4g67p25l6aqddbmmwizspsp5az6"))))
+    (build-system ruby-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'relax-requirements
+                          (lambda _
+                            (substitute* "Gemfile"
+                              (("^linting = .*")
+                               "linting = false\n")
+                              (("^coverage = .*")
+                               "coverage = false\n")
+                              (("^debug = .*")
+                               "debug = false\n"))
+                            (substitute* "spec/spec_helper.rb"
+                              (("^RUN_COVERAGE = .*")
+                               "RUN_COVERAGE = false\n")
+                              (("^ALL_FORMATTERS = .*")
+                               "ALL_FORMATTERS = false\n"))))
+                        (add-before 'build 'drop-signing-key-requirement
+                          (lambda _
+                            (substitute* "snaky_hash.gemspec"
+                              (("spec.signing_key =.*")
+                               "spec.signing_key = nil")))))))
+    (native-inputs (list ruby-rspec ruby-rspec-block-is-expected))
+    (propagated-inputs (list ruby-hashie ruby-version-gem))
+    (synopsis "Hash keys and look-ups normalization Ruby library")
+    (description "The SnakyHash Ruby library provides classes for normalizing
+hash keys and look-ups, and a pseudo-object interface.")
+    (home-page "https://gitlab.com/oauth-xx/snaky_hash")
+    (license license:expat)))
+
 (define-public ruby-useragent
   (package
     (name "ruby-useragent")
-- 
2.39.1