d0550099b408a8dfb60ced2bed1a20a4a8981d92
[jackhill/guix/guix.git] / gnu / packages / ruby.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl>
3 ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
6 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
7 ;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
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)
28 #:use-module (gnu packages databases)
29 #:use-module (gnu packages readline)
30 #:use-module (gnu packages autotools)
31 #:use-module (gnu packages java)
32 #:use-module (gnu packages libffi)
33 #:use-module (gnu packages tls)
34 #:use-module (gnu packages version-control)
35 #:use-module (guix packages)
36 #:use-module (guix download)
37 #:use-module (guix git-download)
38 #:use-module (guix utils)
39 #:use-module (guix build-system gnu)
40 #:use-module (gnu packages xml)
41 #:use-module (guix build-system ruby))
42
43 (define-public ruby
44 (package
45 (name "ruby")
46 (version "2.2.3")
47 (source
48 (origin
49 (method url-fetch)
50 (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
51 (version-major+minor version)
52 "/ruby-" version ".tar.xz"))
53 (sha256
54 (base32
55 "19x8gs67klgc3ag815jpin83jn2nv1akgjcgayd6v3h1xplr1v66"))))
56 (build-system gnu-build-system)
57 (arguments
58 `(#:test-target "test"
59 #:parallel-tests? #f
60 #:phases
61 (alist-cons-before
62 'configure 'replace-bin-sh
63 (lambda _
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)))
77 (inputs
78 `(("readline" ,readline)
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")
86 (files (list (string-append "lib/ruby/gems/"
87 (version-major+minor version)
88 ".0"))))))
89 (synopsis "Programming language interpreter")
90 (description "Ruby is a dynamic object-oriented programming language with
91 a focus on simplicity and productivity.")
92 (home-page "https://ruby-lang.org")
93 (license license:ruby)))
94
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
128 (define-public ruby-1.8
129 (package (inherit ruby)
130 (version "1.8.7-p374")
131 (source
132 (origin
133 (method url-fetch)
134 (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
135 (version-major+minor version)
136 "/ruby-" version ".tar.bz2"))
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
156 (define-public ruby-hoe
157 (package
158 (name "ruby-hoe")
159 (version "3.13.1")
160 (source (origin
161 (method url-fetch)
162 (uri (rubygems-uri "hoe" version))
163 (sha256
164 (base32
165 "1mac13krdrasn9819dd65xj27kklfy0xdbj3p6s2ij4vlcb46h8q"))) )
166 (build-system ruby-build-system)
167 (synopsis "Ruby project management helper")
168 (description
169 "Hoe is a rake/rubygems helper for project Rakefiles. It helps manage,
170 maintain, and release projects and includes a dynamic plug-in system allowing
171 for easy extensibility. Hoe ships with plug-ins for all the usual project
172 tasks including rdoc generation, testing, packaging, deployment, and
173 announcement.")
174 (home-page "http://www.zenspider.com/projects/hoe.html")
175 (license license:expat)))
176
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)
183 (uri (rubygems-uri "rake-compiler" version))
184 (sha256
185 (base32
186 "1k8im2vzj849xdgjk6wafspkiwwapqwm738majchb4dnhnsk64cx"))))
187 (build-system ruby-build-system)
188 (arguments
189 '(#:tests? #f)) ; needs cucumber
190 (synopsis "Building and packaging helper for Ruby native extensions")
191 (description "Rake-compiler provides a framework for building and
192 packaging native C and Java extensions in Ruby.")
193 (home-page "https://github.com/rake-compiler/rake-compiler")
194 (license license:expat)))
195
196 (define-public ruby-i18n
197 (package
198 (name "ruby-i18n")
199 (version "0.7.0")
200 (source (origin
201 (method url-fetch)
202 (uri (rubygems-uri "i18n" version))
203 (sha256
204 (base32
205 "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758"))))
206 (build-system ruby-build-system)
207 (arguments
208 '(#:tests? #f)) ; no tests
209 (synopsis "Internationalization library for Ruby")
210 (description "Ruby i18n is an internationalization and localization
211 solution for Ruby programs. It features translation and localization,
212 interpolation of values to translations, pluralization, customizable
213 transliteration to ASCII, flexible defaults, bulk lookup, lambdas as
214 translation data, custom key/scope separator, custom exception handlers, and
215 an extensible architecture with a swappable backend.")
216 (home-page "http://github.com/svenfuchs/i18n")
217 (license license:expat)))
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)
228 (uri (rubygems-uri "rspec-support" version))
229 (sha256
230 (base32
231 "194zry5195ls2hni7r9824vqb5d3qfg4jb15fgj8glfy0rvw3zxl"))))
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)
246 (uri (rubygems-uri "rspec-core" version))
247 (sha256
248 (base32
249 "0k2471iw30gc2cvv67damrx666pmsvx8l0ahk3hm20dhfnmcmpvv"))))
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
257 groups.")
258 (home-page "https://github.com/rspec/rspec-core")
259 (license license:expat)))
260
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
272 (define-public ruby-diff-lcs
273 (package
274 (name "ruby-diff-lcs")
275 (version "1.2.5")
276 (source (origin
277 (method url-fetch)
278 (uri (rubygems-uri "diff-lcs" version))
279 (sha256
280 (base32
281 "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1"))))
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
287 sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm.
288 It includes utilities to create a simple HTML diff output format and a
289 standard 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)
299 (uri (rubygems-uri "rspec-expectations" version))
300 (sha256
301 (base32
302 "01kmchabgpdcaqdsqg8r0g5gy385xhp1k1jsds3w264ypin17n14"))))
303 (build-system ruby-build-system)
304 (arguments
305 '(#:tests? #f)) ; avoid dependency cycles
306 (propagated-inputs
307 `(("ruby-rspec-support" ,ruby-rspec-support)
308 ("ruby-diff-lcs" ,ruby-diff-lcs)))
309 (synopsis "RSpec expectations library")
310 (description "Rspec-expectations provides a simple API to express expected
311 outcomes of a code example.")
312 (home-page "https://github.com/rspec/rspec-expectations")
313 (license license:expat)))
314
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
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)
333 (uri (rubygems-uri "rspec-mocks" version))
334 (sha256
335 (base32
336 "09yig1lwgxl8fsns71z3xhv7wkg7zvagydh37pvaqpw92dz55jv2"))))
337 (build-system ruby-build-system)
338 (arguments
339 '(#:tests? #f)) ; avoid dependency cycles
340 (propagated-inputs
341 `(("ruby-rspec-support" ,ruby-rspec-support)
342 ("ruby-diff-lcs" ,ruby-diff-lcs)))
343 (synopsis "RSpec stubbing and mocking library")
344 (description "Rspec-mocks provides RSpec's \"test double\" framework, with
345 support for stubbing and mocking.")
346 (home-page "https://github.com/rspec/rspec-mocks")
347 (license license:expat)))
348
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
361 (define-public ruby-rspec
362 (package
363 (name "ruby-rspec")
364 (version "3.2.0")
365 (source (origin
366 (method url-fetch)
367 (uri (rubygems-uri "rspec" version))
368 (sha256
369 (base32
370 "0lkz01j4yxcwb3g5w6r1l9khnyw3sxib4rrh4npd2pxh390fcc4f"))))
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
380 Ruby. This meta-package includes the RSpec test runner, along with the
381 expectations and mocks frameworks.")
382 (home-page "http://rspec.info/")
383 (license license:expat)))
384
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
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")
404 (version "1.10.6")
405 (source (origin
406 (method url-fetch)
407 (uri (rubygems-uri "bundler" version))
408 (sha256
409 (base32
410 "1vlzfq0bkkj4jyq6av0y55mh5nj5n0f3mfbmmifwgkh44g8k6agv"))))
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
416 specified in a \"Gemfile\", as well as their dependencies.")
417 (home-page "http://bundler.io/")
418 (license license:expat)))
419
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
441 easy to create structured data. Currently the following builder objects are
442 supported: XML Markup and XML Events.")
443 (home-page "https://github.com/jimweirich/builder")
444 (license license:expat)))
445
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
469 Java Native Interface.")
470 (home-page "http://www.artonx.org/collabo/backyard/?RubyJavaBridge")
471 (license license:lgpl2.1+)))
472
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
489 in Ruby for use in Ruby programs. It features a hierarchical logging
490 system of any number of levels, custom level names, logger
491 inheritance, multiple output destinations per log event, execution
492 tracing, custom formatting, thread safteyness, XML and YAML
493 configuration, and more.")
494 (home-page "http://log4r.rubyforge.org/")
495 (license license:bsd-3)))
496
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
516 tool. Antwrap can be used to invoke Ant tasks from a Ruby or a JRuby
517 script.")
518 (home-page "http://rubyforge.org/projects/antwrap/")
519 (license license:expat)))
520
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
536 implementation that preserves the order of items and features some array-like
537 extensions.")
538 (home-page "http://codeforpeople.com/lib/ruby/orderedhash/")
539 (license license:public-domain)))
540
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
565 the GNOME Libxml2 XML toolkit.")
566 (home-page "http://xml4r.github.com/libxml-ruby")
567 (license license:expat)))
568
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
584 Ruby.")
585 (home-page "https://github.com/maik/xml-simple")
586 (license license:ruby)))
587
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
605 interfaces.")
606 (home-page "http://whatisthor.com/")
607 (license license:expat)))
608
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
624 replacement for Logger or ActiveSupport::BufferedLogger. It provides support
625 for automatically rolling log files even with multiple processes writing the
626 same log file.")
627 (home-page "http://github.com/bdurand/lumberjack")
628 (license license:expat)))
629
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
648 and inspect the environment.")
649 (home-page "https://github.com/e2/nenv")
650 (license license:expat)))
651
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
678 operations 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
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
708 the output produced by running shell commands.")
709 (home-page "https://rubygems.org/gems/shellany")
710 (license license:expat)))
711
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
732 libraries such as Libnotify.")
733 (home-page "https://github.com/guard/notiffany")
734 (license license:expat)))
735
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
752 standard output stream.")
753 (home-page "http://github.com/geemus/formatador")
754 (license license:expat)))
755
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
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
803 Ruby Gems.")
804 (home-page "https://github.com/postmodern/rubygems-tasks")
805 (license license:expat)))
806
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
829 dynamic libraries, binding functions within them, and calling those functions
830 from Ruby code. Moreover, a Ruby-FFI extension works without changes on Ruby
831 and JRuby.")
832 (home-page "http://wiki.github.com/ffi/ffi")
833 (license license:bsd-3)))
834
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
850 the 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
854 (define-public ruby-useragent
855 (package
856 (name "ruby-useragent")
857 (version "0.13.3")
858 (source (origin
859 (method url-fetch)
860 (uri (rubygems-uri "useragent" version))
861 (sha256
862 (base32
863 "0kz7yyz7528bv4a2kfymvkcm8whqcddhmgaw1ksw1d90n30hhkpc"))))
864 (build-system ruby-build-system)
865 (arguments
866 '(#:tests? #f)) ; no test suite
867 (synopsis "HTTP user agent parser for Ruby")
868 (description "UserAgent is a Ruby library that parses and compares HTTP
869 User Agents.")
870 (home-page "https://github.com/gshutler/useragent")
871 (license license:expat)))
872
873 (define-public ruby-bacon
874 (package
875 (name "ruby-bacon")
876 (version "1.2.0")
877 (source (origin
878 (method url-fetch)
879 (uri (rubygems-uri "bacon" version))
880 (sha256
881 (base32
882 "1f06gdj77bmwzc1k5iragl1595hbn67yc7sqvs56ca8plrr2vmai"))))
883 (build-system ruby-build-system)
884 (synopsis "Small RSpec clone")
885 (description "Bacon is a small RSpec clone providing all essential
886 features.")
887 (home-page "https://github.com/chneukirchen/bacon")
888 (license license:expat)))
889
890 (define-public ruby-arel
891 (package
892 (name "ruby-arel")
893 (version "6.0.0")
894 (source (origin
895 (method url-fetch)
896 (uri (rubygems-uri "arel" version))
897 (sha256
898 (base32
899 "18wnfnzr2i5p3fygsddjbi1cimws6823nbk8drxidmnj8jz7h0ar"))))
900 (build-system ruby-build-system)
901 (arguments
902 '(#:tests? #f)) ; no test suite
903 (synopsis "SQL AST manager for Ruby")
904 (description "Arel is a SQL AST manager for Ruby. It simplifies the
905 generation of complex SQL queries and adapts to various relational database
906 implementations.")
907 (home-page "https://github.com/rails/arel")
908 (license license:expat)))
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)
916 (uri (rubygems-uri "connection_pool" version))
917 (sha256
918 (base32
919 "1b2bb3k39ni5mzcnqlv9y4yjkbin20s7dkwzp0jw2jf1rmzcgrmy"))))
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
925 interface for Ruby programs.")
926 (home-page "https://github.com/mperham/connection_pool")
927 (license license:expat)))
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)
935 (uri (rubygems-uri "net-http-persistent" version))
936 (sha256
937 (base32
938 "1y9fhaax0d9kkslyiqi1zys6cvpaqx9a0y0cywp24rpygwh4s9r4"))))
939 (build-system ruby-build-system)
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
945 using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
946 (home-page "https://github.com/drbrain/net-http-persistent")
947 (license license:expat)))
948
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
964 assertion messages for tests.")
965 (home-page "https://github.com/k-tsj/power_assert")
966 (license (list license:bsd-2 license:ruby))))
967
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
989 localization.")
990 (home-page "https://github.com/ruby-gettext/locale")
991 (license (list license:lgpl3+ license:ruby))))
992
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,
1007 Soundex, Metaphone, Double Metaphone, Porter Stemming.")
1008 (home-page "http://github.com/threedaymonk/text")
1009 (license license:expat)))
1010
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
1035 file (po-file) used is the same as that used by GNU gettext, allowing you to
1036 use GNU gettext tools for maintenance.")
1037 (home-page "http://ruby-gettext.github.com/")
1038 (license (list license:lgpl3+ license:ruby))))
1039
1040 (define-public ruby-packnga
1041 (package
1042 (name "ruby-packnga")
1043 (version "1.0.1")
1044 (source (origin
1045 (method url-fetch)
1046 (uri (rubygems-uri "packnga" version))
1047 (sha256
1048 (base32
1049 "1i71yhvlkvi5fp3m8jl9317cnddkbnrcy0syrmiw4y1lrq0cbncj"))))
1050 (build-system ruby-build-system)
1051 ;; ruby-test-unit is required to run tests, but that needs ruby-packnga.
1052 ;; To break the dependency cycle we disable tests.
1053 (arguments `(#:tests? #f))
1054 (propagated-inputs
1055 `(("ruby-gettext" ,ruby-gettext)
1056 ("ruby-yard" ,ruby-yard)))
1057 (native-inputs
1058 `(("bundler" ,bundler)))
1059 (synopsis "Utility library to package internationalized libraries")
1060 (description
1061 "Packnga is a library to translate to many languages using YARD.")
1062 (home-page "http://ranguba.org/packnga/")
1063 (license license:lgpl2.0+)))
1064
1065 (define-public ruby-test-unit
1066 (package
1067 (name "ruby-test-unit")
1068 (version "3.1.5")
1069 (source (origin
1070 (method url-fetch)
1071 (uri (rubygems-uri "test-unit" version))
1072 (sha256
1073 (base32
1074 "0jxznjzwmrlp8wqjxsd06qbiddffn68pdhz6nrqpjbiln1z3af4w"))))
1075 (build-system ruby-build-system)
1076 (propagated-inputs
1077 `(("ruby-power-assert" ,ruby-power-assert)))
1078 (native-inputs
1079 `(("bundler" ,bundler)
1080 ("ruby-packnga" ,ruby-packnga)
1081 ("ruby-yard" ,ruby-yard)))
1082 (synopsis "Unit testing framework for Ruby")
1083 (description "@code{Test::Unit} is unit testing framework for Ruby, based
1084 on xUnit principles. These were originally designed by Kent Beck, creator of
1085 extreme programming software development methodology, for Smalltalk's SUnit.
1086 It allows writing tests, checking results and automated testing in Ruby.")
1087 (home-page "http://test-unit.github.io/")
1088 (license (list license:psfl license:ruby))))
1089
1090 (define-public ruby-metaclass
1091 (package
1092 (name "ruby-metaclass")
1093 (version "0.0.4")
1094 (source (origin
1095 (method url-fetch)
1096 (uri (rubygems-uri "metaclass" version))
1097 (sha256
1098 (base32
1099 "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5"))))
1100 (build-system ruby-build-system)
1101 (arguments
1102 `(#:phases
1103 (modify-phases %standard-phases
1104 (add-after 'unpack 'add-test-unit-to-search-path
1105 (lambda* (#:key inputs #:allow-other-keys)
1106 (substitute* "Rakefile"
1107 (("t\\.libs << \"test\"" line)
1108 (string-append line "; t.libs << \""
1109 (assoc-ref inputs "ruby-test-unit")
1110 "/lib/ruby/gems/2.2.0/gems/test-unit-"
1111 ,(package-version ruby-test-unit)
1112 "/lib\"")))
1113 #t)))))
1114 (native-inputs
1115 `(("bundler" ,bundler)
1116 ("ruby-test-unit" ,ruby-test-unit)))
1117 (synopsis "Ruby library adding metaclass method to all objects")
1118 (description
1119 "Metaclass is a Ruby library adding a @code{metaclass} method to all Ruby
1120 objects.")
1121 (home-page "http://github.com/floehopper/metaclass")
1122 (license license:expat)))
1123
1124 (define-public ruby-blankslate
1125 (package
1126 (name "ruby-blankslate")
1127 (version "3.1.3")
1128 (source (origin
1129 (method url-fetch)
1130 (uri (rubygems-uri "blankslate" version))
1131 (sha256
1132 (base32
1133 "0fwkb4d1j9gc7vdwn2nxvwgy2g5wlag4c4bp7bl85jvq0kgp6cyx"))))
1134 (build-system ruby-build-system)
1135 (arguments
1136 `(#:phases
1137 (modify-phases %standard-phases
1138 (replace 'check
1139 (lambda _ (zero? (system* "rspec" "spec/")))))))
1140 (native-inputs
1141 `(("bundler" ,bundler)
1142 ("ruby-rspec" ,ruby-rspec)))
1143 (synopsis "Abstract base class with no predefined methods")
1144 (description
1145 "BlankSlate provides an abstract base class with no predefined
1146 methods (except for @code{__send__} and @code{__id__}). BlankSlate is useful
1147 as a base class when writing classes that depend upon
1148 @code{method_missing} (e.g. dynamic proxies).")
1149 (home-page "http://github.com/masover/blankslate")
1150 (license license:expat)))
1151
1152 (define-public ruby-instantiator
1153 (package
1154 (name "ruby-instantiator")
1155 (version "0.0.6")
1156 (source (origin
1157 (method url-fetch)
1158 (uri (rubygems-uri "instantiator" version))
1159 (sha256
1160 (base32
1161 "0mfmqhg9xrv9i8i1kmphf15ywddhivyh2z3ccl0xjw8qy54zr21i"))))
1162 (build-system ruby-build-system)
1163 (arguments
1164 `(#:phases
1165 (modify-phases %standard-phases
1166 (add-after 'unpack 'add-test-unit-to-search-path
1167 (lambda* (#:key inputs #:allow-other-keys)
1168 (substitute* "Rakefile"
1169 (("t\\.libs << \"test\"" line)
1170 (string-append line "; t.libs << \""
1171 (assoc-ref inputs "ruby-test-unit")
1172 "/lib/ruby/gems/2.2.0/gems/test-unit-"
1173 ,(package-version ruby-test-unit)
1174 "/lib\"")))
1175 #t)))))
1176 (propagated-inputs
1177 `(("ruby-blankslate" ,ruby-blankslate)))
1178 (native-inputs
1179 `(("bundler" ,bundler)
1180 ("ruby-test-unit" ,ruby-test-unit)))
1181 (synopsis "Instantiate an arbitrary Ruby class")
1182 (description
1183 "Instantiator lets you instantiate an arbitrary Ruby class without
1184 knowing anything about the constructor.")
1185 (home-page "https://github.com/floehopper/instantiator")
1186 (license license:expat)))
1187
1188 (define-public ruby-introspection
1189 (package
1190 (name "ruby-introspection")
1191 (version "0.0.3")
1192 (source (origin
1193 (method url-fetch)
1194 (uri (rubygems-uri "introspection" version))
1195 (sha256
1196 (base32
1197 "0g1j71sqfxbqk32wj7d0bkd3dlayfqzprfq3dbr0rq107xbxjcrr"))))
1198 (build-system ruby-build-system)
1199 (arguments
1200 `(#:phases
1201 (modify-phases %standard-phases
1202 (add-after 'unpack 'add-test-unit-to-search-path
1203 (lambda* (#:key inputs #:allow-other-keys)
1204 (substitute* "Rakefile"
1205 (("t\\.libs << \"test\"" line)
1206 (string-append line "; t.libs << \""
1207 (assoc-ref inputs "ruby-test-unit")
1208 "/lib/ruby/gems/2.2.0/gems/test-unit-"
1209 ,(package-version ruby-test-unit)
1210 "/lib\"")))
1211 #t)))))
1212 (propagated-inputs
1213 `(("ruby-instantiator" ,ruby-instantiator)
1214 ("ruby-metaclass" ,ruby-metaclass)))
1215 (native-inputs
1216 `(("bundler" ,bundler)
1217 ("ruby-blankslate" ,ruby-blankslate)
1218 ("ruby-test-unit" ,ruby-test-unit)))
1219 (synopsis "Dynamic inspection of the method hierarchy on a Ruby object")
1220 (description
1221 "Introspection provides tools to inspect the hierarchy of method
1222 definitions on a Ruby object.")
1223 (home-page "https://github.com/floehopper/introspection")
1224 (license license:expat)))
1225
1226 (define-public ruby-redcarpet
1227 (package
1228 (name "ruby-redcarpet")
1229 (version "3.3.3")
1230 (source (origin
1231 (method url-fetch)
1232 (uri (rubygems-uri "redcarpet" version))
1233 (sha256
1234 (base32
1235 "14i3wypp97bpk20679d1csy88q4hsgfqbnqw6mryl77m2g0d09pk"))))
1236 (build-system ruby-build-system)
1237 (arguments
1238 `(#:phases
1239 (modify-phases %standard-phases
1240 ;; The gem archive does not include the conformance tests.
1241 (add-after 'unpack 'disable-conformance-tests
1242 (lambda _
1243 (substitute* "Rakefile"
1244 (("task :test => %w\\[test:unit test:conformance\\]")
1245 "task :test => %w[test:unit]"))
1246 #t)))))
1247 (native-inputs
1248 `(("bundler" ,bundler)
1249 ("ruby-test-unit" ,ruby-test-unit)
1250 ("ruby-rake-compiler" ,ruby-rake-compiler)))
1251 (synopsis "Extensible Markdown to (X)HTML converter")
1252 (description
1253 "Redcarpet is an extensible Ruby library for Markdown processing and
1254 conversion to (X)HTML.")
1255 (home-page "http://github.com/vmg/redcarpet")
1256 (license license:expat)))
1257
1258 (define-public ruby-minitest
1259 (package
1260 (name "ruby-minitest")
1261 (version "5.7.0")
1262 (source (origin
1263 (method url-fetch)
1264 (uri (rubygems-uri "minitest" version))
1265 (sha256
1266 (base32
1267 "0rxqfakp629mp3vwda7zpgb57lcns5znkskikbfd0kriwv8i1vq8"))))
1268 (build-system ruby-build-system)
1269 (native-inputs
1270 `(("ruby-hoe" ,ruby-hoe)))
1271 (synopsis "Small test suite library for Ruby")
1272 (description "Minitest provides a complete suite of Ruby testing
1273 facilities supporting TDD, BDD, mocking, and benchmarking.")
1274 (home-page "https://github.com/seattlerb/minitest")
1275 (license license:expat)))
1276
1277 (define-public ruby-minitest-sprint
1278 (package
1279 (name "ruby-minitest-sprint")
1280 (version "1.1.0")
1281 (source (origin
1282 (method url-fetch)
1283 (uri (rubygems-uri "minitest-sprint" version))
1284 (sha256
1285 (base32
1286 "179d6pj56l9xzm46fqsqj10mzjkr1f9fv4cxa8wvchs97hqz33w1"))))
1287 (build-system ruby-build-system)
1288 (native-inputs
1289 `(("ruby-hoe" ,ruby-hoe)
1290 ("ruby-minitest" ,ruby-minitest)))
1291 (synopsis "Fast test suite runner for minitest")
1292 (description "Minitest-sprint is a test runner for minitest that makes it
1293 easier to re-run individual failing tests.")
1294 (home-page "https://github.com/seattlerb/minitest-sprint")
1295 (license license:expat)))
1296
1297 (define-public ruby-minitest-bacon
1298 (package
1299 (name "ruby-minitest-bacon")
1300 (version "1.0.2")
1301 (source (origin
1302 (method url-fetch)
1303 (uri (rubygems-uri "minitest-bacon" version))
1304 (sha256
1305 (base32
1306 "0cm7r68422743i3b6fm4rrm0r6cnnjmglq5gcmmgl1f0rk5hnf6r"))))
1307 (build-system ruby-build-system)
1308 (native-inputs
1309 `(("ruby-hoe" ,ruby-hoe)))
1310 (inputs
1311 `(("ruby-minitest" ,ruby-minitest)))
1312 (synopsis "Bacon compatibility library for minitest")
1313 (description "Minitest-bacon extends minitest with bacon-like
1314 functionality, making it easier to migrate test suites from bacon to minitest.")
1315 (home-page "https://github.com/seattlerb/minitest-bacon")
1316 (license license:expat)))
1317
1318 (define-public ruby-daemons
1319 (package
1320 (name "ruby-daemons")
1321 (version "1.2.2")
1322 (source (origin
1323 (method url-fetch)
1324 (uri (rubygems-uri "daemons" version))
1325 (sha256
1326 (base32
1327 "121c7vkimg3baxga69xvdkwxiq8wkmxqvdbyqi5i82vhih5d3cn3"))))
1328 (build-system ruby-build-system)
1329 (arguments
1330 `(#:tests? #f)) ; no test suite
1331 (synopsis "Daemonize Ruby programs")
1332 (description "Daemons provides a way to wrap existing Ruby scripts to be
1333 run as a daemon and to be controlled by simple start/stop/restart commands.")
1334 (home-page "https://github.com/thuehlinger/daemons")
1335 (license license:expat)))
1336
1337 (define-public ruby-git
1338 (package
1339 (name "ruby-git")
1340 (version "1.2.9.1")
1341 (source (origin
1342 (method url-fetch)
1343 (uri (rubygems-uri "git" version))
1344 (sha256
1345 (base32
1346 "1sqfj8lmhl7c5zamcckkpik4izfph2zkv6krw0i8mzj5pdws5acs"))))
1347 (build-system ruby-build-system)
1348 (arguments
1349 `(#:tests? #f ; no tests
1350 #:phases (modify-phases %standard-phases
1351 (add-after 'install 'patch-git-binary
1352 (lambda* (#:key inputs outputs #:allow-other-keys)
1353 ;; Make the default git binary an absolute path to the
1354 ;; store.
1355 (let ((git (string-append (assoc-ref inputs "git")
1356 "/bin/git"))
1357 (config (string-append (getenv "GEM_HOME")
1358 "/gems/git-" ,version
1359 "/lib/git/config.rb")))
1360 (substitute* (list config)
1361 (("'git'")
1362 (string-append "'" git "'")))
1363 #t))))))
1364 (inputs
1365 `(("git" ,git)))
1366 (synopsis "Ruby wrappers for Git")
1367 (description "Ruby/Git is a Ruby library that can be used to create, read
1368 and manipulate Git repositories by wrapping system calls to the git binary.")
1369 (home-page "https://github.com/schacon/ruby-git")
1370 (license license:expat)))
1371
1372 (define-public ruby-slop
1373 (package
1374 (name "ruby-slop")
1375 (version "4.1.0")
1376 (source (origin
1377 (method url-fetch)
1378 (uri (rubygems-uri "slop" version))
1379 (sha256
1380 (base32
1381 "0dj0ps6v1mqd02k84mgwd7hp578n2bzl7c51h3grdhxfl3jkfsj5"))))
1382 (build-system ruby-build-system)
1383 (native-inputs
1384 `(("ruby-minitest" ,ruby-minitest)))
1385 (synopsis "Ruby command line option parser")
1386 (description "Slop provides a Ruby domain specific language for gathering
1387 options and parsing command line flags.")
1388 (home-page "https://github.com/leejarvis/slop")
1389 (license license:expat)))
1390
1391 (define-public ruby-slop-3
1392 (package (inherit ruby-slop)
1393 (version "3.6.0")
1394 (source (origin
1395 (method url-fetch)
1396 (uri (rubygems-uri "slop" version))
1397 (sha256
1398 (base32
1399 "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n"))))))
1400
1401 (define-public ruby-multipart-post
1402 (package
1403 (name "ruby-multipart-post")
1404 (version "2.0.0")
1405 (source (origin
1406 (method url-fetch)
1407 (uri (rubygems-uri "multipart-post" version))
1408 (sha256
1409 (base32
1410 "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"))))
1411 (build-system ruby-build-system)
1412 (native-inputs
1413 `(("bundler" ,bundler)))
1414 (synopsis "Multipart POST library for Ruby")
1415 (description "Multipart-Post Adds multipart POST capability to Ruby's
1416 net/http library.")
1417 (home-page "https://github.com/nicksieger/multipart-post")
1418 (license license:expat)))
1419
1420 (define-public ruby-arel
1421 (package
1422 (name "ruby-arel")
1423 (version "6.0.3")
1424 (source (origin
1425 (method url-fetch)
1426 (uri (rubygems-uri "arel" version))
1427 (sha256
1428 (base32
1429 "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
1430 (build-system ruby-build-system)
1431 (arguments '(#:tests? #f)) ; no tests
1432 (home-page "https://github.com/rails/arel")
1433 (synopsis "SQL AST manager for Ruby")
1434 (description "Arel is a SQL AST manager for Ruby. It simplifies the
1435 generation of complex SQL queries and is compatible with various RDBMSes.")
1436 (license license:expat)))
1437
1438 (define-public ruby-minitar
1439 (package
1440 (name "ruby-minitar")
1441 (version "0.5.4")
1442 (source
1443 (origin
1444 (method url-fetch)
1445 (uri (rubygems-uri "minitar" version))
1446 (sha256
1447 (base32
1448 "1vpdjfmdq1yc4i620frfp9af02ia435dnpj8ybsd7dc3rypkvbka"))))
1449 (build-system ruby-build-system)
1450 (arguments
1451 '(#:tests? #f)) ; missing a gemspec
1452 (synopsis "Ruby library and utility for handling tar archives")
1453 (description
1454 "Archive::Tar::Minitar is a pure-Ruby library and command-line utility
1455 that provides the ability to deal with POSIX tar archive files.")
1456 (home-page "http://www.github.com/atoulme/minitar")
1457 (license (list license:gpl2+ license:ruby))))
1458
1459 (define-public ruby-mini-portile
1460 (package
1461 (name "ruby-mini-portile")
1462 (version "0.6.2")
1463 (source
1464 (origin
1465 (method url-fetch)
1466 (uri (rubygems-uri "mini_portile" version))
1467 (sha256
1468 (base32
1469 "0h3xinmacscrnkczq44s6pnhrp4nqma7k056x5wv5xixvf2wsq2w"))))
1470 (build-system ruby-build-system)
1471 (arguments
1472 '(#:tests? #f)) ; tests require network access
1473 (synopsis "Ports system for Ruby developers")
1474 (description "Mini-portile is a port/recipe system for Ruby developers.
1475 It provides a standard way to compile against specific versions of libraries
1476 to reproduce user environments.")
1477 (home-page "http://github.com/flavorjones/mini_portile")
1478 (license license:expat)))
1479
1480 (define-public ruby-nokogiri
1481 (package
1482 (name "ruby-nokogiri")
1483 (version "1.6.6.2")
1484 (source (origin
1485 (method url-fetch)
1486 (uri (rubygems-uri "nokogiri" version))
1487 (sha256
1488 (base32
1489 "1j4qv32qjh67dcrc1yy1h8sqjnny8siyy4s44awla8d6jk361h30"))))
1490 (build-system ruby-build-system)
1491 (arguments
1492 ;; Tests fail because Nokogiri can only test with an installed extension,
1493 ;; and also because many test framework dependencies are missing.
1494 '(#:tests? #f
1495 #:gem-flags (list "--" "--use-system-libraries"
1496 (string-append "--with-xml2-include="
1497 (assoc-ref %build-inputs "libxml2")
1498 "/include/libxml2" ))))
1499 (native-inputs
1500 `(("ruby-hoe" ,ruby-hoe)
1501 ("ruby-rake-compiler", ruby-rake-compiler)))
1502 (inputs
1503 `(("zlib" ,zlib)
1504 ("libxml2" ,libxml2)
1505 ("libxslt" ,libxslt)))
1506 (propagated-inputs
1507 `(("ruby-mini-portile" ,ruby-mini-portile)))
1508 (synopsis "HTML, XML, SAX, and Reader parser for Ruby")
1509 (description "Nokogiri (鋸) parses and searches XML/HTML, and features
1510 both CSS3 selector and XPath 1.0 support.")
1511 (home-page "http://www.nokogiri.org/")
1512 (license license:expat)))
1513
1514 (define-public ruby-method-source
1515 (package
1516 (name "ruby-method-source")
1517 (version "0.8.2")
1518 (source
1519 (origin
1520 (method url-fetch)
1521 (uri (rubygems-uri "method_source" version))
1522 (sha256
1523 (base32
1524 "1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2"))))
1525 (build-system ruby-build-system)
1526 (native-inputs
1527 `(("ruby-bacon" ,ruby-bacon)
1528 ("git" ,git)))
1529 (synopsis "Retrieve the source code for Ruby methods")
1530 (description "Method_source retrieves the source code for Ruby methods.
1531 Additionally, it can extract source code from Proc and Lambda objects or just
1532 extract comments.")
1533 (home-page "https://github.com/banister/method_source")
1534 (license license:expat)))
1535
1536 (define-public ruby-coderay
1537 (package
1538 (name "ruby-coderay")
1539 (version "1.1.0")
1540 (source
1541 (origin
1542 (method url-fetch)
1543 (uri (rubygems-uri "coderay" version))
1544 (sha256
1545 (base32
1546 "059wkzlap2jlkhg460pkwc1ay4v4clsmg1bp4vfzjzkgwdckr52s"))))
1547 (build-system ruby-build-system)
1548 (arguments
1549 '(#:tests? #f)) ; missing test files
1550 (synopsis "Ruby syntax highlighting library")
1551 (description "Coderay is a Ruby library that provides syntax highlighting
1552 for select languages.")
1553 (home-page "http://coderay.rubychan.de")
1554 (license license:expat)))
1555
1556 (define-public ruby-pry
1557 (package
1558 (name "ruby-pry")
1559 (version "0.10.1")
1560 (source
1561 (origin
1562 (method url-fetch)
1563 (uri (rubygems-uri "pry" version))
1564 (sha256
1565 (base32
1566 "1j0r5fm0wvdwzbh6d6apnp7c0n150hpm9zxpm5xvcgfqr36jaj8z"))))
1567 (build-system ruby-build-system)
1568 (arguments
1569 '(#:tests? #f)) ; no tests
1570 (propagated-inputs
1571 `(("ruby-coderay" ,ruby-coderay)
1572 ("ruby-method-source" ,ruby-method-source)
1573 ("ruby-slop" ,ruby-slop-3)))
1574 (synopsis "Ruby REPL")
1575 (description "Pry is an IRB alternative and runtime developer console for
1576 Ruby. It features syntax highlighting, a plugin architecture, runtime
1577 invocation, and source and documentation browsing.")
1578 (home-page "http://pryrepl.org")
1579 (license license:expat)))
1580
1581 (define-public ruby-thread-safe
1582 (package
1583 (name "ruby-thread-safe")
1584 (version "0.3.5")
1585 (source
1586 (origin
1587 (method url-fetch)
1588 (uri (rubygems-uri "thread_safe" version))
1589 (sha256
1590 (base32
1591 "1hq46wqsyylx5afkp6jmcihdpv4ynzzq9ygb6z2pb1cbz5js0gcr"))))
1592 (build-system ruby-build-system)
1593 (arguments
1594 '(#:tests? #f)) ; needs simplecov, among others
1595 (synopsis "Thread-safe utilities for Ruby")
1596 (description "The thread_safe library provides thread-safe collections and
1597 utilities for Ruby.")
1598 (home-page "https://github.com/ruby-concurrency/thread_safe")
1599 (license license:asl2.0)))
1600
1601 (define-public ruby-tzinfo
1602 (package
1603 (name "ruby-tzinfo")
1604 (version "1.2.2")
1605 (source
1606 (origin
1607 (method url-fetch)
1608 (uri (rubygems-uri "tzinfo" version))
1609 (sha256
1610 (base32
1611 "1c01p3kg6xvy1cgjnzdfq45fggbwish8krd0h864jvbpybyx7cgx"))))
1612 (build-system ruby-build-system)
1613 (propagated-inputs
1614 `(("ruby-thread-safe" ,ruby-thread-safe)))
1615 (synopsis "Time zone library for Ruby")
1616 (description "TZInfo is a Ruby library that provides daylight savings
1617 aware transformations between times in different time zones.")
1618 (home-page "http://tzinfo.github.io")
1619 (license license:expat)))
1620
1621 (define-public ruby-rb-inotify
1622 (package
1623 (name "ruby-rb-inotify")
1624 (version "0.9.5")
1625 (source
1626 (origin
1627 (method url-fetch)
1628 (uri (rubygems-uri "rb-inotify" version))
1629 (sha256
1630 (base32
1631 "0kddx2ia0qylw3r52nhg83irkaclvrncgy2m1ywpbhlhsz1rymb9"))))
1632 (build-system ruby-build-system)
1633 (arguments
1634 '(#:tests? #f ; there are no tests
1635 #:phases
1636 (modify-phases %standard-phases
1637 ;; Building the gemspec with rake is not working here since it is
1638 ;; generated with Jeweler. It is also unnecessary because the
1639 ;; existing gemspec does not use any development tools to generate a
1640 ;; list of files.
1641 (replace 'build
1642 (lambda _
1643 (zero? (system* "gem" "build" "rb-inotify.gemspec")))))))
1644 (propagated-inputs
1645 `(("ruby-ffi" ,ruby-ffi)))
1646 (native-inputs
1647 `(("ruby-yard" ,ruby-yard)))
1648 (synopsis "Ruby wrapper for Linux's inotify")
1649 (description "rb-inotify is a simple wrapper over the @code{inotify} Linux
1650 kernel subsystem for monitoring changes to files and directories.")
1651 (home-page "https://github.com/nex3/rb-inotify")
1652 (license license:expat)))
1653
1654 (define-public ruby-json
1655 (package
1656 (name "ruby-json")
1657 (version "1.8.3")
1658 (source
1659 (origin
1660 (method url-fetch)
1661 (uri (rubygems-uri "json" version))
1662 (sha256
1663 (base32
1664 "1nsby6ry8l9xg3yw4adlhk2pnc7i0h0rznvcss4vk3v74qg0k8lc"))))
1665 (build-system ruby-build-system)
1666 (arguments '(#:tests? #f)) ; dependency cycle with sdoc
1667 (synopsis "JSON library for Ruby")
1668 (description "This Ruby library provides a JSON implementation written as
1669 a native C extension.")
1670 (home-page "http://json-jruby.rubyforge.org/")
1671 (license (list license:ruby license:gpl2)))) ; GPL2 only
1672
1673 (define-public ruby-listen
1674 (package
1675 (name "ruby-listen")
1676 (version "3.0.3")
1677 (source
1678 (origin
1679 (method url-fetch)
1680 (uri (rubygems-uri "listen" version))
1681 (sha256
1682 (base32
1683 "10lhshjklxlrkw7999j0xl6sdxd4x32kiy8rp88jwr68kis5vq2b"))))
1684 (build-system ruby-build-system)
1685 (arguments '(#:tests? #f)) ; no tests
1686 (propagated-inputs
1687 ;; FIXME: omitting "ruby-rb-fsevent" which is only for MacOS.
1688 `(("ruby-rb-inotify" ,ruby-rb-inotify)))
1689 (synopsis "Listen to file modifications")
1690 (description "The Listen gem listens to file modifications and notifies
1691 you about the changes.")
1692 (home-page "https://github.com/guard/listen")
1693 (license license:expat)))
1694
1695 (define-public ruby-activesupport
1696 (package
1697 (name "ruby-activesupport")
1698 (version "4.2.4")
1699 (source
1700 (origin
1701 (method url-fetch)
1702 (uri (rubygems-uri "activesupport" version))
1703 (sha256
1704 (base32
1705 "19n38rj6r1gyxgka18qvcxyla0fwan8a5p3ghq0pp8aj93sbmr6f"))))
1706 (build-system ruby-build-system)
1707 (arguments
1708 '(#:tests? #f)) ; no tests
1709 (propagated-inputs
1710 `(("ruby-i18n" ,ruby-i18n)
1711 ("ruby-json" ,ruby-json)
1712 ("ruby-minitest" ,ruby-minitest)
1713 ("ruby-thread-safe" ,ruby-thread-safe)
1714 ("ruby-tzinfo" ,ruby-tzinfo)))
1715 (synopsis "Ruby on Rails utility library")
1716 (description "ActiveSupport is a toolkit of support libraries and Ruby
1717 core extensions extracted from the Rails framework. It includes support for
1718 multibyte strings, internationalization, time zones, and testing.")
1719 (home-page "http://www.rubyonrails.org")
1720 (license license:expat)))
1721
1722 (define-public ruby-ox
1723 (package
1724 (name "ruby-ox")
1725 (version "2.2.1")
1726 (source
1727 (origin
1728 (method url-fetch)
1729 (uri (rubygems-uri "ox" version))
1730 (sha256
1731 (base32
1732 "00i11xd4ayh7349rhgskajfxn0qzkb74ab01217zix9qcapssxax"))))
1733 (build-system ruby-build-system)
1734 (arguments
1735 '(#:tests? #f)) ; no tests
1736 (synopsis "Optimized XML library for Ruby")
1737 (description
1738 "Optimized XML (Ox) is a fast XML parser and object serializer for Ruby
1739 written as a native C extension. It was designed to be an alternative to
1740 Nokogiri and other Ruby XML parsers for generic XML parsing and as an
1741 alternative to Marshal for Object serialization. ")
1742 (home-page "http://www.ohler.com/ox")
1743 (license license:expat)))
1744
1745 (define-public ruby-pg
1746 (package
1747 (name "ruby-pg")
1748 (version "0.18.2")
1749 (source
1750 (origin
1751 (method url-fetch)
1752 (uri (rubygems-uri "pg" version))
1753 (sha256
1754 (base32
1755 "1axxbf6ij1iqi3i1r3asvjc80b0py5bz0m2wy5kdi5xkrpr82kpf"))))
1756 (build-system ruby-build-system)
1757 (arguments
1758 '(#:test-target "spec"))
1759 (native-inputs
1760 `(("ruby-rake-compiler" ,ruby-rake-compiler)
1761 ("ruby-hoe" ,ruby-hoe)
1762 ("ruby-rspec" ,ruby-rspec)))
1763 (inputs
1764 `(("postgresql" ,postgresql)))
1765 (synopsis "Ruby interface to PostgreSQL")
1766 (description "Pg is the Ruby interface to the PostgreSQL RDBMS. It works
1767 with PostgreSQL 8.4 and later.")
1768 (home-page "https://bitbucket.org/ged/ruby-pg")
1769 (license license:ruby)))
1770
1771 (define-public ruby-byebug
1772 (package
1773 (name "ruby-byebug")
1774 (version "6.0.2")
1775 (source
1776 (origin
1777 (method url-fetch)
1778 (uri (rubygems-uri "byebug" version))
1779 (sha256
1780 (base32
1781 "0537h9qbhr6csahmzyn4lk1g5b2lcligbzd21gfy93nx9lbfdnzc"))))
1782 (build-system ruby-build-system)
1783 (arguments
1784 '(#:tests? #f)) ; no tests
1785 (synopsis "Debugger for Ruby 2")
1786 (description "Byebug is a Ruby 2 debugger implemented using the Ruby 2
1787 TracePoint C API for execution control and the Debug Inspector C API for call
1788 stack navigation. The core component provides support that front-ends can
1789 build on. It provides breakpoint handling and bindings for stack frames among
1790 other things and it comes with a command line interface.")
1791 (home-page "http://github.com/deivid-rodriguez/byebug")
1792 (license license:bsd-2)))
1793
1794 (define-public ruby-rack
1795 (package
1796 (name "ruby-rack")
1797 (version "1.6.4")
1798 (source
1799 (origin
1800 (method url-fetch)
1801 (uri (rubygems-uri "rack" version))
1802 (sha256
1803 (base32
1804 "09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5"))))
1805 (build-system ruby-build-system)
1806 (arguments
1807 '(#:phases
1808 (modify-phases %standard-phases
1809 (add-before 'check 'fix-tests
1810 (lambda _
1811 ;; A few of the tests use the length of a file on disk for
1812 ;; Content-Length and Content-Range headers. However, this file
1813 ;; has a shebang in it which an earlier phase patches, growing
1814 ;; the file size from 193 to 239 bytes when the store prefix is
1815 ;; "/gnu/store".
1816 (let ((size-diff (- (string-length (which "ruby"))
1817 (string-length "/usr/bin/env ruby"))))
1818 (substitute* '("test/spec_file.rb")
1819 (("193")
1820 (number->string (+ 193 size-diff)))
1821 (("bytes(.)22-33" all delimiter)
1822 (string-append "bytes"
1823 delimiter
1824 (number->string (+ 22 size-diff))
1825 "-"
1826 (number->string (+ 33 size-diff))))))
1827 #t)))))
1828 (native-inputs
1829 `(("ruby-bacon" ,ruby-bacon)))
1830 (synopsis "Unified web application interface for Ruby")
1831 (description "Rack provides a minimal, modular and adaptable interface for
1832 developing web applications in Ruby. By wrapping HTTP requests and responses,
1833 it unifies the API for web servers, web frameworks, and software in between
1834 into a single method call.")
1835 (home-page "http://rack.github.io/")
1836 (license license:expat)))
1837
1838 (define-public ruby-docile
1839 (package
1840 (name "ruby-docile")
1841 (version "1.1.5")
1842 (source
1843 (origin
1844 (method url-fetch)
1845 (uri (rubygems-uri "docile" version))
1846 (sha256
1847 (base32
1848 "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx"))))
1849 (build-system ruby-build-system)
1850 (arguments
1851 '(#:tests? #f)) ; needs github-markup, among others
1852 (synopsis "Ruby EDSL helper library")
1853 (description "Docile is a Ruby library that provides an interface for
1854 creating embedded domain specific languages (EDSLs) that manipulate existing
1855 Ruby classes.")
1856 (home-page "https://ms-ati.github.io/docile/")
1857 (license license:expat)))
1858
1859 (define-public ruby-gherkin3
1860 (package
1861 (name "ruby-gherkin3")
1862 (version "3.1.1")
1863 (source
1864 (origin
1865 (method url-fetch)
1866 (uri (rubygems-uri "gherkin3" version))
1867 (sha256
1868 (base32
1869 "0xsyxhqa1gwcxzvsdy4didaiq5vam8ma3fbwbw2w60via4k6r1z9"))))
1870 (build-system ruby-build-system)
1871 (native-inputs
1872 `(("bundler" ,bundler)))
1873 (arguments
1874 '(#:tests? #f)) ; needs simplecov, among others
1875 (synopsis "Gherkin parser for Ruby")
1876 (description "Gherkin 3 is a parser and compiler for the Gherkin language.
1877 It is intended to replace Gherkin 2 and be used by all Cucumber
1878 implementations to parse '.feature' files.")
1879 (home-page "https://github.com/cucumber/gherkin3")
1880 (license license:expat)))
1881
1882 (define-public ruby-cucumber-core
1883 (package
1884 (name "ruby-cucumber-core")
1885 (version "1.3.0")
1886 (source
1887 (origin
1888 (method url-fetch)
1889 (uri (rubygems-uri "cucumber-core" version))
1890 (sha256
1891 (base32
1892 "12mrzf0s96izpq0k10lahlkgwc4fjs0zfs344rh8r8h3w3jyppr8"))))
1893 (build-system ruby-build-system)
1894 (propagated-inputs
1895 `(("ruby-gherkin3" ,ruby-gherkin3)))
1896 (native-inputs
1897 `(("bundler" ,bundler)))
1898 (arguments
1899 '(#:tests? #f)) ; needs simplecov, among others
1900 (synopsis "Core library for the Cucumber BDD app")
1901 (description "Cucumber is a tool for running automated tests
1902 written in plain language. Because they're written in plain language,
1903 they can be read by anyone on your team. Because they can be read by
1904 anyone, you can use them to help improve communication, collaboration
1905 and trust on your team.")
1906 (home-page "https://cucumber.io/")
1907 (license license:expat)))
1908
1909 (define-public ruby-bio-logger
1910 (package
1911 (name "ruby-bio-logger")
1912 (version "1.0.1")
1913 (source
1914 (origin
1915 (method url-fetch)
1916 (uri (rubygems-uri "bio-logger" version))
1917 (sha256
1918 (base32
1919 "02pylfy8nkdqzyzplvnhn1crzmfkj1zmi3qjhrj2f2imlxvycd28"))))
1920 (build-system ruby-build-system)
1921 (arguments
1922 `(#:tests? #f)) ; rake errors, missing shoulda
1923 (propagated-inputs
1924 `(("ruby-log4r" ,ruby-log4r)))
1925 (synopsis "Log4r wrapper for Ruby")
1926 (description "Bio-logger is a wrapper around Log4r adding extra logging
1927 features such as filtering and fine grained logging.")
1928 (home-page "https://github.com/pjotrp/bioruby-logger-plugin")
1929 (license license:expat)))
1930
1931 (define-public ruby-yard
1932 (package
1933 (name "ruby-yard")
1934 (version "0.8.7.6")
1935 (source
1936 (origin
1937 (method url-fetch)
1938 (uri (rubygems-uri "yard" version))
1939 (sha256
1940 (base32
1941 "1dj6ibc0qqvmb5a5r5kk0vhr04mnrz9b26gnfrs5p8jgp620i89x"))))
1942 (build-system ruby-build-system)
1943 (arguments
1944 `(#:test-target "specs"
1945 #:phases
1946 (modify-phases %standard-phases
1947 (add-before 'check 'set-HOME
1948 ;; $HOME needs to be set to somewhere writeable for tests to run
1949 (lambda _ (setenv "HOME" "/tmp") #t)))))
1950 (native-inputs
1951 `(("ruby-rspec" ,ruby-rspec-2)
1952 ("ruby-rack" ,ruby-rack)))
1953 (synopsis "Documentation generation tool for Ruby")
1954 (description
1955 "YARD is a documentation generation tool for the Ruby programming
1956 language. It enables the user to generate consistent, usable documentation
1957 that can be exported to a number of formats very easily, and also supports
1958 extending for custom Ruby constructs such as custom class level definitions.")
1959 (home-page "http://yardoc.org")
1960 (license license:expat)))
1961
1962 (define-public ruby-eventmachine
1963 (package
1964 (name "ruby-eventmachine")
1965 (version "1.0.8")
1966 (source
1967 (origin
1968 (method url-fetch)
1969 (uri (rubygems-uri "eventmachine" version))
1970 (sha256
1971 (base32
1972 "1frvpk3p73xc64qkn0ymll3flvn4xcycq5yx8a43zd3gyzc1ifjp"))))
1973 (build-system ruby-build-system)
1974 (arguments
1975 '(#:tests? #f)) ; test suite tries to connect to google.com
1976 (native-inputs
1977 `(("ruby-rake-compiler" ,ruby-rake-compiler)))
1978 (synopsis "Single-threaded network event framework for Ruby")
1979 (description
1980 "EventMachine implements a single-threaded engine for arbitrary network
1981 communications. EventMachine wraps all interactions with sockets, allowing
1982 programs to concentrate on the implementation of network protocols. It can be
1983 used to create both network servers and clients.")
1984 (home-page "http://rubyeventmachine.com")
1985 (license (list license:ruby license:gpl3)))) ; GPLv3 only AFAICT