gnu: Add ruby-slop-3.
[jackhill/guix/guix.git] / gnu / packages / ruby.scm
CommitLineData
6ef8c59a
PP
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014 Pjotr Prins <pjotr.guix@thebird.nl>
3;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
f586c877 4;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
ecde6191 5;;; Copyright © 2014 David Thompson <davet@gnu.org>
cf36174f 6;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
6ef8c59a
PP
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23(define-module (gnu packages ruby)
24 #:use-module ((guix licenses) #:prefix license:)
25 #:use-module (gnu packages)
26 #:use-module (gnu packages compression)
27 #:use-module (gnu packages readline)
6ef8c59a 28 #:use-module (gnu packages autotools)
ad79eb55 29 #:use-module (gnu packages java)
6ef8c59a
PP
30 #:use-module (gnu packages libffi)
31 #:use-module (gnu packages gdbm)
cc2b77df 32 #:use-module (gnu packages tls)
66e20863 33 #:use-module (gnu packages version-control)
6ef8c59a
PP
34 #:use-module (guix packages)
35 #:use-module (guix download)
bda0c139 36 #:use-module (guix git-download)
6ef8c59a 37 #:use-module (guix utils)
acf735f2 38 #:use-module (guix build-system gnu)
e920bfca 39 #:use-module (gnu packages xml)
acf735f2 40 #:use-module (guix build-system ruby))
6ef8c59a
PP
41
42(define-public ruby
43 (package
44 (name "ruby")
686b1bab 45 (version "2.2.3")
6ef8c59a
PP
46 (source
47 (origin
48 (method url-fetch)
6becfdff
MW
49 (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
50 (version-major+minor version)
12d39eb5 51 "/ruby-" version ".tar.xz"))
6ef8c59a
PP
52 (sha256
53 (base32
686b1bab 54 "19x8gs67klgc3ag815jpin83jn2nv1akgjcgayd6v3h1xplr1v66"))))
6ef8c59a
PP
55 (build-system gnu-build-system)
56 (arguments
57 `(#:test-target "test"
58 #:parallel-tests? #f
59 #:phases
12d39eb5
DT
60 (alist-cons-before
61 'configure 'replace-bin-sh
6ef8c59a 62 (lambda _
12d39eb5
DT
63 (substitute* '("Makefile.in"
64 "ext/pty/pty.c"
65 "io.c"
66 "lib/mkmf.rb"
67 "process.c"
68 "test/rubygems/test_gem_ext_configure_builder.rb"
69 "test/rdoc/test_rdoc_parser.rb"
70 "test/ruby/test_rubyoptions.rb"
71 "test/ruby/test_process.rb"
72 "test/ruby/test_system.rb"
73 "tool/rbinstall.rb")
74 (("/bin/sh") (which "sh"))))
75 %standard-phases)))
6ef8c59a
PP
76 (inputs
77 `(("readline" ,readline)
6ef8c59a
PP
78 ("openssl" ,openssl)
79 ("libffi" ,libffi)
80 ("gdbm" ,gdbm)
81 ("zlib" ,zlib)))
82 (native-search-paths
83 (list (search-path-specification
84 (variable "GEM_PATH")
af070955
LC
85 (files (list (string-append "lib/ruby/gems/"
86 (version-major+minor version)
87 ".0"))))))
6becfdff 88 (synopsis "Programming language interpreter")
6ef8c59a
PP
89 (description "Ruby is a dynamic object-oriented programming language with
90a focus on simplicity and productivity.")
91 (home-page "https://ruby-lang.org")
92 (license license:ruby)))
93
9942e803
PP
94(define-public ruby-2.1
95 (package (inherit ruby)
96 (version "2.1.6")
97 (source
98 (origin
99 (method url-fetch)
100 (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
101 (version-major+minor version)
102 "/ruby-" version ".tar.bz2"))
103 (sha256
104 (base32
105 "1sbcmbhadcxk0509svwxbm2vvgmpf3xjxr1397bgp9x46nz36lkv"))))
106 (arguments
107 `(#:test-target "test"
108 #:parallel-tests? #f
109 #:phases
110 (alist-cons-before
111 'configure 'replace-bin-sh
112 (lambda _
113 (substitute* '("Makefile.in"
114 "ext/pty/pty.c"
115 "io.c"
116 "lib/mkmf.rb"
117 "process.c")
118 (("/bin/sh") (which "sh"))))
119 %standard-phases)))
120 (native-search-paths
121 (list (search-path-specification
122 (variable "GEM_PATH")
123 (files (list (string-append "lib/ruby/gems/"
124 (version-major+minor version)
125 ".0"))))))))
126
218ee89b
PP
127(define-public ruby-1.8
128 (package (inherit ruby)
218ee89b
PP
129 (version "1.8.7-p374")
130 (source
131 (origin
132 (method url-fetch)
6becfdff
MW
133 (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
134 (version-major+minor version)
135 "/ruby-" version ".tar.bz2"))
218ee89b
PP
136 (sha256
137 (base32
138 "1qq7khilwkayrhwmzlxk83scrmiqfi7lgsn4c63znyvz2c1lgqxl"))))
139 (native-search-paths '())
140 (arguments
141 `(#:test-target "test"
142 #:parallel-tests? #f
143 #:phases
144 (alist-cons-before
145 'configure 'replace-bin-sh
146 (lambda _
147 (substitute* '("Makefile.in"
148 "ext/pty/pty.c"
149 "io.c"
150 "lib/mkmf.rb"
151 "process.c")
152 (("/bin/sh") (which "sh"))))
153 %standard-phases)))))
154
bda0c139
DT
155(define-public ruby-hoe
156 (package
157 (name "ruby-hoe")
158 (version "3.13.1")
159 (source (origin
e83c6d00
DT
160 (method url-fetch)
161 (uri (rubygems-uri "hoe" version))
bda0c139
DT
162 (sha256
163 (base32
e83c6d00 164 "1mac13krdrasn9819dd65xj27kklfy0xdbj3p6s2ij4vlcb46h8q"))) )
bda0c139 165 (build-system ruby-build-system)
bda0c139
DT
166 (synopsis "Ruby project management helper")
167 (description
168 "Hoe is a rake/rubygems helper for project Rakefiles. It helps manage,
169maintain, and release projects and includes a dynamic plug-in system allowing
170for easy extensibility. Hoe ships with plug-ins for all the usual project
171tasks including rdoc generation, testing, packaging, deployment, and
172announcement.")
173 (home-page "http://www.zenspider.com/projects/hoe.html")
174 (license license:expat)))
175
022170dc
PP
176(define-public ruby-rake-compiler
177 (package
178 (name "ruby-rake-compiler")
179 (version "0.9.5")
180 (source (origin
181 (method url-fetch)
e83c6d00 182 (uri (rubygems-uri "rake-compiler" version))
022170dc
PP
183 (sha256
184 (base32
e83c6d00 185 "1k8im2vzj849xdgjk6wafspkiwwapqwm738majchb4dnhnsk64cx"))))
022170dc
PP
186 (build-system ruby-build-system)
187 (arguments
e83c6d00 188 '(#:tests? #f)) ; needs cucumber
022170dc 189 (synopsis "Building and packaging helper for Ruby native extensions")
e881752c 190 (description "Rake-compiler provides a framework for building and
022170dc
PP
191packaging native C and Java extensions in Ruby.")
192 (home-page "https://github.com/rake-compiler/rake-compiler")
193 (license license:expat)))
194
acf735f2
DT
195(define-public ruby-i18n
196 (package
197 (name "ruby-i18n")
0bfdfd37 198 (version "0.7.0")
acf735f2
DT
199 (source (origin
200 (method url-fetch)
e83c6d00 201 (uri (rubygems-uri "i18n" version))
acf735f2
DT
202 (sha256
203 (base32
0bfdfd37 204 "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758"))))
acf735f2
DT
205 (build-system ruby-build-system)
206 (arguments
0bfdfd37 207 '(#:tests? #f)) ; no tests
acf735f2
DT
208 (synopsis "Internationalization library for Ruby")
209 (description "Ruby i18n is an internationalization and localization
210solution for Ruby programs. It features translation and localization,
211interpolation of values to translations, pluralization, customizable
212transliteration to ASCII, flexible defaults, bulk lookup, lambdas as
213translation data, custom key/scope separator, custom exception handlers, and
214an extensible architecture with a swappable backend.")
215 (home-page "http://github.com/svenfuchs/i18n")
216 (license license:expat)))
eb0c2dd6
DT
217
218;; RSpec is the dominant testing library for Ruby projects. Even RSpec's
219;; dependencies use RSpec for their test suites! To avoid these circular
220;; dependencies, we disable tests for all of the RSpec-related packages.
221(define ruby-rspec-support
222 (package
223 (name "ruby-rspec-support")
224 (version "3.2.2")
225 (source (origin
226 (method url-fetch)
e83c6d00 227 (uri (rubygems-uri "rspec-support" version))
eb0c2dd6
DT
228 (sha256
229 (base32
e83c6d00 230 "194zry5195ls2hni7r9824vqb5d3qfg4jb15fgj8glfy0rvw3zxl"))))
eb0c2dd6
DT
231 (build-system ruby-build-system)
232 (arguments
233 '(#:tests? #f)) ; avoid dependency cycles
234 (synopsis "RSpec support library")
235 (description "Support utilities for RSpec gems.")
236 (home-page "https://github.com/rspec/rspec-support")
237 (license license:expat)))
238
239(define-public ruby-rspec-core
240 (package
241 (name "ruby-rspec-core")
242 (version "3.2.3")
243 (source (origin
244 (method url-fetch)
e83c6d00 245 (uri (rubygems-uri "rspec-core" version))
eb0c2dd6
DT
246 (sha256
247 (base32
e83c6d00 248 "0k2471iw30gc2cvv67damrx666pmsvx8l0ahk3hm20dhfnmcmpvv"))))
eb0c2dd6
DT
249 (build-system ruby-build-system)
250 (arguments
251 '(#:tests? #f)) ; avoid dependency cycles
252 (propagated-inputs
253 `(("ruby-rspec-support" ,ruby-rspec-support)))
254 (synopsis "RSpec core library")
255 (description "Rspec-core provides the RSpec test runner and example
256groups.")
257 (home-page "https://github.com/rspec/rspec-core")
258 (license license:expat)))
e6962009 259
20c05ea9 260(define-public ruby-diff-lcs
e6962009
DT
261 (package
262 (name "ruby-diff-lcs")
263 (version "1.2.5")
264 (source (origin
265 (method url-fetch)
e83c6d00 266 (uri (rubygems-uri "diff-lcs" version))
e6962009
DT
267 (sha256
268 (base32
e83c6d00 269 "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1"))))
e6962009
DT
270 (build-system ruby-build-system)
271 (arguments
272 '(#:tests? #f)) ; avoid dependency cycles
273 (synopsis "Compute the difference between two Enumerable sequences")
274 (description "Diff::LCS computes the difference between two Enumerable
275sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm.
276It includes utilities to create a simple HTML diff output format and a
277standard diff-like tool.")
278 (home-page "https://github.com/halostatue/diff-lcs")
279 (license license:expat)))
280
281(define-public ruby-rspec-expectations
282 (package
283 (name "ruby-rspec-expectations")
284 (version "3.2.1")
285 (source (origin
286 (method url-fetch)
e83c6d00 287 (uri (rubygems-uri "rspec-expectations" version))
e6962009
DT
288 (sha256
289 (base32
e83c6d00 290 "01kmchabgpdcaqdsqg8r0g5gy385xhp1k1jsds3w264ypin17n14"))))
e6962009
DT
291 (build-system ruby-build-system)
292 (arguments
293 '(#:tests? #f)) ; avoid dependency cycles
294 (propagated-inputs
295 `(("ruby-rspec-support" ,ruby-rspec-support)
20c05ea9 296 ("ruby-diff-lcs" ,ruby-diff-lcs)))
e881752c 297 (synopsis "RSpec expectations library")
e6962009
DT
298 (description "Rspec-expectations provides a simple API to express expected
299outcomes of a code example.")
300 (home-page "https://github.com/rspec/rspec-expectations")
301 (license license:expat)))
4f2a0cac
DT
302
303(define-public ruby-rspec-mocks
304 (package
305 (name "ruby-rspec-mocks")
306 (version "3.2.1")
307 (source (origin
308 (method url-fetch)
e83c6d00 309 (uri (rubygems-uri "rspec-mocks" version))
4f2a0cac
DT
310 (sha256
311 (base32
e83c6d00 312 "09yig1lwgxl8fsns71z3xhv7wkg7zvagydh37pvaqpw92dz55jv2"))))
4f2a0cac
DT
313 (build-system ruby-build-system)
314 (arguments
315 '(#:tests? #f)) ; avoid dependency cycles
316 (propagated-inputs
317 `(("ruby-rspec-support" ,ruby-rspec-support)
20c05ea9 318 ("ruby-diff-lcs" ,ruby-diff-lcs)))
4f2a0cac
DT
319 (synopsis "RSpec stubbing and mocking library")
320 (description "Rspec-mocks provides RSpec's \"test double\" framework, with
321support for stubbing and mocking.")
322 (home-page "https://github.com/rspec/rspec-mocks")
323 (license license:expat)))
d4fde1f2
DT
324
325(define-public ruby-rspec
326 (package
327 (name "ruby-rspec")
328 (version "3.2.0")
329 (source (origin
330 (method url-fetch)
e83c6d00 331 (uri (rubygems-uri "rspec" version))
d4fde1f2
DT
332 (sha256
333 (base32
e83c6d00 334 "0lkz01j4yxcwb3g5w6r1l9khnyw3sxib4rrh4npd2pxh390fcc4f"))))
d4fde1f2
DT
335 (build-system ruby-build-system)
336 (arguments
337 '(#:tests? #f)) ; avoid dependency cycles
338 (propagated-inputs
339 `(("ruby-rspec-core" ,ruby-rspec-core)
340 ("ruby-rspec-mocks" ,ruby-rspec-mocks)
341 ("ruby-rspec-expectations" ,ruby-rspec-expectations)))
342 (synopsis "Behavior-driven development framework for Ruby")
343 (description "RSpec is a behavior-driven development (BDD) framework for
344Ruby. This meta-package includes the RSpec test runner, along with the
345expectations and mocks frameworks.")
346 (home-page "http://rspec.info/")
347 (license license:expat)))
2cbc105b
DT
348
349;; Bundler is yet another source of circular dependencies, so we must disable
350;; its test suite as well.
351(define-public bundler
352 (package
353 (name "bundler")
38b327a9 354 (version "1.10.6")
2cbc105b
DT
355 (source (origin
356 (method url-fetch)
e83c6d00 357 (uri (rubygems-uri "bundler" version))
2cbc105b
DT
358 (sha256
359 (base32
38b327a9 360 "1vlzfq0bkkj4jyq6av0y55mh5nj5n0f3mfbmmifwgkh44g8k6agv"))))
2cbc105b
DT
361 (build-system ruby-build-system)
362 (arguments
363 '(#:tests? #f)) ; avoid dependency cycles
364 (synopsis "Ruby gem bundler")
365 (description "Bundler automatically downloads and installs a list of gems
366specified in a \"Gemfile\", as well as their dependencies.")
367 (home-page "http://bundler.io/")
368 (license license:expat)))
98b87b82 369
cf36174f
RW
370(define-public ruby-builder
371 (package
372 (name "ruby-builder")
373 (version "3.2.2")
374 (source (origin
375 (method url-fetch)
376 (uri (rubygems-uri "builder" version))
377 (sha256
378 (base32
379 "14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2"))))
380 (build-system ruby-build-system)
381 (arguments
382 `(#:phases
383 (modify-phases %standard-phases
384 (add-after 'unpack 'do-not-use-rvm
385 (lambda _
386 (substitute* "rakelib/tags.rake"
387 (("RVM_GEMDIR = .*") "RVM_GEMDIR = 'no-rvm-please'\n"))
388 #t)))))
389 (synopsis "Ruby library to create structured data")
390 (description "Builder provides a number of builder objects that make it
391easy to create structured data. Currently the following builder objects are
392supported: XML Markup and XML Events.")
393 (home-page "https://github.com/jimweirich/builder")
394 (license license:expat)))
395
ad79eb55
RW
396(define-public ruby-rjb
397 (package
398 (name "ruby-rjb")
399 (version "1.5.3")
400 (source (origin
401 (method url-fetch)
402 (uri (rubygems-uri "rjb" version))
403 (sha256
404 (base32
405 "0gzs92dagk981s4vrymnqg0vll783b9k564j0cdgp167nc5a2zg4"))))
406 (build-system ruby-build-system)
407 (arguments
408 `(#:tests? #f ; no rakefile
409 #:phases
410 (modify-phases %standard-phases
411 (add-before 'build 'set-java-home
412 (lambda* (#:key inputs #:allow-other-keys)
413 (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
414 #t)))))
415 (native-inputs
416 `(("jdk" ,icedtea7 "jdk")))
417 (synopsis "Ruby-to-Java bridge using the Java Native Interface")
418 (description "RJB is a bridge program that connects Ruby and Java via the
419Java Native Interface.")
420 (home-page "http://www.artonx.org/collabo/backyard/?RubyJavaBridge")
421 (license license:lgpl2.1+)))
422
71a03c29
RW
423(define-public ruby-atoulme-antwrap
424 (package
425 (name "ruby-atoulme-antwrap")
426 (version "0.7.5")
427 (source (origin
428 (method url-fetch)
429 (uri (rubygems-uri "atoulme-Antwrap" version))
430 (sha256
431 (base32
432 "05s3iw44lqa81f8nfy5f0xjj808600h82zb9bsh46b9kcq2w2kmz"))))
433 (build-system ruby-build-system)
434 ;; Test data required for most of the tests are not included.
435 (arguments `(#:tests? #f))
436 (native-inputs
437 `(("ruby-hoe" ,ruby-hoe)))
438 (inputs
439 `(("ruby-rjb" ,ruby-rjb)))
440 (synopsis "Ruby wrapper for the Ant build tool")
441 (description "Antwrap is a Ruby module that wraps the Apache Ant build
442tool. Antwrap can be used to invoke Ant tasks from a Ruby or a JRuby
443script.")
444 (home-page "http://rubyforge.org/projects/antwrap/")
445 (license license:expat)))
446
cc53e630
RW
447(define-public ruby-orderedhash
448 (package
449 (name "ruby-orderedhash")
450 (version "0.0.6")
451 (source (origin
452 (method url-fetch)
453 (uri (rubygems-uri "orderedhash" version))
454 (sha256
455 (base32
456 "0fryy7f9jbpx33jq5m402yqj01zcg563k9fsxlqbhmq638p4bzd7"))))
457 (build-system ruby-build-system)
458 (arguments
459 '(#:tests? #f)) ; no test suite
460 (synopsis "Ruby library providing an order-preserving hash")
461 (description "Orderedhash is a Ruby library providing a hash
462implementation that preserves the order of items and features some array-like
463extensions.")
464 (home-page "http://codeforpeople.com/lib/ruby/orderedhash/")
465 (license license:public-domain)))
466
8b9bde07
RW
467(define-public ruby-xml-simple
468 (package
469 (name "ruby-xml-simple")
470 (version "1.1.5")
471 (source (origin
472 (method url-fetch)
473 (uri (rubygems-uri "xml-simple" version))
474 (sha256
475 (base32
476 "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8"))))
477 (build-system ruby-build-system)
478 (arguments
479 '(#:tests? #f)) ; no test suite
480 (synopsis "Simple Ruby library for XML processing")
481 (description "This library provides a simple API for XML processing in
482Ruby.")
483 (home-page "https://github.com/maik/xml-simple")
484 (license license:ruby)))
485
2cb3ab48
RW
486(define-public ruby-thor
487 (package
488 (name "ruby-thor")
489 (version "0.19.1")
490 (source (origin
491 (method url-fetch)
492 (uri (rubygems-uri "thor" version))
493 (sha256
494 (base32
495 "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z"))))
496 (build-system ruby-build-system)
497 (arguments
498 '(#:tests? #f)) ; no test suite
499 (native-inputs
500 `(("bundler" ,bundler)))
501 (synopsis "Ruby toolkit for building command-line interfaces")
502 (description "Thor is a toolkit for building powerful command-line
503interfaces.")
504 (home-page "http://whatisthor.com/")
505 (license license:expat)))
506
98b87b82
DT
507(define-public ruby-useragent
508 (package
509 (name "ruby-useragent")
510 (version "0.13.3")
511 (source (origin
512 (method url-fetch)
e83c6d00 513 (uri (rubygems-uri "useragent" version))
98b87b82
DT
514 (sha256
515 (base32
e83c6d00 516 "0kz7yyz7528bv4a2kfymvkcm8whqcddhmgaw1ksw1d90n30hhkpc"))))
98b87b82
DT
517 (build-system ruby-build-system)
518 (arguments
e83c6d00 519 '(#:tests? #f)) ; no test suite
98b87b82
DT
520 (synopsis "HTTP user agent parser for Ruby")
521 (description "UserAgent is a Ruby library that parses and compares HTTP
522User Agents.")
523 (home-page "https://github.com/gshutler/useragent")
524 (license license:expat)))
96086cc5
DT
525
526(define-public ruby-bacon
527 (package
528 (name "ruby-bacon")
e83c6d00 529 (version "1.2.0")
96086cc5
DT
530 (source (origin
531 (method url-fetch)
e83c6d00 532 (uri (rubygems-uri "bacon" version))
96086cc5
DT
533 (sha256
534 (base32
e83c6d00 535 "1f06gdj77bmwzc1k5iragl1595hbn67yc7sqvs56ca8plrr2vmai"))))
96086cc5 536 (build-system ruby-build-system)
96086cc5
DT
537 (synopsis "Small RSpec clone")
538 (description "Bacon is a small RSpec clone providing all essential
539features.")
540 (home-page "https://github.com/chneukirchen/bacon")
541 (license license:expat)))
de59d316
DT
542
543(define-public ruby-arel
544 (package
545 (name "ruby-arel")
546 (version "6.0.0")
547 (source (origin
548 (method url-fetch)
e83c6d00 549 (uri (rubygems-uri "arel" version))
de59d316
DT
550 (sha256
551 (base32
e83c6d00 552 "18wnfnzr2i5p3fygsddjbi1cimws6823nbk8drxidmnj8jz7h0ar"))))
de59d316 553 (build-system ruby-build-system)
e83c6d00
DT
554 (arguments
555 '(#:tests? #f)) ; no test suite
de59d316
DT
556 (synopsis "SQL AST manager for Ruby")
557 (description "Arel is a SQL AST manager for Ruby. It simplifies the
558generation of complex SQL queries and adapts to various relational database
559implementations.")
560 (home-page "https://github.com/rails/arel")
561 (license license:expat)))
e259bdf0
DT
562
563(define-public ruby-connection-pool
564 (package
565 (name "ruby-connection-pool")
566 (version "2.2.0")
567 (source (origin
568 (method url-fetch)
e83c6d00 569 (uri (rubygems-uri "connection_pool" version))
e259bdf0
DT
570 (sha256
571 (base32
e83c6d00 572 "1b2bb3k39ni5mzcnqlv9y4yjkbin20s7dkwzp0jw2jf1rmzcgrmy"))))
e259bdf0
DT
573 (build-system ruby-build-system)
574 (native-inputs
575 `(("bundler" ,bundler)))
576 (synopsis "Generic connection pool for Ruby")
577 (description "Connection_pool provides a generic connection pooling
578interface for Ruby programs.")
579 (home-page "https://github.com/mperham/connection_pool")
580 (license license:expat)))
4c0aeb44
DT
581
582(define-public ruby-net-http-persistent
583 (package
584 (name "ruby-net-http-persistent")
585 (version "2.9.4")
586 (source (origin
587 (method url-fetch)
e83c6d00 588 (uri (rubygems-uri "net-http-persistent" version))
4c0aeb44
DT
589 (sha256
590 (base32
e83c6d00 591 "1y9fhaax0d9kkslyiqi1zys6cvpaqx9a0y0cywp24rpygwh4s9r4"))))
4c0aeb44 592 (build-system ruby-build-system)
4c0aeb44
DT
593 (native-inputs
594 `(("ruby-connection-pool" ,ruby-connection-pool)
595 ("ruby-hoe" ,ruby-hoe)))
596 (synopsis "Persistent HTTP connection manager")
597 (description "Net::HTTP::Persistent manages persistent HTTP connections
598using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
599 (home-page "https://github.com/drbrain/net-http-persistent")
600 (license license:expat)))
afbbdf77 601
2206e948
DT
602(define-public ruby-minitest
603 (package
604 (name "ruby-minitest")
605 (version "5.7.0")
606 (source (origin
e83c6d00
DT
607 (method url-fetch)
608 (uri (rubygems-uri "minitest" version))
2206e948
DT
609 (sha256
610 (base32
e83c6d00 611 "0rxqfakp629mp3vwda7zpgb57lcns5znkskikbfd0kriwv8i1vq8"))))
2206e948 612 (build-system ruby-build-system)
2206e948
DT
613 (native-inputs
614 `(("ruby-hoe" ,ruby-hoe)))
615 (synopsis "Small test suite library for Ruby")
616 (description "Minitest provides a complete suite of Ruby testing
617facilities supporting TDD, BDD, mocking, and benchmarking.")
618 (home-page "https://github.com/seattlerb/minitest")
619 (license license:expat)))
620
35130835
DT
621(define-public ruby-minitest-sprint
622 (package
623 (name "ruby-minitest-sprint")
624 (version "1.1.0")
625 (source (origin
e83c6d00
DT
626 (method url-fetch)
627 (uri (rubygems-uri "minitest-sprint" version))
35130835
DT
628 (sha256
629 (base32
e83c6d00 630 "179d6pj56l9xzm46fqsqj10mzjkr1f9fv4cxa8wvchs97hqz33w1"))))
35130835 631 (build-system ruby-build-system)
35130835
DT
632 (native-inputs
633 `(("ruby-hoe" ,ruby-hoe)
634 ("ruby-minitest" ,ruby-minitest)))
635 (synopsis "Fast test suite runner for minitest")
636 (description "Minitest-sprint is a test runner for minitest that makes it
637easier to re-run individual failing tests.")
638 (home-page "https://github.com/seattlerb/minitest-sprint")
639 (license license:expat)))
640
0808e361
DT
641(define-public ruby-minitest-bacon
642 (package
643 (name "ruby-minitest-bacon")
644 (version "1.0.2")
645 (source (origin
e83c6d00
DT
646 (method url-fetch)
647 (uri (rubygems-uri "minitest-bacon" version))
0808e361
DT
648 (sha256
649 (base32
e83c6d00 650 "0cm7r68422743i3b6fm4rrm0r6cnnjmglq5gcmmgl1f0rk5hnf6r"))))
0808e361 651 (build-system ruby-build-system)
0808e361
DT
652 (native-inputs
653 `(("ruby-hoe" ,ruby-hoe)))
654 (inputs
655 `(("ruby-minitest" ,ruby-minitest)))
656 (synopsis "Bacon compatibility library for minitest")
657 (description "Minitest-bacon extends minitest with bacon-like
658functionality, making it easier to migrate test suites from bacon to minitest.")
659 (home-page "https://github.com/seattlerb/minitest-bacon")
660 (license license:expat)))
661
afbbdf77
DT
662(define-public ruby-daemons
663 (package
664 (name "ruby-daemons")
665 (version "1.2.2")
666 (source (origin
667 (method url-fetch)
e83c6d00 668 (uri (rubygems-uri "daemons" version))
afbbdf77
DT
669 (sha256
670 (base32
e83c6d00 671 "121c7vkimg3baxga69xvdkwxiq8wkmxqvdbyqi5i82vhih5d3cn3"))))
afbbdf77
DT
672 (build-system ruby-build-system)
673 (arguments
674 `(#:tests? #f)) ; no test suite
675 (synopsis "Daemonize Ruby programs")
676 (description "Daemons provides a way to wrap existing Ruby scripts to be
677run as a daemon and to be controlled by simple start/stop/restart commands.")
678 (home-page "https://github.com/thuehlinger/daemons")
679 (license license:expat)))
66e20863
DT
680
681(define-public ruby-git
682 (package
683 (name "ruby-git")
684 (version "1.2.9.1")
685 (source (origin
686 (method url-fetch)
e83c6d00 687 (uri (rubygems-uri "git" version))
66e20863
DT
688 (sha256
689 (base32
e83c6d00 690 "1sqfj8lmhl7c5zamcckkpik4izfph2zkv6krw0i8mzj5pdws5acs"))))
66e20863
DT
691 (build-system ruby-build-system)
692 (arguments
e83c6d00
DT
693 `(#:tests? #f ; no tests
694 #:phases (modify-phases %standard-phases
695 (add-after 'install 'patch-git-binary
696 (lambda* (#:key inputs outputs #:allow-other-keys)
66e20863
DT
697 ;; Make the default git binary an absolute path to the
698 ;; store.
e83c6d00
DT
699 (let ((git (string-append (assoc-ref inputs "git")
700 "/bin/git"))
701 (config (string-append (getenv "GEM_HOME")
702 "/gems/git-" ,version
703 "/lib/git/config.rb")))
704 (substitute* (list config)
66e20863
DT
705 (("'git'")
706 (string-append "'" git "'")))
e83c6d00 707 #t))))))
66e20863
DT
708 (inputs
709 `(("git" ,git)))
710 (synopsis "Ruby wrappers for Git")
711 (description "Ruby/Git is a Ruby library that can be used to create, read
712and manipulate Git repositories by wrapping system calls to the git binary.")
713 (home-page "https://github.com/schacon/ruby-git")
714 (license license:expat)))
71d3e2c2
DT
715
716(define-public ruby-slop
717 (package
718 (name "ruby-slop")
719 (version "4.1.0")
720 (source (origin
721 (method url-fetch)
e83c6d00 722 (uri (rubygems-uri "slop" version))
71d3e2c2
DT
723 (sha256
724 (base32
e83c6d00 725 "0dj0ps6v1mqd02k84mgwd7hp578n2bzl7c51h3grdhxfl3jkfsj5"))))
71d3e2c2
DT
726 (build-system ruby-build-system)
727 (native-inputs
728 `(("ruby-minitest" ,ruby-minitest)))
729 (synopsis "Ruby command line option parser")
730 (description "Slop provides a Ruby domain specific language for gathering
731options and parsing command line flags.")
732 (home-page "https://github.com/leejarvis/slop")
733 (license license:expat)))
e778a549 734
5337f8b9
DT
735(define-public ruby-slop-3
736 (package (inherit ruby-slop)
737 (version "3.6.0")
738 (source (origin
739 (method url-fetch)
740 (uri (rubygems-uri "slop" version))
741 (sha256
742 (base32
743 "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n"))))))
744
e778a549
DT
745(define-public ruby-multipart-post
746 (package
747 (name "ruby-multipart-post")
748 (version "2.0.0")
749 (source (origin
750 (method url-fetch)
e83c6d00 751 (uri (rubygems-uri "multipart-post" version))
e778a549
DT
752 (sha256
753 (base32
e83c6d00 754 "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"))))
e778a549
DT
755 (build-system ruby-build-system)
756 (native-inputs
757 `(("bundler" ,bundler)))
758 (synopsis "Multipart POST library for Ruby")
759 (description "Multipart-Post Adds multipart POST capability to Ruby's
760net/http library.")
761 (home-page "https://github.com/nicksieger/multipart-post")
762 (license license:expat)))
f8da3af0
DT
763
764(define-public ruby-arel
765 (package
766 (name "ruby-arel")
767 (version "6.0.3")
768 (source (origin
769 (method url-fetch)
770 (uri (rubygems-uri "arel" version))
771 (sha256
772 (base32
773 "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
774 (build-system ruby-build-system)
775 (arguments '(#:tests? #f)) ; no tests
776 (home-page "https://github.com/rails/arel")
777 (synopsis "SQL AST manager for Ruby")
778 (description "Arel is a SQL AST manager for Ruby. It simplifies the
779generation of complex SQL queries and is compatible with various RDBMSes.")
780 (license license:expat)))
616eaead
DT
781
782(define-public ruby-minitar
783 (package
784 (name "ruby-minitar")
785 (version "0.5.4")
786 (source
787 (origin
788 (method url-fetch)
789 (uri (rubygems-uri "minitar" version))
790 (sha256
791 (base32
792 "1vpdjfmdq1yc4i620frfp9af02ia435dnpj8ybsd7dc3rypkvbka"))))
793 (build-system ruby-build-system)
794 (arguments
795 '(#:tests? #f)) ; missing a gemspec
796 (synopsis "Ruby library and utility for handling tar archives")
797 (description
798 "Archive::Tar::Minitar is a pure-Ruby library and command-line utility
799that provides the ability to deal with POSIX tar archive files.")
800 (home-page "http://www.github.com/atoulme/minitar")
801 (license (list license:gpl2+ license:ruby))))
bea1c0e2
DT
802
803(define-public ruby-mini-portile
804 (package
805 (name "ruby-mini-portile")
806 (version "0.6.2")
807 (source
808 (origin
809 (method url-fetch)
810 (uri (rubygems-uri "mini_portile" version))
811 (sha256
812 (base32
813 "0h3xinmacscrnkczq44s6pnhrp4nqma7k056x5wv5xixvf2wsq2w"))))
814 (build-system ruby-build-system)
815 (arguments
816 '(#:tests? #f)) ; tests require network access
817 (synopsis "Ports system for Ruby developers")
818 (description "Mini-portile is a port/recipe system for Ruby developers.
819It provides a standard way to compile against specific versions of libraries
820to reproduce user environments.")
821 (home-page "http://github.com/flavorjones/mini_portile")
822 (license license:expat)))
e920bfca
DT
823
824(define-public ruby-nokogiri
825 (package
826 (name "ruby-nokogiri")
827 (version "1.6.6.2")
828 (source (origin
829 (method url-fetch)
830 (uri (rubygems-uri "nokogiri" version))
831 (sha256
832 (base32
833 "1j4qv32qjh67dcrc1yy1h8sqjnny8siyy4s44awla8d6jk361h30"))))
834 (build-system ruby-build-system)
835 (arguments
836 ;; Tests fail because Nokogiri can only test with an installed extension,
837 ;; and also because many test framework dependencies are missing.
838 '(#:tests? #f
839 #:gem-flags (list "--" "--use-system-libraries"
840 (string-append "--with-xml2-include="
841 (assoc-ref %build-inputs "libxml2")
842 "/include/libxml2" ))))
843 (native-inputs
844 `(("ruby-hoe" ,ruby-hoe)
845 ("ruby-rake-compiler", ruby-rake-compiler)))
846 (inputs
847 `(("zlib" ,zlib)
848 ("libxml2" ,libxml2)
849 ("libxslt" ,libxslt)))
850 (propagated-inputs
851 `(("ruby-mini-portile" ,ruby-mini-portile)))
852 (synopsis "HTML, XML, SAX, and Reader parser for Ruby")
853 (description "Nokogiri (鋸) parses and searches XML/HTML, and features
854both CSS3 selector and XPath 1.0 support.")
855 (home-page "http://www.nokogiri.org/")
856 (license license:expat)))
30b0b725
DT
857
858(define-public ruby-method-source
859 (package
860 (name "ruby-method-source")
861 (version "0.8.2")
862 (source
863 (origin
864 (method url-fetch)
865 (uri (rubygems-uri "method_source" version))
866 (sha256
867 (base32
868 "1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2"))))
869 (build-system ruby-build-system)
870 (native-inputs
871 `(("ruby-bacon" ,ruby-bacon)
872 ("git" ,git)))
873 (synopsis "Retrieve the source code for Ruby methods")
874 (description "Method_source retrieves the source code for Ruby methods.
875Additionally, it can extract source code from Proc and Lambda objects or just
876extract comments.")
877 (home-page "https://github.com/banister/method_source")
878 (license license:expat)))
2e3fdea4
DT
879
880(define-public ruby-coderay
881 (package
882 (name "ruby-coderay")
883 (version "1.1.0")
884 (source
885 (origin
886 (method url-fetch)
887 (uri (rubygems-uri "coderay" version))
888 (sha256
889 (base32
890 "059wkzlap2jlkhg460pkwc1ay4v4clsmg1bp4vfzjzkgwdckr52s"))))
891 (build-system ruby-build-system)
892 (arguments
893 '(#:tests? #f)) ; missing test files
894 (synopsis "Ruby syntax highlighting library")
895 (description "Coderay is a Ruby library that provides syntax highlighting
896for select languages.")
897 (home-page "http://coderay.rubychan.de")
898 (license license:expat)))