projects/guix·blob wip-container · refs

1498 lines · 52.0 KiB

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