summary refs log tree commit diff
path: root/gnu/packages/ruby.scm
diff options
context:
space:
mode:
authorBen Woodcroft <donttrustben@gmail.com>2015-12-29 14:51:34 +1000
committerBen Woodcroft <donttrustben@gmail.com>2016-01-26 16:19:41 +1000
commit72ccbfe3141a471a3dd403a19a3cdad7ab270f83 (patch)
treefca38f701800807f87fcef63a6ece5cb6e5733b9 /gnu/packages/ruby.scm
parent0832804ed582f01c4edc78d87741642da143003b (diff)
downloadguix-72ccbfe3141a471a3dd403a19a3cdad7ab270f83.tar.gz
gnu: Add ruby-hashery.
* gnu/packages/ruby.scm (ruby-hashery): New variable.
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r--gnu/packages/ruby.scm35
1 files changed, 35 insertions, 0 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 6e34754f1b..e107714bd4 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3172,3 +3172,38 @@ focus concern on individual units of behavior.")
 Rubytest-based test frameworks.  It provides the @code{rubytest} executable.")
     (home-page "http://rubyworks.github.io/rubytest-cli")
     (license license:bsd-2)))
+
+(define-public ruby-hashery
+  (package
+    (name "ruby-hashery")
+    (version "2.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "hashery" version))
+       (sha256
+        (base32
+         "0xawbljsjarl9l7700bka672ixwznzwih4s9i38p1y9mp8hyx54g"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (and (zero? (system* "qed"))
+                  (zero? (system* "rubytest" "-Ilib" "-Itest" "test/"))))))))
+    (native-inputs
+     `(("ruby-rubytest-cli" ,ruby-rubytest-cli)
+       ("ruby-qed" ,ruby-qed)
+       ("ruby-lemon" ,ruby-lemon)))
+    (synopsis "Hash-like classes with extra features")
+    (description
+     "The Hashery is a tight collection of @code{Hash}-like classes.
+Included are the auto-sorting @code{Dictionary} class, the efficient
+@code{LRUHash}, the flexible @code{OpenHash} and the convenient
+@code{KeyHash}.  Nearly every class is a subclass of the @code{CRUDHash} which
+defines a CRUD (Create, Read, Update and Delete) model on top of Ruby's
+standard @code{Hash} making it possible to subclass and augment to fit any
+specific use case.")
+    (home-page "http://rubyworks.github.io/hashery")
+    (license license:bsd-2)))