aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Woodcroft <donttrustben@gmail.com>2018-02-05 11:47:04 +0100
committerChristopher Baines <mail@cbaines.net>2018-08-05 17:15:44 +0100
commitc4060486096efb265bf7f7301fab762f63e5dabd (patch)
tree33279d16410f9daec9b208d8e17a29913f3f8068
parentd5f9469d6da7113348186d85c31c903199c03241 (diff)
downloadguix-c4060486096efb265bf7f7301fab762f63e5dabd.tar
guix-c4060486096efb265bf7f7301fab762f63e5dabd.tar.gz
gnu: Add ruby-parallel.
-rw-r--r--gnu/packages/ruby.scm61
1 files changed, 61 insertions, 0 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index d5bbcca40b..417d85b836 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -33,11 +33,14 @@
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages rails)
#:use-module (gnu packages readline)
#:use-module (gnu packages autotools)
#:use-module (gnu packages java)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libidn)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages lsof)
#:use-module (gnu packages maths)
#:use-module (gnu packages networking)
#:use-module (gnu packages python)
@@ -3132,6 +3135,64 @@ for select languages.")
(home-page "http://coderay.rubychan.de")
(license license:expat)))
+(define-public ruby-parallel
+ (package
+ (name "ruby-parallel")
+ (version "1.12.1")
+ (source
+ (origin
+ (method url-fetch)
+ ;; fetch from github as rubygem does not contain tests
+ (uri (string-append "https://github.com/grosser/parallel/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0jpibyj9xzihllq02vg48gc7w3xklp5srx52ddcfg165mkx6xpwp"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(;; TODO 3 test failures
+ ;; rspec ./spec/parallel_spec.rb:190 # Parallel.in_processes does not open unnecessary pipes
+ ;; rspec './spec/parallel_spec.rb[1:9:7]' # Parallel.each works with SQLite in processes
+ ;; rspec './spec/parallel_spec.rb[1:9:16]' # Parallel.each works with SQLite in threads
+ #:tests? #f
+ #:test-target "rspec-rerun:spec"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-Gemfile
+ (lambda _
+ (substitute* "Gemfile"
+ (("gem 'rspec-legacy_formatters'") "")
+ (("gem 'activerecord.*$") "gem 'activerecord'\n"))))
+ (add-before 'check 'delete-Gemfile.lock
+ (lambda _
+ ;; Bundler isn't being used for fetching dependendencies, so
+ ;; delete the Gemfile.lock
+ (delete-file "Gemfile.lock")
+ #t))
+ (add-before 'build 'patch-gemspec
+ (lambda _
+ (substitute* "parallel.gemspec"
+ (("git ls-files") "find"))
+ #t)))))
+ (native-inputs
+ `(("ruby-rspec" ,ruby-rspec)
+ ("ruby-rspec-rerun" ,ruby-rspec-rerun)
+ ("bundler" ,bundler)
+ ("ruby-activerecord" ,ruby-activerecord)
+ ("ruby-ruby-progressbar" ,ruby-ruby-progressbar)
+ ("ruby-bump" ,ruby-bump)
+ ("procps" ,procps)
+ ("lsof" ,lsof)
+ ("ruby-mysql2" ,ruby-mysql2)
+ ("ruby-sqlite3" ,ruby-sqlite3)
+ ("ruby-i18n" ,ruby-i18n)))
+ (synopsis "Run Ruby code in parallel processes")
+ (description
+ "Run any kind of code in parallel processes")
+ (home-page "https://github.com/grosser/parallel")
+ (license license:expat)))
+
(define-public ruby-parser
(package
(name "ruby-parser")