gnu: Add ruby-rspec-core-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
DT
315
316(define-public ruby-rspec-mocks
317 (package
318 (name "ruby-rspec-mocks")
319 (version "3.2.1")
320 (source (origin
321 (method url-fetch)
e83c6d00 322 (uri (rubygems-uri "rspec-mocks" version))
4f2a0cac
DT
323 (sha256
324 (base32
e83c6d00 325 "09yig1lwgxl8fsns71z3xhv7wkg7zvagydh37pvaqpw92dz55jv2"))))
4f2a0cac
DT
326 (build-system ruby-build-system)
327 (arguments
328 '(#:tests? #f)) ; avoid dependency cycles
329 (propagated-inputs
330 `(("ruby-rspec-support" ,ruby-rspec-support)
20c05ea9 331 ("ruby-diff-lcs" ,ruby-diff-lcs)))
4f2a0cac
DT
332 (synopsis "RSpec stubbing and mocking library")
333 (description "Rspec-mocks provides RSpec's \"test double\" framework, with
334support for stubbing and mocking.")
335 (home-page "https://github.com/rspec/rspec-mocks")
336 (license license:expat)))
d4fde1f2
DT
337
338(define-public ruby-rspec
339 (package
340 (name "ruby-rspec")
341 (version "3.2.0")
342 (source (origin
343 (method url-fetch)
e83c6d00 344 (uri (rubygems-uri "rspec" version))
d4fde1f2
DT
345 (sha256
346 (base32
e83c6d00 347 "0lkz01j4yxcwb3g5w6r1l9khnyw3sxib4rrh4npd2pxh390fcc4f"))))
d4fde1f2
DT
348 (build-system ruby-build-system)
349 (arguments
350 '(#:tests? #f)) ; avoid dependency cycles
351 (propagated-inputs
352 `(("ruby-rspec-core" ,ruby-rspec-core)
353 ("ruby-rspec-mocks" ,ruby-rspec-mocks)
354 ("ruby-rspec-expectations" ,ruby-rspec-expectations)))
355 (synopsis "Behavior-driven development framework for Ruby")
356 (description "RSpec is a behavior-driven development (BDD) framework for
357Ruby. This meta-package includes the RSpec test runner, along with the
358expectations and mocks frameworks.")
359 (home-page "http://rspec.info/")
360 (license license:expat)))
2cbc105b
DT
361
362;; Bundler is yet another source of circular dependencies, so we must disable
363;; its test suite as well.
364(define-public bundler
365 (package
366 (name "bundler")
38b327a9 367 (version "1.10.6")
2cbc105b
DT
368 (source (origin
369 (method url-fetch)
e83c6d00 370 (uri (rubygems-uri "bundler" version))
2cbc105b
DT
371 (sha256
372 (base32
38b327a9 373 "1vlzfq0bkkj4jyq6av0y55mh5nj5n0f3mfbmmifwgkh44g8k6agv"))))
2cbc105b
DT
374 (build-system ruby-build-system)
375 (arguments
376 '(#:tests? #f)) ; avoid dependency cycles
377 (synopsis "Ruby gem bundler")
378 (description "Bundler automatically downloads and installs a list of gems
379specified in a \"Gemfile\", as well as their dependencies.")
380 (home-page "http://bundler.io/")
381 (license license:expat)))
98b87b82 382
cf36174f
RW
383(define-public ruby-builder
384 (package
385 (name "ruby-builder")
386 (version "3.2.2")
387 (source (origin
388 (method url-fetch)
389 (uri (rubygems-uri "builder" version))
390 (sha256
391 (base32
392 "14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2"))))
393 (build-system ruby-build-system)
394 (arguments
395 `(#:phases
396 (modify-phases %standard-phases
397 (add-after 'unpack 'do-not-use-rvm
398 (lambda _
399 (substitute* "rakelib/tags.rake"
400 (("RVM_GEMDIR = .*") "RVM_GEMDIR = 'no-rvm-please'\n"))
401 #t)))))
402 (synopsis "Ruby library to create structured data")
403 (description "Builder provides a number of builder objects that make it
404easy to create structured data. Currently the following builder objects are
405supported: XML Markup and XML Events.")
406 (home-page "https://github.com/jimweirich/builder")
407 (license license:expat)))
408
ad79eb55
RW
409(define-public ruby-rjb
410 (package
411 (name "ruby-rjb")
412 (version "1.5.3")
413 (source (origin
414 (method url-fetch)
415 (uri (rubygems-uri "rjb" version))
416 (sha256
417 (base32
418 "0gzs92dagk981s4vrymnqg0vll783b9k564j0cdgp167nc5a2zg4"))))
419 (build-system ruby-build-system)
420 (arguments
421 `(#:tests? #f ; no rakefile
422 #:phases
423 (modify-phases %standard-phases
424 (add-before 'build 'set-java-home
425 (lambda* (#:key inputs #:allow-other-keys)
426 (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
427 #t)))))
428 (native-inputs
429 `(("jdk" ,icedtea7 "jdk")))
430 (synopsis "Ruby-to-Java bridge using the Java Native Interface")
431 (description "RJB is a bridge program that connects Ruby and Java via the
432Java Native Interface.")
433 (home-page "http://www.artonx.org/collabo/backyard/?RubyJavaBridge")
434 (license license:lgpl2.1+)))
435
f9ae2c06
PP
436(define-public ruby-log4r
437 (package
438 (name "ruby-log4r")
439 (version "1.1.10")
440 (source
441 (origin
442 (method url-fetch)
443 (uri (rubygems-uri "log4r" version))
444 (sha256
445 (base32
446 "0ri90q0frfmigkirqv5ihyrj59xm8pq5zcmf156cbdv4r4l2jicv"))))
447 (build-system ruby-build-system)
448 (arguments
449 '(#:tests? #f)) ; no Rakefile in gem
450 (synopsis "Flexible logging library for Ruby")
451 (description "Comprehensive and flexible logging library written
452in Ruby for use in Ruby programs. It features a hierarchical logging
453system of any number of levels, custom level names, logger
454inheritance, multiple output destinations per log event, execution
455tracing, custom formatting, thread safteyness, XML and YAML
456configuration, and more.")
457 (home-page "http://log4r.rubyforge.org/")
458 (license license:bsd-3)))
459
71a03c29
RW
460(define-public ruby-atoulme-antwrap
461 (package
462 (name "ruby-atoulme-antwrap")
463 (version "0.7.5")
464 (source (origin
465 (method url-fetch)
466 (uri (rubygems-uri "atoulme-Antwrap" version))
467 (sha256
468 (base32
469 "05s3iw44lqa81f8nfy5f0xjj808600h82zb9bsh46b9kcq2w2kmz"))))
470 (build-system ruby-build-system)
471 ;; Test data required for most of the tests are not included.
472 (arguments `(#:tests? #f))
473 (native-inputs
474 `(("ruby-hoe" ,ruby-hoe)))
475 (inputs
476 `(("ruby-rjb" ,ruby-rjb)))
477 (synopsis "Ruby wrapper for the Ant build tool")
478 (description "Antwrap is a Ruby module that wraps the Apache Ant build
479tool. Antwrap can be used to invoke Ant tasks from a Ruby or a JRuby
480script.")
481 (home-page "http://rubyforge.org/projects/antwrap/")
482 (license license:expat)))
483
cc53e630
RW
484(define-public ruby-orderedhash
485 (package
486 (name "ruby-orderedhash")
487 (version "0.0.6")
488 (source (origin
489 (method url-fetch)
490 (uri (rubygems-uri "orderedhash" version))
491 (sha256
492 (base32
493 "0fryy7f9jbpx33jq5m402yqj01zcg563k9fsxlqbhmq638p4bzd7"))))
494 (build-system ruby-build-system)
495 (arguments
496 '(#:tests? #f)) ; no test suite
497 (synopsis "Ruby library providing an order-preserving hash")
498 (description "Orderedhash is a Ruby library providing a hash
499implementation that preserves the order of items and features some array-like
500extensions.")
501 (home-page "http://codeforpeople.com/lib/ruby/orderedhash/")
502 (license license:public-domain)))
503
28c5d42d
PP
504(define-public ruby-libxml
505 (package
506 (name "ruby-libxml")
507 (version "2.8.0")
508 (source
509 (origin
510 (method url-fetch)
511 (uri (rubygems-uri "libxml-ruby" version))
512 (sha256
513 (base32
514 "1dhjqp4r9vkdp00l6h1cj8qfndzxlhlxk6b9g0w4v55gz857ilhb"))))
515 (build-system ruby-build-system)
516 (inputs
517 `(("zlib" ,zlib)
518 ("libxml2" ,libxml2)))
519 (arguments
520 '(#:tests? #f ; test suite hangs for unknown reason
521 #:gem-flags
522 (list "--"
523 (string-append "--with-xml2-include="
524 (assoc-ref %build-inputs "libxml2")
525 "/include/libxml2" ))))
526 (synopsis "Ruby bindings for GNOME Libxml2")
527 (description "The Libxml-Ruby project provides Ruby language bindings for
528the GNOME Libxml2 XML toolkit.")
529 (home-page "http://xml4r.github.com/libxml-ruby")
530 (license license:expat)))
531
8b9bde07
RW
532(define-public ruby-xml-simple
533 (package
534 (name "ruby-xml-simple")
535 (version "1.1.5")
536 (source (origin
537 (method url-fetch)
538 (uri (rubygems-uri "xml-simple" version))
539 (sha256
540 (base32
541 "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8"))))
542 (build-system ruby-build-system)
543 (arguments
544 '(#:tests? #f)) ; no test suite
545 (synopsis "Simple Ruby library for XML processing")
546 (description "This library provides a simple API for XML processing in
547Ruby.")
548 (home-page "https://github.com/maik/xml-simple")
549 (license license:ruby)))
550
2cb3ab48
RW
551(define-public ruby-thor
552 (package
553 (name "ruby-thor")
554 (version "0.19.1")
555 (source (origin
556 (method url-fetch)
557 (uri (rubygems-uri "thor" version))
558 (sha256
559 (base32
560 "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z"))))
561 (build-system ruby-build-system)
562 (arguments
563 '(#:tests? #f)) ; no test suite
564 (native-inputs
565 `(("bundler" ,bundler)))
566 (synopsis "Ruby toolkit for building command-line interfaces")
567 (description "Thor is a toolkit for building powerful command-line
568interfaces.")
569 (home-page "http://whatisthor.com/")
570 (license license:expat)))
571
ec79018e
RW
572(define-public ruby-lumberjack
573 (package
574 (name "ruby-lumberjack")
575 (version "1.0.9")
576 (source (origin
577 (method url-fetch)
578 (uri (rubygems-uri "lumberjack" version))
579 (sha256
580 (base32
581 "162frm2bwy58pj8ccsdqa4a6i0csrhb9h5l3inhkl1ivgfc8814l"))))
582 (build-system ruby-build-system)
583 (native-inputs
584 `(("ruby-rspec" ,ruby-rspec)))
585 (synopsis "Logging utility library for Ruby")
586 (description "Lumberjack is a simple logging utility that can be a drop in
587replacement for Logger or ActiveSupport::BufferedLogger. It provides support
588for automatically rolling log files even with multiple processes writing the
589same log file.")
590 (home-page "http://github.com/bdurand/lumberjack")
591 (license license:expat)))
592
70b4cf38
RW
593(define-public ruby-nenv
594 (package
595 (name "ruby-nenv")
596 (version "0.2.0")
597 (source (origin
598 (method url-fetch)
599 (uri (rubygems-uri "nenv" version))
600 (sha256
601 (base32
602 "152wxwri0afwgnxdf93gi6wjl9rr5z7vwp8ln0gpa3rddbfc27s6"))))
603 (build-system ruby-build-system)
604 (arguments
605 `(#:tests? #f)) ; no tests included
606 (native-inputs
607 `(("ruby-rspec" ,ruby-rspec)
608 ("bundler" ,bundler)))
609 (synopsis "Ruby interface for modifying the environment")
610 (description "Nenv provides a convenient wrapper for Ruby's ENV to modify
611and inspect the environment.")
612 (home-page "https://github.com/e2/nenv")
613 (license license:expat)))
614
c5d14d42
RW
615(define-public ruby-shellany
616 (package
617 (name "ruby-shellany")
618 (version "0.0.1")
619 (source (origin
620 (method url-fetch)
621 (uri (rubygems-uri "shellany" version))
622 (sha256
623 (base32
624 "1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf"))))
625 (build-system ruby-build-system)
626 (arguments
627 `(#:test-target "default"
628 #:phases
629 (modify-phases %standard-phases
630 (add-after 'unpack 'fix-version-test
631 (lambda _
632 (substitute* "spec/shellany_spec.rb"
633 (("^RSpec") "require \"shellany\"\nRSpec"))
634 #t)))))
635 (native-inputs
636 `(("ruby-rspec" ,ruby-rspec)
637 ("ruby-nenv" ,ruby-nenv)
638 ("bundler" ,bundler)))
639 (synopsis "Capture command output")
640 (description "Shellany is a Ruby library providing functions to capture
641the output produced by running shell commands.")
642 (home-page "https://rubygems.org/gems/shellany")
643 (license license:expat)))
644
d152162f
RW
645(define-public ruby-notiffany
646 (package
647 (name "ruby-notiffany")
648 (version "0.0.7")
649 (source (origin
650 (method url-fetch)
651 (uri (rubygems-uri "notiffany" version))
652 (sha256
653 (base32
654 "1v5x1w59qq85r6dpv3y9ga34dfd7hka1qxyiykaw7gm0i6kggbhi"))))
655 (build-system ruby-build-system)
656 ;; Tests are not included in the gem.
657 (arguments `(#:tests? #f))
658 (propagated-inputs
659 `(("ruby-shellany" ,ruby-shellany)
660 ("ruby-nenv" ,ruby-nenv)))
661 (native-inputs
662 `(("bundler" ,bundler)))
663 (synopsis "Wrapper libray for notification libraries")
664 (description "Notiffany is a Ruby wrapper libray for notification
665libraries such as Libnotify.")
666 (home-page "https://github.com/guard/notiffany")
667 (license license:expat)))
668
8528365b
RW
669(define-public ruby-formatador
670 (package
671 (name "ruby-formatador")
672 (version "0.2.5")
673 (source (origin
674 (method url-fetch)
675 (uri (rubygems-uri "formatador" version))
676 (sha256
677 (base32
678 "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0"))))
679 (build-system ruby-build-system)
680 ;; Circular dependency: Tests require ruby-shindo, which requires
681 ;; ruby-formatador at runtime.
682 (arguments `(#:tests? #f))
683 (synopsis "Ruby library to format text on stdout")
684 (description "Formatador is a Ruby library to format text printed to the
685standard output stream.")
686 (home-page "http://github.com/geemus/formatador")
687 (license license:expat)))
688
7ac4610f
RW
689(define-public ruby-shindo
690 (package
691 (name "ruby-shindo")
692 (version "0.3.8")
693 (source (origin
694 (method url-fetch)
695 (uri (rubygems-uri "shindo" version))
696 (sha256
697 (base32
698 "0s8v1jbz8i0jh92f2fgxb3p51l1azrpkc8nv4mhrqy4vndpvd7wq"))))
699 (build-system ruby-build-system)
700 (arguments
701 `(#:test-target "shindo_tests"
702 #:phases
703 (modify-phases %standard-phases
704 (add-after 'unpack 'fix-tests
705 (lambda _
706 (substitute* "Rakefile"
707 (("system \"shindo") "system \"./bin/shindo")
708 ;; This test doesn't work, so we disable it.
709 (("fail \"The build_error test should fail") "#"))
710 #t)))))
711 (propagated-inputs
712 `(("ruby-formatador" ,ruby-formatador)))
713 (synopsis "Simple depth first Ruby testing")
714 (description "Shindo is a simple depth first testing library for Ruby.")
715 (home-page "https://github.com/geemus/shindo")
716 (license license:expat)))
717
98b87b82
DT
718(define-public ruby-useragent
719 (package
720 (name "ruby-useragent")
721 (version "0.13.3")
722 (source (origin
723 (method url-fetch)
e83c6d00 724 (uri (rubygems-uri "useragent" version))
98b87b82
DT
725 (sha256
726 (base32
e83c6d00 727 "0kz7yyz7528bv4a2kfymvkcm8whqcddhmgaw1ksw1d90n30hhkpc"))))
98b87b82
DT
728 (build-system ruby-build-system)
729 (arguments
e83c6d00 730 '(#:tests? #f)) ; no test suite
98b87b82
DT
731 (synopsis "HTTP user agent parser for Ruby")
732 (description "UserAgent is a Ruby library that parses and compares HTTP
733User Agents.")
734 (home-page "https://github.com/gshutler/useragent")
735 (license license:expat)))
96086cc5
DT
736
737(define-public ruby-bacon
738 (package
739 (name "ruby-bacon")
e83c6d00 740 (version "1.2.0")
96086cc5
DT
741 (source (origin
742 (method url-fetch)
e83c6d00 743 (uri (rubygems-uri "bacon" version))
96086cc5
DT
744 (sha256
745 (base32
e83c6d00 746 "1f06gdj77bmwzc1k5iragl1595hbn67yc7sqvs56ca8plrr2vmai"))))
96086cc5 747 (build-system ruby-build-system)
96086cc5
DT
748 (synopsis "Small RSpec clone")
749 (description "Bacon is a small RSpec clone providing all essential
750features.")
751 (home-page "https://github.com/chneukirchen/bacon")
752 (license license:expat)))
de59d316
DT
753
754(define-public ruby-arel
755 (package
756 (name "ruby-arel")
757 (version "6.0.0")
758 (source (origin
759 (method url-fetch)
e83c6d00 760 (uri (rubygems-uri "arel" version))
de59d316
DT
761 (sha256
762 (base32
e83c6d00 763 "18wnfnzr2i5p3fygsddjbi1cimws6823nbk8drxidmnj8jz7h0ar"))))
de59d316 764 (build-system ruby-build-system)
e83c6d00
DT
765 (arguments
766 '(#:tests? #f)) ; no test suite
de59d316
DT
767 (synopsis "SQL AST manager for Ruby")
768 (description "Arel is a SQL AST manager for Ruby. It simplifies the
769generation of complex SQL queries and adapts to various relational database
770implementations.")
771 (home-page "https://github.com/rails/arel")
772 (license license:expat)))
e259bdf0
DT
773
774(define-public ruby-connection-pool
775 (package
776 (name "ruby-connection-pool")
777 (version "2.2.0")
778 (source (origin
779 (method url-fetch)
e83c6d00 780 (uri (rubygems-uri "connection_pool" version))
e259bdf0
DT
781 (sha256
782 (base32
e83c6d00 783 "1b2bb3k39ni5mzcnqlv9y4yjkbin20s7dkwzp0jw2jf1rmzcgrmy"))))
e259bdf0
DT
784 (build-system ruby-build-system)
785 (native-inputs
786 `(("bundler" ,bundler)))
787 (synopsis "Generic connection pool for Ruby")
788 (description "Connection_pool provides a generic connection pooling
789interface for Ruby programs.")
790 (home-page "https://github.com/mperham/connection_pool")
791 (license license:expat)))
4c0aeb44
DT
792
793(define-public ruby-net-http-persistent
794 (package
795 (name "ruby-net-http-persistent")
796 (version "2.9.4")
797 (source (origin
798 (method url-fetch)
e83c6d00 799 (uri (rubygems-uri "net-http-persistent" version))
4c0aeb44
DT
800 (sha256
801 (base32
e83c6d00 802 "1y9fhaax0d9kkslyiqi1zys6cvpaqx9a0y0cywp24rpygwh4s9r4"))))
4c0aeb44 803 (build-system ruby-build-system)
4c0aeb44
DT
804 (native-inputs
805 `(("ruby-connection-pool" ,ruby-connection-pool)
806 ("ruby-hoe" ,ruby-hoe)))
807 (synopsis "Persistent HTTP connection manager")
808 (description "Net::HTTP::Persistent manages persistent HTTP connections
809using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
810 (home-page "https://github.com/drbrain/net-http-persistent")
811 (license license:expat)))
afbbdf77 812
2206e948
DT
813(define-public ruby-minitest
814 (package
815 (name "ruby-minitest")
816 (version "5.7.0")
817 (source (origin
e83c6d00
DT
818 (method url-fetch)
819 (uri (rubygems-uri "minitest" version))
2206e948
DT
820 (sha256
821 (base32
e83c6d00 822 "0rxqfakp629mp3vwda7zpgb57lcns5znkskikbfd0kriwv8i1vq8"))))
2206e948 823 (build-system ruby-build-system)
2206e948
DT
824 (native-inputs
825 `(("ruby-hoe" ,ruby-hoe)))
826 (synopsis "Small test suite library for Ruby")
827 (description "Minitest provides a complete suite of Ruby testing
828facilities supporting TDD, BDD, mocking, and benchmarking.")
829 (home-page "https://github.com/seattlerb/minitest")
830 (license license:expat)))
831
35130835
DT
832(define-public ruby-minitest-sprint
833 (package
834 (name "ruby-minitest-sprint")
835 (version "1.1.0")
836 (source (origin
e83c6d00
DT
837 (method url-fetch)
838 (uri (rubygems-uri "minitest-sprint" version))
35130835
DT
839 (sha256
840 (base32
e83c6d00 841 "179d6pj56l9xzm46fqsqj10mzjkr1f9fv4cxa8wvchs97hqz33w1"))))
35130835 842 (build-system ruby-build-system)
35130835
DT
843 (native-inputs
844 `(("ruby-hoe" ,ruby-hoe)
845 ("ruby-minitest" ,ruby-minitest)))
846 (synopsis "Fast test suite runner for minitest")
847 (description "Minitest-sprint is a test runner for minitest that makes it
848easier to re-run individual failing tests.")
849 (home-page "https://github.com/seattlerb/minitest-sprint")
850 (license license:expat)))
851
0808e361
DT
852(define-public ruby-minitest-bacon
853 (package
854 (name "ruby-minitest-bacon")
855 (version "1.0.2")
856 (source (origin
e83c6d00
DT
857 (method url-fetch)
858 (uri (rubygems-uri "minitest-bacon" version))
0808e361
DT
859 (sha256
860 (base32
e83c6d00 861 "0cm7r68422743i3b6fm4rrm0r6cnnjmglq5gcmmgl1f0rk5hnf6r"))))
0808e361 862 (build-system ruby-build-system)
0808e361
DT
863 (native-inputs
864 `(("ruby-hoe" ,ruby-hoe)))
865 (inputs
866 `(("ruby-minitest" ,ruby-minitest)))
867 (synopsis "Bacon compatibility library for minitest")
868 (description "Minitest-bacon extends minitest with bacon-like
869functionality, making it easier to migrate test suites from bacon to minitest.")
870 (home-page "https://github.com/seattlerb/minitest-bacon")
871 (license license:expat)))
872
afbbdf77
DT
873(define-public ruby-daemons
874 (package
875 (name "ruby-daemons")
876 (version "1.2.2")
877 (source (origin
878 (method url-fetch)
e83c6d00 879 (uri (rubygems-uri "daemons" version))
afbbdf77
DT
880 (sha256
881 (base32
e83c6d00 882 "121c7vkimg3baxga69xvdkwxiq8wkmxqvdbyqi5i82vhih5d3cn3"))))
afbbdf77
DT
883 (build-system ruby-build-system)
884 (arguments
885 `(#:tests? #f)) ; no test suite
886 (synopsis "Daemonize Ruby programs")
887 (description "Daemons provides a way to wrap existing Ruby scripts to be
888run as a daemon and to be controlled by simple start/stop/restart commands.")
889 (home-page "https://github.com/thuehlinger/daemons")
890 (license license:expat)))
66e20863
DT
891
892(define-public ruby-git
893 (package
894 (name "ruby-git")
895 (version "1.2.9.1")
896 (source (origin
897 (method url-fetch)
e83c6d00 898 (uri (rubygems-uri "git" version))
66e20863
DT
899 (sha256
900 (base32
e83c6d00 901 "1sqfj8lmhl7c5zamcckkpik4izfph2zkv6krw0i8mzj5pdws5acs"))))
66e20863
DT
902 (build-system ruby-build-system)
903 (arguments
e83c6d00
DT
904 `(#:tests? #f ; no tests
905 #:phases (modify-phases %standard-phases
906 (add-after 'install 'patch-git-binary
907 (lambda* (#:key inputs outputs #:allow-other-keys)
66e20863
DT
908 ;; Make the default git binary an absolute path to the
909 ;; store.
e83c6d00
DT
910 (let ((git (string-append (assoc-ref inputs "git")
911 "/bin/git"))
912 (config (string-append (getenv "GEM_HOME")
913 "/gems/git-" ,version
914 "/lib/git/config.rb")))
915 (substitute* (list config)
66e20863
DT
916 (("'git'")
917 (string-append "'" git "'")))
e83c6d00 918 #t))))))
66e20863
DT
919 (inputs
920 `(("git" ,git)))
921 (synopsis "Ruby wrappers for Git")
922 (description "Ruby/Git is a Ruby library that can be used to create, read
923and manipulate Git repositories by wrapping system calls to the git binary.")
924 (home-page "https://github.com/schacon/ruby-git")
925 (license license:expat)))
71d3e2c2
DT
926
927(define-public ruby-slop
928 (package
929 (name "ruby-slop")
930 (version "4.1.0")
931 (source (origin
932 (method url-fetch)
e83c6d00 933 (uri (rubygems-uri "slop" version))
71d3e2c2
DT
934 (sha256
935 (base32
e83c6d00 936 "0dj0ps6v1mqd02k84mgwd7hp578n2bzl7c51h3grdhxfl3jkfsj5"))))
71d3e2c2
DT
937 (build-system ruby-build-system)
938 (native-inputs
939 `(("ruby-minitest" ,ruby-minitest)))
940 (synopsis "Ruby command line option parser")
941 (description "Slop provides a Ruby domain specific language for gathering
942options and parsing command line flags.")
943 (home-page "https://github.com/leejarvis/slop")
944 (license license:expat)))
e778a549 945
5337f8b9
DT
946(define-public ruby-slop-3
947 (package (inherit ruby-slop)
948 (version "3.6.0")
949 (source (origin
950 (method url-fetch)
951 (uri (rubygems-uri "slop" version))
952 (sha256
953 (base32
954 "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n"))))))
955
e778a549
DT
956(define-public ruby-multipart-post
957 (package
958 (name "ruby-multipart-post")
959 (version "2.0.0")
960 (source (origin
961 (method url-fetch)
e83c6d00 962 (uri (rubygems-uri "multipart-post" version))
e778a549
DT
963 (sha256
964 (base32
e83c6d00 965 "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"))))
e778a549
DT
966 (build-system ruby-build-system)
967 (native-inputs
968 `(("bundler" ,bundler)))
969 (synopsis "Multipart POST library for Ruby")
970 (description "Multipart-Post Adds multipart POST capability to Ruby's
971net/http library.")
972 (home-page "https://github.com/nicksieger/multipart-post")
973 (license license:expat)))
f8da3af0
DT
974
975(define-public ruby-arel
976 (package
977 (name "ruby-arel")
978 (version "6.0.3")
979 (source (origin
980 (method url-fetch)
981 (uri (rubygems-uri "arel" version))
982 (sha256
983 (base32
984 "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
985 (build-system ruby-build-system)
986 (arguments '(#:tests? #f)) ; no tests
987 (home-page "https://github.com/rails/arel")
988 (synopsis "SQL AST manager for Ruby")
989 (description "Arel is a SQL AST manager for Ruby. It simplifies the
990generation of complex SQL queries and is compatible with various RDBMSes.")
991 (license license:expat)))
616eaead
DT
992
993(define-public ruby-minitar
994 (package
995 (name "ruby-minitar")
996 (version "0.5.4")
997 (source
998 (origin
999 (method url-fetch)
1000 (uri (rubygems-uri "minitar" version))
1001 (sha256
1002 (base32
1003 "1vpdjfmdq1yc4i620frfp9af02ia435dnpj8ybsd7dc3rypkvbka"))))
1004 (build-system ruby-build-system)
1005 (arguments
1006 '(#:tests? #f)) ; missing a gemspec
1007 (synopsis "Ruby library and utility for handling tar archives")
1008 (description
1009 "Archive::Tar::Minitar is a pure-Ruby library and command-line utility
1010that provides the ability to deal with POSIX tar archive files.")
1011 (home-page "http://www.github.com/atoulme/minitar")
1012 (license (list license:gpl2+ license:ruby))))
bea1c0e2
DT
1013
1014(define-public ruby-mini-portile
1015 (package
1016 (name "ruby-mini-portile")
1017 (version "0.6.2")
1018 (source
1019 (origin
1020 (method url-fetch)
1021 (uri (rubygems-uri "mini_portile" version))
1022 (sha256
1023 (base32
1024 "0h3xinmacscrnkczq44s6pnhrp4nqma7k056x5wv5xixvf2wsq2w"))))
1025 (build-system ruby-build-system)
1026 (arguments
1027 '(#:tests? #f)) ; tests require network access
1028 (synopsis "Ports system for Ruby developers")
1029 (description "Mini-portile is a port/recipe system for Ruby developers.
1030It provides a standard way to compile against specific versions of libraries
1031to reproduce user environments.")
1032 (home-page "http://github.com/flavorjones/mini_portile")
1033 (license license:expat)))
e920bfca
DT
1034
1035(define-public ruby-nokogiri
1036 (package
1037 (name "ruby-nokogiri")
1038 (version "1.6.6.2")
1039 (source (origin
1040 (method url-fetch)
1041 (uri (rubygems-uri "nokogiri" version))
1042 (sha256
1043 (base32
1044 "1j4qv32qjh67dcrc1yy1h8sqjnny8siyy4s44awla8d6jk361h30"))))
1045 (build-system ruby-build-system)
1046 (arguments
1047 ;; Tests fail because Nokogiri can only test with an installed extension,
1048 ;; and also because many test framework dependencies are missing.
1049 '(#:tests? #f
1050 #:gem-flags (list "--" "--use-system-libraries"
1051 (string-append "--with-xml2-include="
1052 (assoc-ref %build-inputs "libxml2")
1053 "/include/libxml2" ))))
1054 (native-inputs
1055 `(("ruby-hoe" ,ruby-hoe)
1056 ("ruby-rake-compiler", ruby-rake-compiler)))
1057 (inputs
1058 `(("zlib" ,zlib)
1059 ("libxml2" ,libxml2)
1060 ("libxslt" ,libxslt)))
1061 (propagated-inputs
1062 `(("ruby-mini-portile" ,ruby-mini-portile)))
1063 (synopsis "HTML, XML, SAX, and Reader parser for Ruby")
1064 (description "Nokogiri (鋸) parses and searches XML/HTML, and features
1065both CSS3 selector and XPath 1.0 support.")
1066 (home-page "http://www.nokogiri.org/")
1067 (license license:expat)))
30b0b725
DT
1068
1069(define-public ruby-method-source
1070 (package
1071 (name "ruby-method-source")
1072 (version "0.8.2")
1073 (source
1074 (origin
1075 (method url-fetch)
1076 (uri (rubygems-uri "method_source" version))
1077 (sha256
1078 (base32
1079 "1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2"))))
1080 (build-system ruby-build-system)
1081 (native-inputs
1082 `(("ruby-bacon" ,ruby-bacon)
1083 ("git" ,git)))
1084 (synopsis "Retrieve the source code for Ruby methods")
1085 (description "Method_source retrieves the source code for Ruby methods.
1086Additionally, it can extract source code from Proc and Lambda objects or just
1087extract comments.")
1088 (home-page "https://github.com/banister/method_source")
1089 (license license:expat)))
2e3fdea4
DT
1090
1091(define-public ruby-coderay
1092 (package
1093 (name "ruby-coderay")
1094 (version "1.1.0")
1095 (source
1096 (origin
1097 (method url-fetch)
1098 (uri (rubygems-uri "coderay" version))
1099 (sha256
1100 (base32
1101 "059wkzlap2jlkhg460pkwc1ay4v4clsmg1bp4vfzjzkgwdckr52s"))))
1102 (build-system ruby-build-system)
1103 (arguments
1104 '(#:tests? #f)) ; missing test files
1105 (synopsis "Ruby syntax highlighting library")
1106 (description "Coderay is a Ruby library that provides syntax highlighting
1107for select languages.")
1108 (home-page "http://coderay.rubychan.de")
1109 (license license:expat)))
96e76083
DT
1110
1111(define-public ruby-pry
1112 (package
1113 (name "ruby-pry")
1114 (version "0.10.1")
1115 (source
1116 (origin
1117 (method url-fetch)
1118 (uri (rubygems-uri "pry" version))
1119 (sha256
1120 (base32
1121 "1j0r5fm0wvdwzbh6d6apnp7c0n150hpm9zxpm5xvcgfqr36jaj8z"))))
1122 (build-system ruby-build-system)
1123 (arguments
1124 '(#:tests? #f)) ; no tests
1125 (propagated-inputs
1126 `(("ruby-coderay" ,ruby-coderay)
1127 ("ruby-method-source" ,ruby-method-source)
1128 ("ruby-slop" ,ruby-slop-3)))
1129 (synopsis "Ruby REPL")
1130 (description "Pry is an IRB alternative and runtime developer console for
1131Ruby. It features syntax highlighting, a plugin architecture, runtime
1132invocation, and source and documentation browsing.")
1133 (home-page "http://pryrepl.org")
1134 (license license:expat)))
1415792a
DT
1135
1136(define-public ruby-thread-safe
1137 (package
1138 (name "ruby-thread-safe")
1139 (version "0.3.5")
1140 (source
1141 (origin
1142 (method url-fetch)
1143 (uri (rubygems-uri "thread_safe" version))
1144 (sha256
1145 (base32
1146 "1hq46wqsyylx5afkp6jmcihdpv4ynzzq9ygb6z2pb1cbz5js0gcr"))))
1147 (build-system ruby-build-system)
1148 (arguments
1149 '(#:tests? #f)) ; needs simplecov, among others
1150 (synopsis "Thread-safe utilities for Ruby")
1151 (description "The thread_safe library provides thread-safe collections and
1152utilities for Ruby.")
1153 (home-page "https://github.com/ruby-concurrency/thread_safe")
1154 (license license:asl2.0)))
08a1b701
DT
1155
1156(define-public ruby-tzinfo
1157 (package
1158 (name "ruby-tzinfo")
1159 (version "1.2.2")
1160 (source
1161 (origin
1162 (method url-fetch)
1163 (uri (rubygems-uri "tzinfo" version))
1164 (sha256
1165 (base32
1166 "1c01p3kg6xvy1cgjnzdfq45fggbwish8krd0h864jvbpybyx7cgx"))))
1167 (build-system ruby-build-system)
1168 (propagated-inputs
1169 `(("ruby-thread-safe" ,ruby-thread-safe)))
1170 (synopsis "Time zone library for Ruby")
1171 (description "TZInfo is a Ruby library that provides daylight savings
1172aware transformations between times in different time zones.")
1173 (home-page "http://tzinfo.github.io")
1174 (license license:expat)))
c99e2247
DT
1175
1176(define-public ruby-json
1177 (package
1178 (name "ruby-json")
1179 (version "1.8.3")
1180 (source
1181 (origin
1182 (method url-fetch)
1183 (uri (rubygems-uri "json" version))
1184 (sha256
1185 (base32
1186 "1nsby6ry8l9xg3yw4adlhk2pnc7i0h0rznvcss4vk3v74qg0k8lc"))))
1187 (build-system ruby-build-system)
1188 (arguments '(#:tests? #f)) ; dependency cycle with sdoc
1189 (synopsis "JSON library for Ruby")
1190 (description "This Ruby library provides a JSON implementation written as
1191a native C extension.")
1192 (home-page "http://json-jruby.rubyforge.org/")
1193 (license (list license:ruby license:gpl2)))) ; GPL2 only
5ff89a1b
DT
1194
1195(define-public ruby-activesupport
1196 (package
1197 (name "ruby-activesupport")
1198 (version "4.2.4")
1199 (source
1200 (origin
1201 (method url-fetch)
1202 (uri (rubygems-uri "activesupport" version))
1203 (sha256
1204 (base32
1205 "19n38rj6r1gyxgka18qvcxyla0fwan8a5p3ghq0pp8aj93sbmr6f"))))
1206 (build-system ruby-build-system)
1207 (arguments
1208 '(#:tests? #f)) ; no tests
1209 (propagated-inputs
1210 `(("ruby-i18n" ,ruby-i18n)
1211 ("ruby-json" ,ruby-json)
1212 ("ruby-minitest" ,ruby-minitest)
1213 ("ruby-thread-safe" ,ruby-thread-safe)
1214 ("ruby-tzinfo" ,ruby-tzinfo)))
1215 (synopsis "Ruby on Rails utility library")
1216 (description "ActiveSupport is a toolkit of support libraries and Ruby
1217core extensions extracted from the Rails framework. It includes support for
1218multibyte strings, internationalization, time zones, and testing.")
1219 (home-page "http://www.rubyonrails.org")
1220 (license license:expat)))
f847ad7b
DT
1221
1222(define-public ruby-ox
1223 (package
1224 (name "ruby-ox")
1225 (version "2.2.1")
1226 (source
1227 (origin
1228 (method url-fetch)
1229 (uri (rubygems-uri "ox" version))
1230 (sha256
1231 (base32
1232 "00i11xd4ayh7349rhgskajfxn0qzkb74ab01217zix9qcapssxax"))))
1233 (build-system ruby-build-system)
1234 (arguments
1235 '(#:tests? #f)) ; no tests
1236 (synopsis "Optimized XML library for Ruby")
1237 (description
1238 "Optimized XML (Ox) is a fast XML parser and object serializer for Ruby
1239written as a native C extension. It was designed to be an alternative to
1240Nokogiri and other Ruby XML parsers for generic XML parsing and as an
1241alternative to Marshal for Object serialization. ")
1242 (home-page "http://www.ohler.com/ox")
1243 (license license:expat)))
4a9e0585
DT
1244
1245(define-public ruby-pg
1246 (package
1247 (name "ruby-pg")
1248 (version "0.18.2")
1249 (source
1250 (origin
1251 (method url-fetch)
1252 (uri (rubygems-uri "pg" version))
1253 (sha256
1254 (base32
1255 "1axxbf6ij1iqi3i1r3asvjc80b0py5bz0m2wy5kdi5xkrpr82kpf"))))
1256 (build-system ruby-build-system)
1257 (arguments
1258 '(#:test-target "spec"))
1259 (native-inputs
1260 `(("ruby-rake-compiler" ,ruby-rake-compiler)
1261 ("ruby-hoe" ,ruby-hoe)
1262 ("ruby-rspec" ,ruby-rspec)))
1263 (inputs
1264 `(("postgresql" ,postgresql)))
1265 (synopsis "Ruby interface to PostgreSQL")
1266 (description "Pg is the Ruby interface to the PostgreSQL RDBMS. It works
1267with PostgreSQL 8.4 and later.")
1268 (home-page "https://bitbucket.org/ged/ruby-pg")
1269 (license license:ruby)))
468e5657
DT
1270
1271(define-public ruby-byebug
1272 (package
1273 (name "ruby-byebug")
1274 (version "6.0.2")
1275 (source
1276 (origin
1277 (method url-fetch)
1278 (uri (rubygems-uri "byebug" version))
1279 (sha256
1280 (base32
1281 "0537h9qbhr6csahmzyn4lk1g5b2lcligbzd21gfy93nx9lbfdnzc"))))
1282 (build-system ruby-build-system)
1283 (arguments
1284 '(#:tests? #f)) ; no tests
1285 (synopsis "Debugger for Ruby 2")
1286 (description "Byebug is a Ruby 2 debugger implemented using the Ruby 2
1287TracePoint C API for execution control and the Debug Inspector C API for call
1288stack navigation. The core component provides support that front-ends can
1289build on. It provides breakpoint handling and bindings for stack frames among
1290other things and it comes with a command line interface.")
1291 (home-page "http://github.com/deivid-rodriguez/byebug")
1292 (license license:bsd-2)))
64b6ccc3
DT
1293
1294(define-public ruby-rack
1295 (package
1296 (name "ruby-rack")
1297 (version "1.6.4")
1298 (source
1299 (origin
1300 (method url-fetch)
1301 (uri (rubygems-uri "rack" version))
1302 (sha256
1303 (base32
1304 "09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5"))))
1305 (build-system ruby-build-system)
1306 (arguments
1307 '(#:phases
1308 (modify-phases %standard-phases
1309 (add-before 'check 'fix-tests
1310 (lambda _
1311 ;; A few of the tests use the length of a file on disk for
1312 ;; Content-Length and Content-Range headers. However, this file
1313 ;; has a shebang in it which an earlier phase patches, growing
1314 ;; the file size from 193 to 239 bytes when the store prefix is
1315 ;; "/gnu/store".
1316 (let ((size-diff (- (string-length (which "ruby"))
1317 (string-length "/usr/bin/env ruby"))))
1318 (substitute* '("test/spec_file.rb")
1319 (("193")
1320 (number->string (+ 193 size-diff)))
1321 (("bytes(.)22-33" all delimiter)
1322 (string-append "bytes"
1323 delimiter
1324 (number->string (+ 22 size-diff))
1325 "-"
1326 (number->string (+ 33 size-diff))))))
1327 #t)))))
1328 (native-inputs
1329 `(("ruby-bacon" ,ruby-bacon)))
1330 (synopsis "Unified web application interface for Ruby")
1331 (description "Rack provides a minimal, modular and adaptable interface for
1332developing web applications in Ruby. By wrapping HTTP requests and responses,
1333it unifies the API for web servers, web frameworks, and software in between
1334into a single method call.")
1335 (home-page "http://rack.github.io/")
1336 (license license:expat)))
62e4cc5a 1337
6aaa815e
PP
1338(define-public ruby-docile
1339 (package
1340 (name "ruby-docile")
1341 (version "1.1.5")
1342 (source
1343 (origin
1344 (method url-fetch)
1345 (uri (rubygems-uri "docile" version))
1346 (sha256
1347 (base32
1348 "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx"))))
1349 (build-system ruby-build-system)
1350 (arguments
1351 '(#:tests? #f)) ; needs github-markup, among others
1352 (synopsis "Ruby EDSL helper library")
1353 (description "Docile is a Ruby library that provides an interface for
1354creating embedded domain specific languages (EDSLs) that manipulate existing
1355Ruby classes.")
1356 (home-page "https://ms-ati.github.io/docile/")
1357 (license license:expat)))
1358
62e4cc5a
PP
1359(define-public ruby-gherkin3
1360 (package
1361 (name "ruby-gherkin3")
1362 (version "3.1.1")
1363 (source
1364 (origin
1365 (method url-fetch)
1366 (uri (rubygems-uri "gherkin3" version))
1367 (sha256
1368 (base32
1369 "0xsyxhqa1gwcxzvsdy4didaiq5vam8ma3fbwbw2w60via4k6r1z9"))))
1370 (build-system ruby-build-system)
1371 (native-inputs
1372 `(("bundler" ,bundler)))
1373 (arguments
1374 '(#:tests? #f)) ; needs simplecov, among others
1375 (synopsis "Gherkin parser for Ruby")
1376 (description "Gherkin 3 is a parser and compiler for the Gherkin language.
1377It is intended to replace Gherkin 2 and be used by all Cucumber
1378implementations to parse '.feature' files.")
1379 (home-page "https://github.com/cucumber/gherkin3")
1380 (license license:expat)))
cd89fecb
PP
1381
1382(define-public ruby-cucumber-core
1383 (package
1384 (name "ruby-cucumber-core")
1385 (version "1.3.0")
1386 (source
1387 (origin
1388 (method url-fetch)
1389 (uri (rubygems-uri "cucumber-core" version))
1390 (sha256
1391 (base32
1392 "12mrzf0s96izpq0k10lahlkgwc4fjs0zfs344rh8r8h3w3jyppr8"))))
1393 (build-system ruby-build-system)
1394 (propagated-inputs
1395 `(("ruby-gherkin3" ,ruby-gherkin3)))
1396 (native-inputs
1397 `(("bundler" ,bundler)))
1398 (arguments
1399 '(#:tests? #f)) ; needs simplecov, among others
1400 (synopsis "Core library for the Cucumber BDD app")
1401 (description "Cucumber is a tool for running automated tests
1402written in plain language. Because they're written in plain language,
1403they can be read by anyone on your team. Because they can be read by
1404anyone, you can use them to help improve communication, collaboration
1405and trust on your team.")
1406 (home-page "https://cucumber.io/")
1407 (license license:expat)))
212d563d
PP
1408
1409(define-public ruby-bio-logger
1410 (package
1411 (name "ruby-bio-logger")
1412 (version "1.0.1")
1413 (source
1414 (origin
1415 (method url-fetch)
1416 (uri (rubygems-uri "bio-logger" version))
1417 (sha256
1418 (base32
1419 "02pylfy8nkdqzyzplvnhn1crzmfkj1zmi3qjhrj2f2imlxvycd28"))))
1420 (build-system ruby-build-system)
1421 (arguments
1422 `(#:tests? #f)) ; rake errors, missing shoulda
1423 (propagated-inputs
1424 `(("ruby-log4r" ,ruby-log4r)))
1425 (synopsis "Log4r wrapper for Ruby")
1426 (description "Bio-logger is a wrapper around Log4r adding extra logging
1427features such as filtering and fine grained logging.")
1428 (home-page "https://github.com/pjotrp/bioruby-logger-plugin")
1429 (license license:expat)))