summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorBen Woodcroft <donttrustben@gmail.com>2018-02-05 11:40:49 +0100
committerChristopher Baines <mail@cbaines.net>2018-09-16 18:29:45 +0100
commited4b6b1840f104aa7f1c57506d34764978492a98 (patch)
treeca1e9eeb5af478559e754d10be171a1f491cd129 /gnu
parent2db0f9c82d1fe71adc46e03e0d9886291e1a7c05 (diff)
downloadguix-ed4b6b1840f104aa7f1c57506d34764978492a98.tar.gz
gnu: Add ruby-oj.
* gnu/packages/ruby.scm (ruby-oj): New variable.

Signed-off-by: Christopher Baines <mail@cbaines.net>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/ruby.scm37
1 files changed, 37 insertions, 0 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 7184c8a9cd..0b68844985 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3193,6 +3193,43 @@ unacceptable HTML and/or CSS from a string.")
     (home-page "https://github.com/rgrove/sanitize/")
     (license license:expat)))
 
+(define-public ruby-oj
+  (package
+    (name "ruby-oj")
+    (version "3.6.7")
+    (source
+     (origin
+       (method url-fetch)
+       ;; Version on rubygems.org does not contain Rakefile, so download from
+       ;; GitHub instead.
+       (uri (string-append "https://github.com/ohler55/oj/archive/v"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1x28ga72jxlnmsd8g8c0fw81vlh54r0qgagw2lxsd3x3la091g2h"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:test-target "test_all"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'disable-bundler
+           (lambda _
+             (substitute* "Rakefile"
+               (("Bundler\\.with_clean_env") "1.times")
+               (("bundle exec ") "")))))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec)
+       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+    (synopsis "JSON parser for Ruby optimized for speed")
+    (description
+     "Oj is a JSON parser and generator for Ruby, where the encoding and
+decoding of JSON is implemented as a C extension to Ruby.")
+    (home-page "http://www.ohler.com/oj")
+    (license (list license:expat     ; Ruby code
+                   license:bsd-3)))) ; extension code
+
 (define-public ruby-ox
   (package
     (name "ruby-ox")