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