gnu: Add ruby-rspec-expectations-2.
[jackhill/guix/guix.git] / gnu / packages / ruby.scm
CommitLineData
6ef8c59a 1;;; GNU Guix --- Functional package management for GNU
37ab3aba 2;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl>
6ef8c59a 3;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
f586c877 4;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
37ab3aba 5;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
cf36174f 6;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
64c318f2 7;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
6ef8c59a
PP
8;;;
9;;; This file is part of GNU Guix.
10;;;
11;;; GNU Guix is free software; you can redistribute it and/or modify it
12;;; under the terms of the GNU General Public License as published by
13;;; the Free Software Foundation; either version 3 of the License, or (at
14;;; your option) any later version.
15;;;
16;;; GNU Guix is distributed in the hope that it will be useful, but
17;;; WITHOUT ANY WARRANTY; without even the implied warranty of
18;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;;; GNU General Public License for more details.
20;;;
21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23
24(define-module (gnu packages ruby)
25 #:use-module ((guix licenses) #:prefix license:)
26 #:use-module (gnu packages)
27 #:use-module (gnu packages compression)
4a9e0585 28 #:use-module (gnu packages databases)
6ef8c59a 29 #:use-module (gnu packages readline)
6ef8c59a 30 #:use-module (gnu packages autotools)
ad79eb55 31 #:use-module (gnu packages java)
6ef8c59a
PP
32 #:use-module (gnu packages libffi)
33 #:use-module (gnu packages gdbm)
cc2b77df 34 #:use-module (gnu packages tls)
66e20863 35 #:use-module (gnu packages version-control)
6ef8c59a
PP
36 #:use-module (guix packages)
37 #:use-module (guix download)
bda0c139 38 #:use-module (guix git-download)
6ef8c59a 39 #:use-module (guix utils)
acf735f2 40 #:use-module (guix build-system gnu)
e920bfca 41 #:use-module (gnu packages xml)
acf735f2 42 #:use-module (guix build-system ruby))
6ef8c59a
PP
43
44(define-public ruby
45 (package
46 (name "ruby")
686b1bab 47 (version "2.2.3")
6ef8c59a
PP
48 (source
49 (origin
50 (method url-fetch)
6becfdff
MW
51 (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
52 (version-major+minor version)
12d39eb5 53 "/ruby-" version ".tar.xz"))
6ef8c59a
PP
54 (sha256
55 (base32
686b1bab 56 "19x8gs67klgc3ag815jpin83jn2nv1akgjcgayd6v3h1xplr1v66"))))
6ef8c59a
PP
57 (build-system gnu-build-system)
58 (arguments
59 `(#:test-target "test"
60 #:parallel-tests? #f
61 #:phases
12d39eb5
DT
62 (alist-cons-before
63 'configure 'replace-bin-sh
6ef8c59a 64 (lambda _
12d39eb5
DT
65 (substitute* '("Makefile.in"
66 "ext/pty/pty.c"
67 "io.c"
68 "lib/mkmf.rb"
69 "process.c"
70 "test/rubygems/test_gem_ext_configure_builder.rb"
71 "test/rdoc/test_rdoc_parser.rb"
72 "test/ruby/test_rubyoptions.rb"
73 "test/ruby/test_process.rb"
74 "test/ruby/test_system.rb"
75 "tool/rbinstall.rb")
76 (("/bin/sh") (which "sh"))))
77 %standard-phases)))
6ef8c59a
PP
78 (inputs
79 `(("readline" ,readline)
6ef8c59a
PP
80 ("openssl" ,openssl)
81 ("libffi" ,libffi)
82 ("gdbm" ,gdbm)
83 ("zlib" ,zlib)))
84 (native-search-paths
85 (list (search-path-specification
86 (variable "GEM_PATH")
af070955
LC
87 (files (list (string-append "lib/ruby/gems/"
88 (version-major+minor version)
89 ".0"))))))
6becfdff 90 (synopsis "Programming language interpreter")
6ef8c59a
PP
91 (description "Ruby is a dynamic object-oriented programming language with
92a focus on simplicity and productivity.")
93 (home-page "https://ruby-lang.org")
94 (license license:ruby)))
95
9942e803
PP
96(define-public ruby-2.1
97 (package (inherit ruby)
98 (version "2.1.6")
99 (source
100 (origin
101 (method url-fetch)
102 (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
103 (version-major+minor version)
104 "/ruby-" version ".tar.bz2"))
105 (sha256
106 (base32
107 "1sbcmbhadcxk0509svwxbm2vvgmpf3xjxr1397bgp9x46nz36lkv"))))
108 (arguments
109 `(#:test-target "test"
110 #:parallel-tests? #f
111 #:phases
112 (alist-cons-before
113 'configure 'replace-bin-sh
114 (lambda _
115 (substitute* '("Makefile.in"
116 "ext/pty/pty.c"
117 "io.c"
118 "lib/mkmf.rb"
119 "process.c")
120 (("/bin/sh") (which "sh"))))
121 %standard-phases)))
122 (native-search-paths
123 (list (search-path-specification
124 (variable "GEM_PATH")
125 (files (list (string-append "lib/ruby/gems/"
126 (version-major+minor version)
127 ".0"))))))))
128
218ee89b
PP
129(define-public ruby-1.8
130 (package (inherit ruby)
218ee89b
PP
131 (version "1.8.7-p374")
132 (source
133 (origin
134 (method url-fetch)
6becfdff
MW
135 (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
136 (version-major+minor version)
137 "/ruby-" version ".tar.bz2"))
218ee89b
PP
138 (sha256
139 (base32
140 "1qq7khilwkayrhwmzlxk83scrmiqfi7lgsn4c63znyvz2c1lgqxl"))))
141 (native-search-paths '())
142 (arguments
143 `(#:test-target "test"
144 #:parallel-tests? #f
145 #:phases
146 (alist-cons-before
147 'configure 'replace-bin-sh
148 (lambda _
149 (substitute* '("Makefile.in"
150 "ext/pty/pty.c"
151 "io.c"
152 "lib/mkmf.rb"
153 "process.c")
154 (("/bin/sh") (which "sh"))))
155 %standard-phases)))))
156
bda0c139
DT
157(define-public ruby-hoe
158 (package
159 (name "ruby-hoe")
160 (version "3.13.1")
161 (source (origin
e83c6d00
DT
162 (method url-fetch)
163 (uri (rubygems-uri "hoe" version))
bda0c139
DT
164 (sha256
165 (base32
e83c6d00 166 "1mac13krdrasn9819dd65xj27kklfy0xdbj3p6s2ij4vlcb46h8q"))) )
bda0c139 167 (build-system ruby-build-system)
bda0c139
DT
168 (synopsis "Ruby project management helper")
169 (description
170 "Hoe is a rake/rubygems helper for project Rakefiles. It helps manage,
171maintain, and release projects and includes a dynamic plug-in system allowing
172for easy extensibility. Hoe ships with plug-ins for all the usual project
173tasks including rdoc generation, testing, packaging, deployment, and
174announcement.")
175 (home-page "http://www.zenspider.com/projects/hoe.html")
176 (license license:expat)))
177
022170dc
PP
178(define-public ruby-rake-compiler
179 (package
180 (name "ruby-rake-compiler")
181 (version "0.9.5")
182 (source (origin
183 (method url-fetch)
e83c6d00 184 (uri (rubygems-uri "rake-compiler" version))
022170dc
PP
185 (sha256
186 (base32
e83c6d00 187 "1k8im2vzj849xdgjk6wafspkiwwapqwm738majchb4dnhnsk64cx"))))
022170dc
PP
188 (build-system ruby-build-system)
189 (arguments
e83c6d00 190 '(#:tests? #f)) ; needs cucumber
022170dc 191 (synopsis "Building and packaging helper for Ruby native extensions")
e881752c 192 (description "Rake-compiler provides a framework for building and
022170dc
PP
193packaging native C and Java extensions in Ruby.")
194 (home-page "https://github.com/rake-compiler/rake-compiler")
195 (license license:expat)))
196
acf735f2
DT
197(define-public ruby-i18n
198 (package
199 (name "ruby-i18n")
0bfdfd37 200 (version "0.7.0")
acf735f2
DT
201 (source (origin
202 (method url-fetch)
e83c6d00 203 (uri (rubygems-uri "i18n" version))
acf735f2
DT
204 (sha256
205 (base32
0bfdfd37 206 "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758"))))
acf735f2
DT
207 (build-system ruby-build-system)
208 (arguments
0bfdfd37 209 '(#:tests? #f)) ; no tests
acf735f2
DT
210 (synopsis "Internationalization library for Ruby")
211 (description "Ruby i18n is an internationalization and localization
212solution for Ruby programs. It features translation and localization,
213interpolation of values to translations, pluralization, customizable
214transliteration to ASCII, flexible defaults, bulk lookup, lambdas as
215translation data, custom key/scope separator, custom exception handlers, and
216an extensible architecture with a swappable backend.")
217 (home-page "http://github.com/svenfuchs/i18n")
218 (license license:expat)))
eb0c2dd6
DT
219
220;; RSpec is the dominant testing library for Ruby projects. Even RSpec's
221;; dependencies use RSpec for their test suites! To avoid these circular
222;; dependencies, we disable tests for all of the RSpec-related packages.
223(define ruby-rspec-support
224 (package
225 (name "ruby-rspec-support")
226 (version "3.2.2")
227 (source (origin
228 (method url-fetch)
e83c6d00 229 (uri (rubygems-uri "rspec-support" version))
eb0c2dd6
DT
230 (sha256
231 (base32
e83c6d00 232 "194zry5195ls2hni7r9824vqb5d3qfg4jb15fgj8glfy0rvw3zxl"))))
eb0c2dd6
DT
233 (build-system ruby-build-system)
234 (arguments
235 '(#:tests? #f)) ; avoid dependency cycles
236 (synopsis "RSpec support library")
237 (description "Support utilities for RSpec gems.")
238 (home-page "https://github.com/rspec/rspec-support")
239 (license license:expat)))
240
241(define-public ruby-rspec-core
242 (package
243 (name "ruby-rspec-core")
244 (version "3.2.3")
245 (source (origin
246 (method url-fetch)
e83c6d00 247 (uri (rubygems-uri "rspec-core" version))
eb0c2dd6
DT
248 (sha256
249 (base32
e83c6d00 250 "0k2471iw30gc2cvv67damrx666pmsvx8l0ahk3hm20dhfnmcmpvv"))))
eb0c2dd6
DT
251 (build-system ruby-build-system)
252 (arguments
253 '(#:tests? #f)) ; avoid dependency cycles
254 (propagated-inputs
255 `(("ruby-rspec-support" ,ruby-rspec-support)))
256 (synopsis "RSpec core library")
257 (description "Rspec-core provides the RSpec test runner and example
258groups.")
259 (home-page "https://github.com/rspec/rspec-core")
260 (license license:expat)))
e6962009 261
64c318f2
BW
262(define-public ruby-rspec-core-2
263 (package (inherit ruby-rspec-core)
264 (version "2.14.8")
265 (source (origin
266 (method url-fetch)
267 (uri (rubygems-uri "rspec-core" version))
268 (sha256
269 (base32
270 "0psjy5kdlz3ph39br0m01w65i1ikagnqlg39f8p65jh5q7dz8hwc"))))
271 (propagated-inputs `())))
272
20c05ea9 273(define-public ruby-diff-lcs
e6962009
DT
274 (package
275 (name "ruby-diff-lcs")
276 (version "1.2.5")
277 (source (origin
278 (method url-fetch)
e83c6d00 279 (uri (rubygems-uri "diff-lcs" version))
e6962009
DT
280 (sha256
281 (base32
e83c6d00 282 "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1"))))
e6962009
DT
283 (build-system ruby-build-system)
284 (arguments
285 '(#:tests? #f)) ; avoid dependency cycles
286 (synopsis "Compute the difference between two Enumerable sequences")
287 (description "Diff::LCS computes the difference between two Enumerable
288sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm.
289It includes utilities to create a simple HTML diff output format and a
290standard diff-like tool.")
291 (home-page "https://github.com/halostatue/diff-lcs")
292 (license license:expat)))
293
294(define-public ruby-rspec-expectations
295 (package
296 (name "ruby-rspec-expectations")
297 (version "3.2.1")
298 (source (origin
299 (method url-fetch)
e83c6d00 300 (uri (rubygems-uri "rspec-expectations" version))
e6962009
DT
301 (sha256
302 (base32
e83c6d00 303 "01kmchabgpdcaqdsqg8r0g5gy385xhp1k1jsds3w264ypin17n14"))))
e6962009
DT
304 (build-system ruby-build-system)
305 (arguments
306 '(#:tests? #f)) ; avoid dependency cycles
307 (propagated-inputs
308 `(("ruby-rspec-support" ,ruby-rspec-support)
20c05ea9 309 ("ruby-diff-lcs" ,ruby-diff-lcs)))
e881752c 310 (synopsis "RSpec expectations library")
e6962009
DT
311 (description "Rspec-expectations provides a simple API to express expected
312outcomes of a code example.")
313 (home-page "https://github.com/rspec/rspec-expectations")
314 (license license:expat)))
4f2a0cac 315
fb157f25
BW
316(define-public ruby-rspec-expectations-2
317 (package (inherit ruby-rspec-expectations)
318 (version "2.14.5")
319 (source (origin
320 (method url-fetch)
321 (uri (rubygems-uri "rspec-expectations" version))
322 (sha256
323 (base32
324 "1ni8kw8kjv76jvwjzi4jba00k3qzj9f8wd94vm6inz0jz3gwjqf9"))))
325 (propagated-inputs
326 `(("ruby-diff-lcs" ,ruby-diff-lcs)))))
327
4f2a0cac
DT
328(define-public ruby-rspec-mocks
329 (package
330 (name "ruby-rspec-mocks")
331 (version "3.2.1")
332 (source (origin
333 (method url-fetch)
e83c6d00 334 (uri (rubygems-uri "rspec-mocks" version))
4f2a0cac
DT
335 (sha256
336 (base32
e83c6d00 337 "09yig1lwgxl8fsns71z3xhv7wkg7zvagydh37pvaqpw92dz55jv2"))))
4f2a0cac
DT
338 (build-system ruby-build-system)
339 (arguments
340 '(#:tests? #f)) ; avoid dependency cycles
341 (propagated-inputs
342 `(("ruby-rspec-support" ,ruby-rspec-support)
20c05ea9 343 ("ruby-diff-lcs" ,ruby-diff-lcs)))
4f2a0cac
DT
344 (synopsis "RSpec stubbing and mocking library")
345 (description "Rspec-mocks provides RSpec's \"test double\" framework, with
346support for stubbing and mocking.")
347 (home-page "https://github.com/rspec/rspec-mocks")
348 (license license:expat)))
d4fde1f2
DT
349
350(define-public ruby-rspec
351 (package
352 (name "ruby-rspec")
353 (version "3.2.0")
354 (source (origin
355 (method url-fetch)
e83c6d00 356 (uri (rubygems-uri "rspec" version))
d4fde1f2
DT
357 (sha256
358 (base32
e83c6d00 359 "0lkz01j4yxcwb3g5w6r1l9khnyw3sxib4rrh4npd2pxh390fcc4f"))))
d4fde1f2
DT
360 (build-system ruby-build-system)
361 (arguments
362 '(#:tests? #f)) ; avoid dependency cycles
363 (propagated-inputs
364 `(("ruby-rspec-core" ,ruby-rspec-core)
365 ("ruby-rspec-mocks" ,ruby-rspec-mocks)
366 ("ruby-rspec-expectations" ,ruby-rspec-expectations)))
367 (synopsis "Behavior-driven development framework for Ruby")
368 (description "RSpec is a behavior-driven development (BDD) framework for
369Ruby. This meta-package includes the RSpec test runner, along with the
370expectations and mocks frameworks.")
371 (home-page "http://rspec.info/")
372 (license license:expat)))
2cbc105b
DT
373
374;; Bundler is yet another source of circular dependencies, so we must disable
375;; its test suite as well.
376(define-public bundler
377 (package
378 (name "bundler")
38b327a9 379 (version "1.10.6")
2cbc105b
DT
380 (source (origin
381 (method url-fetch)
e83c6d00 382 (uri (rubygems-uri "bundler" version))
2cbc105b
DT
383 (sha256
384 (base32
38b327a9 385 "1vlzfq0bkkj4jyq6av0y55mh5nj5n0f3mfbmmifwgkh44g8k6agv"))))
2cbc105b
DT
386 (build-system ruby-build-system)
387 (arguments
388 '(#:tests? #f)) ; avoid dependency cycles
389 (synopsis "Ruby gem bundler")
390 (description "Bundler automatically downloads and installs a list of gems
391specified in a \"Gemfile\", as well as their dependencies.")
392 (home-page "http://bundler.io/")
393 (license license:expat)))
98b87b82 394
cf36174f
RW
395(define-public ruby-builder
396 (package
397 (name "ruby-builder")
398 (version "3.2.2")
399 (source (origin
400 (method url-fetch)
401 (uri (rubygems-uri "builder" version))
402 (sha256
403 (base32
404 "14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2"))))
405 (build-system ruby-build-system)
406 (arguments
407 `(#:phases
408 (modify-phases %standard-phases
409 (add-after 'unpack 'do-not-use-rvm
410 (lambda _
411 (substitute* "rakelib/tags.rake"
412 (("RVM_GEMDIR = .*") "RVM_GEMDIR = 'no-rvm-please'\n"))
413 #t)))))
414 (synopsis "Ruby library to create structured data")
415 (description "Builder provides a number of builder objects that make it
416easy to create structured data. Currently the following builder objects are
417supported: XML Markup and XML Events.")
418 (home-page "https://github.com/jimweirich/builder")
419 (license license:expat)))
420
ad79eb55
RW
421(define-public ruby-rjb
422 (package
423 (name "ruby-rjb")
424 (version "1.5.3")
425 (source (origin
426 (method url-fetch)
427 (uri (rubygems-uri "rjb" version))
428 (sha256
429 (base32
430 "0gzs92dagk981s4vrymnqg0vll783b9k564j0cdgp167nc5a2zg4"))))
431 (build-system ruby-build-system)
432 (arguments
433 `(#:tests? #f ; no rakefile
434 #:phases
435 (modify-phases %standard-phases
436 (add-before 'build 'set-java-home
437 (lambda* (#:key inputs #:allow-other-keys)
438 (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
439 #t)))))
440 (native-inputs
441 `(("jdk" ,icedtea7 "jdk")))
442 (synopsis "Ruby-to-Java bridge using the Java Native Interface")
443 (description "RJB is a bridge program that connects Ruby and Java via the
444Java Native Interface.")
445 (home-page "http://www.artonx.org/collabo/backyard/?RubyJavaBridge")
446 (license license:lgpl2.1+)))
447
f9ae2c06
PP
448(define-public ruby-log4r
449 (package
450 (name "ruby-log4r")
451 (version "1.1.10")
452 (source
453 (origin
454 (method url-fetch)
455 (uri (rubygems-uri "log4r" version))
456 (sha256
457 (base32
458 "0ri90q0frfmigkirqv5ihyrj59xm8pq5zcmf156cbdv4r4l2jicv"))))
459 (build-system ruby-build-system)
460 (arguments
461 '(#:tests? #f)) ; no Rakefile in gem
462 (synopsis "Flexible logging library for Ruby")
463 (description "Comprehensive and flexible logging library written
464in Ruby for use in Ruby programs. It features a hierarchical logging
465system of any number of levels, custom level names, logger
466inheritance, multiple output destinations per log event, execution
467tracing, custom formatting, thread safteyness, XML and YAML
468configuration, and more.")
469 (home-page "http://log4r.rubyforge.org/")
470 (license license:bsd-3)))
471
71a03c29
RW
472(define-public ruby-atoulme-antwrap
473 (package
474 (name "ruby-atoulme-antwrap")
475 (version "0.7.5")
476 (source (origin
477 (method url-fetch)
478 (uri (rubygems-uri "atoulme-Antwrap" version))
479 (sha256
480 (base32
481 "05s3iw44lqa81f8nfy5f0xjj808600h82zb9bsh46b9kcq2w2kmz"))))
482 (build-system ruby-build-system)
483 ;; Test data required for most of the tests are not included.
484 (arguments `(#:tests? #f))
485 (native-inputs
486 `(("ruby-hoe" ,ruby-hoe)))
487 (inputs
488 `(("ruby-rjb" ,ruby-rjb)))
489 (synopsis "Ruby wrapper for the Ant build tool")
490 (description "Antwrap is a Ruby module that wraps the Apache Ant build
491tool. Antwrap can be used to invoke Ant tasks from a Ruby or a JRuby
492script.")
493 (home-page "http://rubyforge.org/projects/antwrap/")
494 (license license:expat)))
495
cc53e630
RW
496(define-public ruby-orderedhash
497 (package
498 (name "ruby-orderedhash")
499 (version "0.0.6")
500 (source (origin
501 (method url-fetch)
502 (uri (rubygems-uri "orderedhash" version))
503 (sha256
504 (base32
505 "0fryy7f9jbpx33jq5m402yqj01zcg563k9fsxlqbhmq638p4bzd7"))))
506 (build-system ruby-build-system)
507 (arguments
508 '(#:tests? #f)) ; no test suite
509 (synopsis "Ruby library providing an order-preserving hash")
510 (description "Orderedhash is a Ruby library providing a hash
511implementation that preserves the order of items and features some array-like
512extensions.")
513 (home-page "http://codeforpeople.com/lib/ruby/orderedhash/")
514 (license license:public-domain)))
515
28c5d42d
PP
516(define-public ruby-libxml
517 (package
518 (name "ruby-libxml")
519 (version "2.8.0")
520 (source
521 (origin
522 (method url-fetch)
523 (uri (rubygems-uri "libxml-ruby" version))
524 (sha256
525 (base32
526 "1dhjqp4r9vkdp00l6h1cj8qfndzxlhlxk6b9g0w4v55gz857ilhb"))))
527 (build-system ruby-build-system)
528 (inputs
529 `(("zlib" ,zlib)
530 ("libxml2" ,libxml2)))
531 (arguments
532 '(#:tests? #f ; test suite hangs for unknown reason
533 #:gem-flags
534 (list "--"
535 (string-append "--with-xml2-include="
536 (assoc-ref %build-inputs "libxml2")
537 "/include/libxml2" ))))
538 (synopsis "Ruby bindings for GNOME Libxml2")
539 (description "The Libxml-Ruby project provides Ruby language bindings for
540the GNOME Libxml2 XML toolkit.")
541 (home-page "http://xml4r.github.com/libxml-ruby")
542 (license license:expat)))
543
8b9bde07
RW
544(define-public ruby-xml-simple
545 (package
546 (name "ruby-xml-simple")
547 (version "1.1.5")
548 (source (origin
549 (method url-fetch)
550 (uri (rubygems-uri "xml-simple" version))
551 (sha256
552 (base32
553 "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8"))))
554 (build-system ruby-build-system)
555 (arguments
556 '(#:tests? #f)) ; no test suite
557 (synopsis "Simple Ruby library for XML processing")
558 (description "This library provides a simple API for XML processing in
559Ruby.")
560 (home-page "https://github.com/maik/xml-simple")
561 (license license:ruby)))
562
2cb3ab48
RW
563(define-public ruby-thor
564 (package
565 (name "ruby-thor")
566 (version "0.19.1")
567 (source (origin
568 (method url-fetch)
569 (uri (rubygems-uri "thor" version))
570 (sha256
571 (base32
572 "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z"))))
573 (build-system ruby-build-system)
574 (arguments
575 '(#:tests? #f)) ; no test suite
576 (native-inputs
577 `(("bundler" ,bundler)))
578 (synopsis "Ruby toolkit for building command-line interfaces")
579 (description "Thor is a toolkit for building powerful command-line
580interfaces.")
581 (home-page "http://whatisthor.com/")
582 (license license:expat)))
583
ec79018e
RW
584(define-public ruby-lumberjack
585 (package
586 (name "ruby-lumberjack")
587 (version "1.0.9")
588 (source (origin
589 (method url-fetch)
590 (uri (rubygems-uri "lumberjack" version))
591 (sha256
592 (base32
593 "162frm2bwy58pj8ccsdqa4a6i0csrhb9h5l3inhkl1ivgfc8814l"))))
594 (build-system ruby-build-system)
595 (native-inputs
596 `(("ruby-rspec" ,ruby-rspec)))
597 (synopsis "Logging utility library for Ruby")
598 (description "Lumberjack is a simple logging utility that can be a drop in
599replacement for Logger or ActiveSupport::BufferedLogger. It provides support
600for automatically rolling log files even with multiple processes writing the
601same log file.")
602 (home-page "http://github.com/bdurand/lumberjack")
603 (license license:expat)))
604
70b4cf38
RW
605(define-public ruby-nenv
606 (package
607 (name "ruby-nenv")
608 (version "0.2.0")
609 (source (origin
610 (method url-fetch)
611 (uri (rubygems-uri "nenv" version))
612 (sha256
613 (base32
614 "152wxwri0afwgnxdf93gi6wjl9rr5z7vwp8ln0gpa3rddbfc27s6"))))
615 (build-system ruby-build-system)
616 (arguments
617 `(#:tests? #f)) ; no tests included
618 (native-inputs
619 `(("ruby-rspec" ,ruby-rspec)
620 ("bundler" ,bundler)))
621 (synopsis "Ruby interface for modifying the environment")
622 (description "Nenv provides a convenient wrapper for Ruby's ENV to modify
623and inspect the environment.")
624 (home-page "https://github.com/e2/nenv")
625 (license license:expat)))
626
c5d14d42
RW
627(define-public ruby-shellany
628 (package
629 (name "ruby-shellany")
630 (version "0.0.1")
631 (source (origin
632 (method url-fetch)
633 (uri (rubygems-uri "shellany" version))
634 (sha256
635 (base32
636 "1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf"))))
637 (build-system ruby-build-system)
638 (arguments
639 `(#:test-target "default"
640 #:phases
641 (modify-phases %standard-phases
642 (add-after 'unpack 'fix-version-test
643 (lambda _
644 (substitute* "spec/shellany_spec.rb"
645 (("^RSpec") "require \"shellany\"\nRSpec"))
646 #t)))))
647 (native-inputs
648 `(("ruby-rspec" ,ruby-rspec)
649 ("ruby-nenv" ,ruby-nenv)
650 ("bundler" ,bundler)))
651 (synopsis "Capture command output")
652 (description "Shellany is a Ruby library providing functions to capture
653the output produced by running shell commands.")
654 (home-page "https://rubygems.org/gems/shellany")
655 (license license:expat)))
656
d152162f
RW
657(define-public ruby-notiffany
658 (package
659 (name "ruby-notiffany")
660 (version "0.0.7")
661 (source (origin
662 (method url-fetch)
663 (uri (rubygems-uri "notiffany" version))
664 (sha256
665 (base32
666 "1v5x1w59qq85r6dpv3y9ga34dfd7hka1qxyiykaw7gm0i6kggbhi"))))
667 (build-system ruby-build-system)
668 ;; Tests are not included in the gem.
669 (arguments `(#:tests? #f))
670 (propagated-inputs
671 `(("ruby-shellany" ,ruby-shellany)
672 ("ruby-nenv" ,ruby-nenv)))
673 (native-inputs
674 `(("bundler" ,bundler)))
675 (synopsis "Wrapper libray for notification libraries")
676 (description "Notiffany is a Ruby wrapper libray for notification
677libraries such as Libnotify.")
678 (home-page "https://github.com/guard/notiffany")
679 (license license:expat)))
680
8528365b
RW
681(define-public ruby-formatador
682 (package
683 (name "ruby-formatador")
684 (version "0.2.5")
685 (source (origin
686 (method url-fetch)
687 (uri (rubygems-uri "formatador" version))
688 (sha256
689 (base32
690 "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0"))))
691 (build-system ruby-build-system)
692 ;; Circular dependency: Tests require ruby-shindo, which requires
693 ;; ruby-formatador at runtime.
694 (arguments `(#:tests? #f))
695 (synopsis "Ruby library to format text on stdout")
696 (description "Formatador is a Ruby library to format text printed to the
697standard output stream.")
698 (home-page "http://github.com/geemus/formatador")
699 (license license:expat)))
700
7ac4610f
RW
701(define-public ruby-shindo
702 (package
703 (name "ruby-shindo")
704 (version "0.3.8")
705 (source (origin
706 (method url-fetch)
707 (uri (rubygems-uri "shindo" version))
708 (sha256
709 (base32
710 "0s8v1jbz8i0jh92f2fgxb3p51l1azrpkc8nv4mhrqy4vndpvd7wq"))))
711 (build-system ruby-build-system)
712 (arguments
713 `(#:test-target "shindo_tests"
714 #:phases
715 (modify-phases %standard-phases
716 (add-after 'unpack 'fix-tests
717 (lambda _
718 (substitute* "Rakefile"
719 (("system \"shindo") "system \"./bin/shindo")
720 ;; This test doesn't work, so we disable it.
721 (("fail \"The build_error test should fail") "#"))
722 #t)))))
723 (propagated-inputs
724 `(("ruby-formatador" ,ruby-formatador)))
725 (synopsis "Simple depth first Ruby testing")
726 (description "Shindo is a simple depth first testing library for Ruby.")
727 (home-page "https://github.com/geemus/shindo")
728 (license license:expat)))
729
98b87b82
DT
730(define-public ruby-useragent
731 (package
732 (name "ruby-useragent")
733 (version "0.13.3")
734 (source (origin
735 (method url-fetch)
e83c6d00 736 (uri (rubygems-uri "useragent" version))
98b87b82
DT
737 (sha256
738 (base32
e83c6d00 739 "0kz7yyz7528bv4a2kfymvkcm8whqcddhmgaw1ksw1d90n30hhkpc"))))
98b87b82
DT
740 (build-system ruby-build-system)
741 (arguments
e83c6d00 742 '(#:tests? #f)) ; no test suite
98b87b82
DT
743 (synopsis "HTTP user agent parser for Ruby")
744 (description "UserAgent is a Ruby library that parses and compares HTTP
745User Agents.")
746 (home-page "https://github.com/gshutler/useragent")
747 (license license:expat)))
96086cc5
DT
748
749(define-public ruby-bacon
750 (package
751 (name "ruby-bacon")
e83c6d00 752 (version "1.2.0")
96086cc5
DT
753 (source (origin
754 (method url-fetch)
e83c6d00 755 (uri (rubygems-uri "bacon" version))
96086cc5
DT
756 (sha256
757 (base32
e83c6d00 758 "1f06gdj77bmwzc1k5iragl1595hbn67yc7sqvs56ca8plrr2vmai"))))
96086cc5 759 (build-system ruby-build-system)
96086cc5
DT
760 (synopsis "Small RSpec clone")
761 (description "Bacon is a small RSpec clone providing all essential
762features.")
763 (home-page "https://github.com/chneukirchen/bacon")
764 (license license:expat)))
de59d316
DT
765
766(define-public ruby-arel
767 (package
768 (name "ruby-arel")
769 (version "6.0.0")
770 (source (origin
771 (method url-fetch)
e83c6d00 772 (uri (rubygems-uri "arel" version))
de59d316
DT
773 (sha256
774 (base32
e83c6d00 775 "18wnfnzr2i5p3fygsddjbi1cimws6823nbk8drxidmnj8jz7h0ar"))))
de59d316 776 (build-system ruby-build-system)
e83c6d00
DT
777 (arguments
778 '(#:tests? #f)) ; no test suite
de59d316
DT
779 (synopsis "SQL AST manager for Ruby")
780 (description "Arel is a SQL AST manager for Ruby. It simplifies the
781generation of complex SQL queries and adapts to various relational database
782implementations.")
783 (home-page "https://github.com/rails/arel")
784 (license license:expat)))
e259bdf0
DT
785
786(define-public ruby-connection-pool
787 (package
788 (name "ruby-connection-pool")
789 (version "2.2.0")
790 (source (origin
791 (method url-fetch)
e83c6d00 792 (uri (rubygems-uri "connection_pool" version))
e259bdf0
DT
793 (sha256
794 (base32
e83c6d00 795 "1b2bb3k39ni5mzcnqlv9y4yjkbin20s7dkwzp0jw2jf1rmzcgrmy"))))
e259bdf0
DT
796 (build-system ruby-build-system)
797 (native-inputs
798 `(("bundler" ,bundler)))
799 (synopsis "Generic connection pool for Ruby")
800 (description "Connection_pool provides a generic connection pooling
801interface for Ruby programs.")
802 (home-page "https://github.com/mperham/connection_pool")
803 (license license:expat)))
4c0aeb44
DT
804
805(define-public ruby-net-http-persistent
806 (package
807 (name "ruby-net-http-persistent")
808 (version "2.9.4")
809 (source (origin
810 (method url-fetch)
e83c6d00 811 (uri (rubygems-uri "net-http-persistent" version))
4c0aeb44
DT
812 (sha256
813 (base32
e83c6d00 814 "1y9fhaax0d9kkslyiqi1zys6cvpaqx9a0y0cywp24rpygwh4s9r4"))))
4c0aeb44 815 (build-system ruby-build-system)
4c0aeb44
DT
816 (native-inputs
817 `(("ruby-connection-pool" ,ruby-connection-pool)
818 ("ruby-hoe" ,ruby-hoe)))
819 (synopsis "Persistent HTTP connection manager")
820 (description "Net::HTTP::Persistent manages persistent HTTP connections
821using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
822 (home-page "https://github.com/drbrain/net-http-persistent")
823 (license license:expat)))
afbbdf77 824
2206e948
DT
825(define-public ruby-minitest
826 (package
827 (name "ruby-minitest")
828 (version "5.7.0")
829 (source (origin
e83c6d00
DT
830 (method url-fetch)
831 (uri (rubygems-uri "minitest" version))
2206e948
DT
832 (sha256
833 (base32
e83c6d00 834 "0rxqfakp629mp3vwda7zpgb57lcns5znkskikbfd0kriwv8i1vq8"))))
2206e948 835 (build-system ruby-build-system)
2206e948
DT
836 (native-inputs
837 `(("ruby-hoe" ,ruby-hoe)))
838 (synopsis "Small test suite library for Ruby")
839 (description "Minitest provides a complete suite of Ruby testing
840facilities supporting TDD, BDD, mocking, and benchmarking.")
841 (home-page "https://github.com/seattlerb/minitest")
842 (license license:expat)))
843
35130835
DT
844(define-public ruby-minitest-sprint
845 (package
846 (name "ruby-minitest-sprint")
847 (version "1.1.0")
848 (source (origin
e83c6d00
DT
849 (method url-fetch)
850 (uri (rubygems-uri "minitest-sprint" version))
35130835
DT
851 (sha256
852 (base32
e83c6d00 853 "179d6pj56l9xzm46fqsqj10mzjkr1f9fv4cxa8wvchs97hqz33w1"))))
35130835 854 (build-system ruby-build-system)
35130835
DT
855 (native-inputs
856 `(("ruby-hoe" ,ruby-hoe)
857 ("ruby-minitest" ,ruby-minitest)))
858 (synopsis "Fast test suite runner for minitest")
859 (description "Minitest-sprint is a test runner for minitest that makes it
860easier to re-run individual failing tests.")
861 (home-page "https://github.com/seattlerb/minitest-sprint")
862 (license license:expat)))
863
0808e361
DT
864(define-public ruby-minitest-bacon
865 (package
866 (name "ruby-minitest-bacon")
867 (version "1.0.2")
868 (source (origin
e83c6d00
DT
869 (method url-fetch)
870 (uri (rubygems-uri "minitest-bacon" version))
0808e361
DT
871 (sha256
872 (base32
e83c6d00 873 "0cm7r68422743i3b6fm4rrm0r6cnnjmglq5gcmmgl1f0rk5hnf6r"))))
0808e361 874 (build-system ruby-build-system)
0808e361
DT
875 (native-inputs
876 `(("ruby-hoe" ,ruby-hoe)))
877 (inputs
878 `(("ruby-minitest" ,ruby-minitest)))
879 (synopsis "Bacon compatibility library for minitest")
880 (description "Minitest-bacon extends minitest with bacon-like
881functionality, making it easier to migrate test suites from bacon to minitest.")
882 (home-page "https://github.com/seattlerb/minitest-bacon")
883 (license license:expat)))
884
afbbdf77
DT
885(define-public ruby-daemons
886 (package
887 (name "ruby-daemons")
888 (version "1.2.2")
889 (source (origin
890 (method url-fetch)
e83c6d00 891 (uri (rubygems-uri "daemons" version))
afbbdf77
DT
892 (sha256
893 (base32
e83c6d00 894 "121c7vkimg3baxga69xvdkwxiq8wkmxqvdbyqi5i82vhih5d3cn3"))))
afbbdf77
DT
895 (build-system ruby-build-system)
896 (arguments
897 `(#:tests? #f)) ; no test suite
898 (synopsis "Daemonize Ruby programs")
899 (description "Daemons provides a way to wrap existing Ruby scripts to be
900run as a daemon and to be controlled by simple start/stop/restart commands.")
901 (home-page "https://github.com/thuehlinger/daemons")
902 (license license:expat)))
66e20863
DT
903
904(define-public ruby-git
905 (package
906 (name "ruby-git")
907 (version "1.2.9.1")
908 (source (origin
909 (method url-fetch)
e83c6d00 910 (uri (rubygems-uri "git" version))
66e20863
DT
911 (sha256
912 (base32
e83c6d00 913 "1sqfj8lmhl7c5zamcckkpik4izfph2zkv6krw0i8mzj5pdws5acs"))))
66e20863
DT
914 (build-system ruby-build-system)
915 (arguments
e83c6d00
DT
916 `(#:tests? #f ; no tests
917 #:phases (modify-phases %standard-phases
918 (add-after 'install 'patch-git-binary
919 (lambda* (#:key inputs outputs #:allow-other-keys)
66e20863
DT
920 ;; Make the default git binary an absolute path to the
921 ;; store.
e83c6d00
DT
922 (let ((git (string-append (assoc-ref inputs "git")
923 "/bin/git"))
924 (config (string-append (getenv "GEM_HOME")
925 "/gems/git-" ,version
926 "/lib/git/config.rb")))
927 (substitute* (list config)
66e20863
DT
928 (("'git'")
929 (string-append "'" git "'")))
e83c6d00 930 #t))))))
66e20863
DT
931 (inputs
932 `(("git" ,git)))
933 (synopsis "Ruby wrappers for Git")
934 (description "Ruby/Git is a Ruby library that can be used to create, read
935and manipulate Git repositories by wrapping system calls to the git binary.")
936 (home-page "https://github.com/schacon/ruby-git")
937 (license license:expat)))
71d3e2c2
DT
938
939(define-public ruby-slop
940 (package
941 (name "ruby-slop")
942 (version "4.1.0")
943 (source (origin
944 (method url-fetch)
e83c6d00 945 (uri (rubygems-uri "slop" version))
71d3e2c2
DT
946 (sha256
947 (base32
e83c6d00 948 "0dj0ps6v1mqd02k84mgwd7hp578n2bzl7c51h3grdhxfl3jkfsj5"))))
71d3e2c2
DT
949 (build-system ruby-build-system)
950 (native-inputs
951 `(("ruby-minitest" ,ruby-minitest)))
952 (synopsis "Ruby command line option parser")
953 (description "Slop provides a Ruby domain specific language for gathering
954options and parsing command line flags.")
955 (home-page "https://github.com/leejarvis/slop")
956 (license license:expat)))
e778a549 957
5337f8b9
DT
958(define-public ruby-slop-3
959 (package (inherit ruby-slop)
960 (version "3.6.0")
961 (source (origin
962 (method url-fetch)
963 (uri (rubygems-uri "slop" version))
964 (sha256
965 (base32
966 "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n"))))))
967
e778a549
DT
968(define-public ruby-multipart-post
969 (package
970 (name "ruby-multipart-post")
971 (version "2.0.0")
972 (source (origin
973 (method url-fetch)
e83c6d00 974 (uri (rubygems-uri "multipart-post" version))
e778a549
DT
975 (sha256
976 (base32
e83c6d00 977 "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"))))
e778a549
DT
978 (build-system ruby-build-system)
979 (native-inputs
980 `(("bundler" ,bundler)))
981 (synopsis "Multipart POST library for Ruby")
982 (description "Multipart-Post Adds multipart POST capability to Ruby's
983net/http library.")
984 (home-page "https://github.com/nicksieger/multipart-post")
985 (license license:expat)))
f8da3af0
DT
986
987(define-public ruby-arel
988 (package
989 (name "ruby-arel")
990 (version "6.0.3")
991 (source (origin
992 (method url-fetch)
993 (uri (rubygems-uri "arel" version))
994 (sha256
995 (base32
996 "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
997 (build-system ruby-build-system)
998 (arguments '(#:tests? #f)) ; no tests
999 (home-page "https://github.com/rails/arel")
1000 (synopsis "SQL AST manager for Ruby")
1001 (description "Arel is a SQL AST manager for Ruby. It simplifies the
1002generation of complex SQL queries and is compatible with various RDBMSes.")
1003 (license license:expat)))
616eaead
DT
1004
1005(define-public ruby-minitar
1006 (package
1007 (name "ruby-minitar")
1008 (version "0.5.4")
1009 (source
1010 (origin
1011 (method url-fetch)
1012 (uri (rubygems-uri "minitar" version))
1013 (sha256
1014 (base32
1015 "1vpdjfmdq1yc4i620frfp9af02ia435dnpj8ybsd7dc3rypkvbka"))))
1016 (build-system ruby-build-system)
1017 (arguments
1018 '(#:tests? #f)) ; missing a gemspec
1019 (synopsis "Ruby library and utility for handling tar archives")
1020 (description
1021 "Archive::Tar::Minitar is a pure-Ruby library and command-line utility
1022that provides the ability to deal with POSIX tar archive files.")
1023 (home-page "http://www.github.com/atoulme/minitar")
1024 (license (list license:gpl2+ license:ruby))))
bea1c0e2
DT
1025
1026(define-public ruby-mini-portile
1027 (package
1028 (name "ruby-mini-portile")
1029 (version "0.6.2")
1030 (source
1031 (origin
1032 (method url-fetch)
1033 (uri (rubygems-uri "mini_portile" version))
1034 (sha256
1035 (base32
1036 "0h3xinmacscrnkczq44s6pnhrp4nqma7k056x5wv5xixvf2wsq2w"))))
1037 (build-system ruby-build-system)
1038 (arguments
1039 '(#:tests? #f)) ; tests require network access
1040 (synopsis "Ports system for Ruby developers")
1041 (description "Mini-portile is a port/recipe system for Ruby developers.
1042It provides a standard way to compile against specific versions of libraries
1043to reproduce user environments.")
1044 (home-page "http://github.com/flavorjones/mini_portile")
1045 (license license:expat)))
e920bfca
DT
1046
1047(define-public ruby-nokogiri
1048 (package
1049 (name "ruby-nokogiri")
1050 (version "1.6.6.2")
1051 (source (origin
1052 (method url-fetch)
1053 (uri (rubygems-uri "nokogiri" version))
1054 (sha256
1055 (base32
1056 "1j4qv32qjh67dcrc1yy1h8sqjnny8siyy4s44awla8d6jk361h30"))))
1057 (build-system ruby-build-system)
1058 (arguments
1059 ;; Tests fail because Nokogiri can only test with an installed extension,
1060 ;; and also because many test framework dependencies are missing.
1061 '(#:tests? #f
1062 #:gem-flags (list "--" "--use-system-libraries"
1063 (string-append "--with-xml2-include="
1064 (assoc-ref %build-inputs "libxml2")
1065 "/include/libxml2" ))))
1066 (native-inputs
1067 `(("ruby-hoe" ,ruby-hoe)
1068 ("ruby-rake-compiler", ruby-rake-compiler)))
1069 (inputs
1070 `(("zlib" ,zlib)
1071 ("libxml2" ,libxml2)
1072 ("libxslt" ,libxslt)))
1073 (propagated-inputs
1074 `(("ruby-mini-portile" ,ruby-mini-portile)))
1075 (synopsis "HTML, XML, SAX, and Reader parser for Ruby")
1076 (description "Nokogiri (鋸) parses and searches XML/HTML, and features
1077both CSS3 selector and XPath 1.0 support.")
1078 (home-page "http://www.nokogiri.org/")
1079 (license license:expat)))
30b0b725
DT
1080
1081(define-public ruby-method-source
1082 (package
1083 (name "ruby-method-source")
1084 (version "0.8.2")
1085 (source
1086 (origin
1087 (method url-fetch)
1088 (uri (rubygems-uri "method_source" version))
1089 (sha256
1090 (base32
1091 "1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2"))))
1092 (build-system ruby-build-system)
1093 (native-inputs
1094 `(("ruby-bacon" ,ruby-bacon)
1095 ("git" ,git)))
1096 (synopsis "Retrieve the source code for Ruby methods")
1097 (description "Method_source retrieves the source code for Ruby methods.
1098Additionally, it can extract source code from Proc and Lambda objects or just
1099extract comments.")
1100 (home-page "https://github.com/banister/method_source")
1101 (license license:expat)))
2e3fdea4
DT
1102
1103(define-public ruby-coderay
1104 (package
1105 (name "ruby-coderay")
1106 (version "1.1.0")
1107 (source
1108 (origin
1109 (method url-fetch)
1110 (uri (rubygems-uri "coderay" version))
1111 (sha256
1112 (base32
1113 "059wkzlap2jlkhg460pkwc1ay4v4clsmg1bp4vfzjzkgwdckr52s"))))
1114 (build-system ruby-build-system)
1115 (arguments
1116 '(#:tests? #f)) ; missing test files
1117 (synopsis "Ruby syntax highlighting library")
1118 (description "Coderay is a Ruby library that provides syntax highlighting
1119for select languages.")
1120 (home-page "http://coderay.rubychan.de")
1121 (license license:expat)))
96e76083
DT
1122
1123(define-public ruby-pry
1124 (package
1125 (name "ruby-pry")
1126 (version "0.10.1")
1127 (source
1128 (origin
1129 (method url-fetch)
1130 (uri (rubygems-uri "pry" version))
1131 (sha256
1132 (base32
1133 "1j0r5fm0wvdwzbh6d6apnp7c0n150hpm9zxpm5xvcgfqr36jaj8z"))))
1134 (build-system ruby-build-system)
1135 (arguments
1136 '(#:tests? #f)) ; no tests
1137 (propagated-inputs
1138 `(("ruby-coderay" ,ruby-coderay)
1139 ("ruby-method-source" ,ruby-method-source)
1140 ("ruby-slop" ,ruby-slop-3)))
1141 (synopsis "Ruby REPL")
1142 (description "Pry is an IRB alternative and runtime developer console for
1143Ruby. It features syntax highlighting, a plugin architecture, runtime
1144invocation, and source and documentation browsing.")
1145 (home-page "http://pryrepl.org")
1146 (license license:expat)))
1415792a
DT
1147
1148(define-public ruby-thread-safe
1149 (package
1150 (name "ruby-thread-safe")
1151 (version "0.3.5")
1152 (source
1153 (origin
1154 (method url-fetch)
1155 (uri (rubygems-uri "thread_safe" version))
1156 (sha256
1157 (base32
1158 "1hq46wqsyylx5afkp6jmcihdpv4ynzzq9ygb6z2pb1cbz5js0gcr"))))
1159 (build-system ruby-build-system)
1160 (arguments
1161 '(#:tests? #f)) ; needs simplecov, among others
1162 (synopsis "Thread-safe utilities for Ruby")
1163 (description "The thread_safe library provides thread-safe collections and
1164utilities for Ruby.")
1165 (home-page "https://github.com/ruby-concurrency/thread_safe")
1166 (license license:asl2.0)))
08a1b701
DT
1167
1168(define-public ruby-tzinfo
1169 (package
1170 (name "ruby-tzinfo")
1171 (version "1.2.2")
1172 (source
1173 (origin
1174 (method url-fetch)
1175 (uri (rubygems-uri "tzinfo" version))
1176 (sha256
1177 (base32
1178 "1c01p3kg6xvy1cgjnzdfq45fggbwish8krd0h864jvbpybyx7cgx"))))
1179 (build-system ruby-build-system)
1180 (propagated-inputs
1181 `(("ruby-thread-safe" ,ruby-thread-safe)))
1182 (synopsis "Time zone library for Ruby")
1183 (description "TZInfo is a Ruby library that provides daylight savings
1184aware transformations between times in different time zones.")
1185 (home-page "http://tzinfo.github.io")
1186 (license license:expat)))
c99e2247
DT
1187
1188(define-public ruby-json
1189 (package
1190 (name "ruby-json")
1191 (version "1.8.3")
1192 (source
1193 (origin
1194 (method url-fetch)
1195 (uri (rubygems-uri "json" version))
1196 (sha256
1197 (base32
1198 "1nsby6ry8l9xg3yw4adlhk2pnc7i0h0rznvcss4vk3v74qg0k8lc"))))
1199 (build-system ruby-build-system)
1200 (arguments '(#:tests? #f)) ; dependency cycle with sdoc
1201 (synopsis "JSON library for Ruby")
1202 (description "This Ruby library provides a JSON implementation written as
1203a native C extension.")
1204 (home-page "http://json-jruby.rubyforge.org/")
1205 (license (list license:ruby license:gpl2)))) ; GPL2 only
5ff89a1b
DT
1206
1207(define-public ruby-activesupport
1208 (package
1209 (name "ruby-activesupport")
1210 (version "4.2.4")
1211 (source
1212 (origin
1213 (method url-fetch)
1214 (uri (rubygems-uri "activesupport" version))
1215 (sha256
1216 (base32
1217 "19n38rj6r1gyxgka18qvcxyla0fwan8a5p3ghq0pp8aj93sbmr6f"))))
1218 (build-system ruby-build-system)
1219 (arguments
1220 '(#:tests? #f)) ; no tests
1221 (propagated-inputs
1222 `(("ruby-i18n" ,ruby-i18n)
1223 ("ruby-json" ,ruby-json)
1224 ("ruby-minitest" ,ruby-minitest)
1225 ("ruby-thread-safe" ,ruby-thread-safe)
1226 ("ruby-tzinfo" ,ruby-tzinfo)))
1227 (synopsis "Ruby on Rails utility library")
1228 (description "ActiveSupport is a toolkit of support libraries and Ruby
1229core extensions extracted from the Rails framework. It includes support for
1230multibyte strings, internationalization, time zones, and testing.")
1231 (home-page "http://www.rubyonrails.org")
1232 (license license:expat)))
f847ad7b
DT
1233
1234(define-public ruby-ox
1235 (package
1236 (name "ruby-ox")
1237 (version "2.2.1")
1238 (source
1239 (origin
1240 (method url-fetch)
1241 (uri (rubygems-uri "ox" version))
1242 (sha256
1243 (base32
1244 "00i11xd4ayh7349rhgskajfxn0qzkb74ab01217zix9qcapssxax"))))
1245 (build-system ruby-build-system)
1246 (arguments
1247 '(#:tests? #f)) ; no tests
1248 (synopsis "Optimized XML library for Ruby")
1249 (description
1250 "Optimized XML (Ox) is a fast XML parser and object serializer for Ruby
1251written as a native C extension. It was designed to be an alternative to
1252Nokogiri and other Ruby XML parsers for generic XML parsing and as an
1253alternative to Marshal for Object serialization. ")
1254 (home-page "http://www.ohler.com/ox")
1255 (license license:expat)))
4a9e0585
DT
1256
1257(define-public ruby-pg
1258 (package
1259 (name "ruby-pg")
1260 (version "0.18.2")
1261 (source
1262 (origin
1263 (method url-fetch)
1264 (uri (rubygems-uri "pg" version))
1265 (sha256
1266 (base32
1267 "1axxbf6ij1iqi3i1r3asvjc80b0py5bz0m2wy5kdi5xkrpr82kpf"))))
1268 (build-system ruby-build-system)
1269 (arguments
1270 '(#:test-target "spec"))
1271 (native-inputs
1272 `(("ruby-rake-compiler" ,ruby-rake-compiler)
1273 ("ruby-hoe" ,ruby-hoe)
1274 ("ruby-rspec" ,ruby-rspec)))
1275 (inputs
1276 `(("postgresql" ,postgresql)))
1277 (synopsis "Ruby interface to PostgreSQL")
1278 (description "Pg is the Ruby interface to the PostgreSQL RDBMS. It works
1279with PostgreSQL 8.4 and later.")
1280 (home-page "https://bitbucket.org/ged/ruby-pg")
1281 (license license:ruby)))
468e5657
DT
1282
1283(define-public ruby-byebug
1284 (package
1285 (name "ruby-byebug")
1286 (version "6.0.2")
1287 (source
1288 (origin
1289 (method url-fetch)
1290 (uri (rubygems-uri "byebug" version))
1291 (sha256
1292 (base32
1293 "0537h9qbhr6csahmzyn4lk1g5b2lcligbzd21gfy93nx9lbfdnzc"))))
1294 (build-system ruby-build-system)
1295 (arguments
1296 '(#:tests? #f)) ; no tests
1297 (synopsis "Debugger for Ruby 2")
1298 (description "Byebug is a Ruby 2 debugger implemented using the Ruby 2
1299TracePoint C API for execution control and the Debug Inspector C API for call
1300stack navigation. The core component provides support that front-ends can
1301build on. It provides breakpoint handling and bindings for stack frames among
1302other things and it comes with a command line interface.")
1303 (home-page "http://github.com/deivid-rodriguez/byebug")
1304 (license license:bsd-2)))
64b6ccc3
DT
1305
1306(define-public ruby-rack
1307 (package
1308 (name "ruby-rack")
1309 (version "1.6.4")
1310 (source
1311 (origin
1312 (method url-fetch)
1313 (uri (rubygems-uri "rack" version))
1314 (sha256
1315 (base32
1316 "09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5"))))
1317 (build-system ruby-build-system)
1318 (arguments
1319 '(#:phases
1320 (modify-phases %standard-phases
1321 (add-before 'check 'fix-tests
1322 (lambda _
1323 ;; A few of the tests use the length of a file on disk for
1324 ;; Content-Length and Content-Range headers. However, this file
1325 ;; has a shebang in it which an earlier phase patches, growing
1326 ;; the file size from 193 to 239 bytes when the store prefix is
1327 ;; "/gnu/store".
1328 (let ((size-diff (- (string-length (which "ruby"))
1329 (string-length "/usr/bin/env ruby"))))
1330 (substitute* '("test/spec_file.rb")
1331 (("193")
1332 (number->string (+ 193 size-diff)))
1333 (("bytes(.)22-33" all delimiter)
1334 (string-append "bytes"
1335 delimiter
1336 (number->string (+ 22 size-diff))
1337 "-"
1338 (number->string (+ 33 size-diff))))))
1339 #t)))))
1340 (native-inputs
1341 `(("ruby-bacon" ,ruby-bacon)))
1342 (synopsis "Unified web application interface for Ruby")
1343 (description "Rack provides a minimal, modular and adaptable interface for
1344developing web applications in Ruby. By wrapping HTTP requests and responses,
1345it unifies the API for web servers, web frameworks, and software in between
1346into a single method call.")
1347 (home-page "http://rack.github.io/")
1348 (license license:expat)))
62e4cc5a 1349
6aaa815e
PP
1350(define-public ruby-docile
1351 (package
1352 (name "ruby-docile")
1353 (version "1.1.5")
1354 (source
1355 (origin
1356 (method url-fetch)
1357 (uri (rubygems-uri "docile" version))
1358 (sha256
1359 (base32
1360 "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx"))))
1361 (build-system ruby-build-system)
1362 (arguments
1363 '(#:tests? #f)) ; needs github-markup, among others
1364 (synopsis "Ruby EDSL helper library")
1365 (description "Docile is a Ruby library that provides an interface for
1366creating embedded domain specific languages (EDSLs) that manipulate existing
1367Ruby classes.")
1368 (home-page "https://ms-ati.github.io/docile/")
1369 (license license:expat)))
1370
62e4cc5a
PP
1371(define-public ruby-gherkin3
1372 (package
1373 (name "ruby-gherkin3")
1374 (version "3.1.1")
1375 (source
1376 (origin
1377 (method url-fetch)
1378 (uri (rubygems-uri "gherkin3" version))
1379 (sha256
1380 (base32
1381 "0xsyxhqa1gwcxzvsdy4didaiq5vam8ma3fbwbw2w60via4k6r1z9"))))
1382 (build-system ruby-build-system)
1383 (native-inputs
1384 `(("bundler" ,bundler)))
1385 (arguments
1386 '(#:tests? #f)) ; needs simplecov, among others
1387 (synopsis "Gherkin parser for Ruby")
1388 (description "Gherkin 3 is a parser and compiler for the Gherkin language.
1389It is intended to replace Gherkin 2 and be used by all Cucumber
1390implementations to parse '.feature' files.")
1391 (home-page "https://github.com/cucumber/gherkin3")
1392 (license license:expat)))
cd89fecb
PP
1393
1394(define-public ruby-cucumber-core
1395 (package
1396 (name "ruby-cucumber-core")
1397 (version "1.3.0")
1398 (source
1399 (origin
1400 (method url-fetch)
1401 (uri (rubygems-uri "cucumber-core" version))
1402 (sha256
1403 (base32
1404 "12mrzf0s96izpq0k10lahlkgwc4fjs0zfs344rh8r8h3w3jyppr8"))))
1405 (build-system ruby-build-system)
1406 (propagated-inputs
1407 `(("ruby-gherkin3" ,ruby-gherkin3)))
1408 (native-inputs
1409 `(("bundler" ,bundler)))
1410 (arguments
1411 '(#:tests? #f)) ; needs simplecov, among others
1412 (synopsis "Core library for the Cucumber BDD app")
1413 (description "Cucumber is a tool for running automated tests
1414written in plain language. Because they're written in plain language,
1415they can be read by anyone on your team. Because they can be read by
1416anyone, you can use them to help improve communication, collaboration
1417and trust on your team.")
1418 (home-page "https://cucumber.io/")
1419 (license license:expat)))
212d563d
PP
1420
1421(define-public ruby-bio-logger
1422 (package
1423 (name "ruby-bio-logger")
1424 (version "1.0.1")
1425 (source
1426 (origin
1427 (method url-fetch)
1428 (uri (rubygems-uri "bio-logger" version))
1429 (sha256
1430 (base32
1431 "02pylfy8nkdqzyzplvnhn1crzmfkj1zmi3qjhrj2f2imlxvycd28"))))
1432 (build-system ruby-build-system)
1433 (arguments
1434 `(#:tests? #f)) ; rake errors, missing shoulda
1435 (propagated-inputs
1436 `(("ruby-log4r" ,ruby-log4r)))
1437 (synopsis "Log4r wrapper for Ruby")
1438 (description "Bio-logger is a wrapper around Log4r adding extra logging
1439features such as filtering and fine grained logging.")
1440 (home-page "https://github.com/pjotrp/bioruby-logger-plugin")
1441 (license license:expat)))