download: Keep a single copy of the mirror file.
[jackhill/guix/guix.git] / gnu / packages / ruby.scm
CommitLineData
6ef8c59a
PP
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014 Pjotr Prins <pjotr.guix@thebird.nl>
3;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
f586c877 4;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
ecde6191 5;;; Copyright © 2014 David Thompson <davet@gnu.org>
6ef8c59a
PP
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22(define-module (gnu packages ruby)
23 #:use-module ((guix licenses) #:prefix license:)
24 #:use-module (gnu packages)
25 #:use-module (gnu packages compression)
26 #:use-module (gnu packages readline)
6ef8c59a
PP
27 #:use-module (gnu packages autotools)
28 #:use-module (gnu packages libffi)
29 #:use-module (gnu packages gdbm)
cc2b77df 30 #:use-module (gnu packages tls)
66e20863 31 #:use-module (gnu packages version-control)
6ef8c59a
PP
32 #:use-module (guix packages)
33 #:use-module (guix download)
bda0c139 34 #:use-module (guix git-download)
6ef8c59a 35 #:use-module (guix utils)
acf735f2
DT
36 #:use-module (guix build-system gnu)
37 #:use-module (guix build-system ruby))
6ef8c59a
PP
38
39(define-public ruby
40 (package
41 (name "ruby")
686b1bab 42 (version "2.2.3")
6ef8c59a
PP
43 (source
44 (origin
45 (method url-fetch)
6becfdff
MW
46 (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
47 (version-major+minor version)
12d39eb5 48 "/ruby-" version ".tar.xz"))
6ef8c59a
PP
49 (sha256
50 (base32
686b1bab 51 "19x8gs67klgc3ag815jpin83jn2nv1akgjcgayd6v3h1xplr1v66"))))
6ef8c59a
PP
52 (build-system gnu-build-system)
53 (arguments
54 `(#:test-target "test"
55 #:parallel-tests? #f
56 #:phases
12d39eb5
DT
57 (alist-cons-before
58 'configure 'replace-bin-sh
6ef8c59a 59 (lambda _
12d39eb5
DT
60 (substitute* '("Makefile.in"
61 "ext/pty/pty.c"
62 "io.c"
63 "lib/mkmf.rb"
64 "process.c"
65 "test/rubygems/test_gem_ext_configure_builder.rb"
66 "test/rdoc/test_rdoc_parser.rb"
67 "test/ruby/test_rubyoptions.rb"
68 "test/ruby/test_process.rb"
69 "test/ruby/test_system.rb"
70 "tool/rbinstall.rb")
71 (("/bin/sh") (which "sh"))))
72 %standard-phases)))
6ef8c59a
PP
73 (inputs
74 `(("readline" ,readline)
6ef8c59a
PP
75 ("openssl" ,openssl)
76 ("libffi" ,libffi)
77 ("gdbm" ,gdbm)
78 ("zlib" ,zlib)))
79 (native-search-paths
80 (list (search-path-specification
81 (variable "GEM_PATH")
af070955
LC
82 (files (list (string-append "lib/ruby/gems/"
83 (version-major+minor version)
84 ".0"))))))
6becfdff 85 (synopsis "Programming language interpreter")
6ef8c59a
PP
86 (description "Ruby is a dynamic object-oriented programming language with
87a focus on simplicity and productivity.")
88 (home-page "https://ruby-lang.org")
89 (license license:ruby)))
90
9942e803
PP
91(define-public ruby-2.1
92 (package (inherit ruby)
93 (version "2.1.6")
94 (source
95 (origin
96 (method url-fetch)
97 (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
98 (version-major+minor version)
99 "/ruby-" version ".tar.bz2"))
100 (sha256
101 (base32
102 "1sbcmbhadcxk0509svwxbm2vvgmpf3xjxr1397bgp9x46nz36lkv"))))
103 (arguments
104 `(#:test-target "test"
105 #:parallel-tests? #f
106 #:phases
107 (alist-cons-before
108 'configure 'replace-bin-sh
109 (lambda _
110 (substitute* '("Makefile.in"
111 "ext/pty/pty.c"
112 "io.c"
113 "lib/mkmf.rb"
114 "process.c")
115 (("/bin/sh") (which "sh"))))
116 %standard-phases)))
117 (native-search-paths
118 (list (search-path-specification
119 (variable "GEM_PATH")
120 (files (list (string-append "lib/ruby/gems/"
121 (version-major+minor version)
122 ".0"))))))))
123
218ee89b
PP
124(define-public ruby-1.8
125 (package (inherit ruby)
218ee89b
PP
126 (version "1.8.7-p374")
127 (source
128 (origin
129 (method url-fetch)
6becfdff
MW
130 (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
131 (version-major+minor version)
132 "/ruby-" version ".tar.bz2"))
218ee89b
PP
133 (sha256
134 (base32
135 "1qq7khilwkayrhwmzlxk83scrmiqfi7lgsn4c63znyvz2c1lgqxl"))))
136 (native-search-paths '())
137 (arguments
138 `(#:test-target "test"
139 #:parallel-tests? #f
140 #:phases
141 (alist-cons-before
142 'configure 'replace-bin-sh
143 (lambda _
144 (substitute* '("Makefile.in"
145 "ext/pty/pty.c"
146 "io.c"
147 "lib/mkmf.rb"
148 "process.c")
149 (("/bin/sh") (which "sh"))))
150 %standard-phases)))))
151
bda0c139
DT
152(define-public ruby-hoe
153 (package
154 (name "ruby-hoe")
155 (version "3.13.1")
156 (source (origin
e83c6d00
DT
157 (method url-fetch)
158 (uri (rubygems-uri "hoe" version))
bda0c139
DT
159 (sha256
160 (base32
e83c6d00 161 "1mac13krdrasn9819dd65xj27kklfy0xdbj3p6s2ij4vlcb46h8q"))) )
bda0c139 162 (build-system ruby-build-system)
bda0c139
DT
163 (synopsis "Ruby project management helper")
164 (description
165 "Hoe is a rake/rubygems helper for project Rakefiles. It helps manage,
166maintain, and release projects and includes a dynamic plug-in system allowing
167for easy extensibility. Hoe ships with plug-ins for all the usual project
168tasks including rdoc generation, testing, packaging, deployment, and
169announcement.")
170 (home-page "http://www.zenspider.com/projects/hoe.html")
171 (license license:expat)))
172
022170dc
PP
173(define-public ruby-rake-compiler
174 (package
175 (name "ruby-rake-compiler")
176 (version "0.9.5")
177 (source (origin
178 (method url-fetch)
e83c6d00 179 (uri (rubygems-uri "rake-compiler" version))
022170dc
PP
180 (sha256
181 (base32
e83c6d00 182 "1k8im2vzj849xdgjk6wafspkiwwapqwm738majchb4dnhnsk64cx"))))
022170dc
PP
183 (build-system ruby-build-system)
184 (arguments
e83c6d00 185 '(#:tests? #f)) ; needs cucumber
022170dc 186 (synopsis "Building and packaging helper for Ruby native extensions")
e881752c 187 (description "Rake-compiler provides a framework for building and
022170dc
PP
188packaging native C and Java extensions in Ruby.")
189 (home-page "https://github.com/rake-compiler/rake-compiler")
190 (license license:expat)))
191
acf735f2
DT
192(define-public ruby-i18n
193 (package
194 (name "ruby-i18n")
0bfdfd37 195 (version "0.7.0")
acf735f2
DT
196 (source (origin
197 (method url-fetch)
e83c6d00 198 (uri (rubygems-uri "i18n" version))
acf735f2
DT
199 (sha256
200 (base32
0bfdfd37 201 "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758"))))
acf735f2
DT
202 (build-system ruby-build-system)
203 (arguments
0bfdfd37 204 '(#:tests? #f)) ; no tests
acf735f2
DT
205 (synopsis "Internationalization library for Ruby")
206 (description "Ruby i18n is an internationalization and localization
207solution for Ruby programs. It features translation and localization,
208interpolation of values to translations, pluralization, customizable
209transliteration to ASCII, flexible defaults, bulk lookup, lambdas as
210translation data, custom key/scope separator, custom exception handlers, and
211an extensible architecture with a swappable backend.")
212 (home-page "http://github.com/svenfuchs/i18n")
213 (license license:expat)))
eb0c2dd6
DT
214
215;; RSpec is the dominant testing library for Ruby projects. Even RSpec's
216;; dependencies use RSpec for their test suites! To avoid these circular
217;; dependencies, we disable tests for all of the RSpec-related packages.
218(define ruby-rspec-support
219 (package
220 (name "ruby-rspec-support")
221 (version "3.2.2")
222 (source (origin
223 (method url-fetch)
e83c6d00 224 (uri (rubygems-uri "rspec-support" version))
eb0c2dd6
DT
225 (sha256
226 (base32
e83c6d00 227 "194zry5195ls2hni7r9824vqb5d3qfg4jb15fgj8glfy0rvw3zxl"))))
eb0c2dd6
DT
228 (build-system ruby-build-system)
229 (arguments
230 '(#:tests? #f)) ; avoid dependency cycles
231 (synopsis "RSpec support library")
232 (description "Support utilities for RSpec gems.")
233 (home-page "https://github.com/rspec/rspec-support")
234 (license license:expat)))
235
236(define-public ruby-rspec-core
237 (package
238 (name "ruby-rspec-core")
239 (version "3.2.3")
240 (source (origin
241 (method url-fetch)
e83c6d00 242 (uri (rubygems-uri "rspec-core" version))
eb0c2dd6
DT
243 (sha256
244 (base32
e83c6d00 245 "0k2471iw30gc2cvv67damrx666pmsvx8l0ahk3hm20dhfnmcmpvv"))))
eb0c2dd6
DT
246 (build-system ruby-build-system)
247 (arguments
248 '(#:tests? #f)) ; avoid dependency cycles
249 (propagated-inputs
250 `(("ruby-rspec-support" ,ruby-rspec-support)))
251 (synopsis "RSpec core library")
252 (description "Rspec-core provides the RSpec test runner and example
253groups.")
254 (home-page "https://github.com/rspec/rspec-core")
255 (license license:expat)))
e6962009
DT
256
257(define ruby-diff-lcs-for-rspec
258 (package
259 (name "ruby-diff-lcs")
260 (version "1.2.5")
261 (source (origin
262 (method url-fetch)
e83c6d00 263 (uri (rubygems-uri "diff-lcs" version))
e6962009
DT
264 (sha256
265 (base32
e83c6d00 266 "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1"))))
e6962009
DT
267 (build-system ruby-build-system)
268 (arguments
269 '(#:tests? #f)) ; avoid dependency cycles
270 (synopsis "Compute the difference between two Enumerable sequences")
271 (description "Diff::LCS computes the difference between two Enumerable
272sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm.
273It includes utilities to create a simple HTML diff output format and a
274standard diff-like tool.")
275 (home-page "https://github.com/halostatue/diff-lcs")
276 (license license:expat)))
277
278(define-public ruby-rspec-expectations
279 (package
280 (name "ruby-rspec-expectations")
281 (version "3.2.1")
282 (source (origin
283 (method url-fetch)
e83c6d00 284 (uri (rubygems-uri "rspec-expectations" version))
e6962009
DT
285 (sha256
286 (base32
e83c6d00 287 "01kmchabgpdcaqdsqg8r0g5gy385xhp1k1jsds3w264ypin17n14"))))
e6962009
DT
288 (build-system ruby-build-system)
289 (arguments
290 '(#:tests? #f)) ; avoid dependency cycles
291 (propagated-inputs
292 `(("ruby-rspec-support" ,ruby-rspec-support)
293 ("ruby-diff-lcs" ,ruby-diff-lcs-for-rspec)))
e881752c 294 (synopsis "RSpec expectations library")
e6962009
DT
295 (description "Rspec-expectations provides a simple API to express expected
296outcomes of a code example.")
297 (home-page "https://github.com/rspec/rspec-expectations")
298 (license license:expat)))
4f2a0cac
DT
299
300(define-public ruby-rspec-mocks
301 (package
302 (name "ruby-rspec-mocks")
303 (version "3.2.1")
304 (source (origin
305 (method url-fetch)
e83c6d00 306 (uri (rubygems-uri "rspec-mocks" version))
4f2a0cac
DT
307 (sha256
308 (base32
e83c6d00 309 "09yig1lwgxl8fsns71z3xhv7wkg7zvagydh37pvaqpw92dz55jv2"))))
4f2a0cac
DT
310 (build-system ruby-build-system)
311 (arguments
312 '(#:tests? #f)) ; avoid dependency cycles
313 (propagated-inputs
314 `(("ruby-rspec-support" ,ruby-rspec-support)
315 ("ruby-diff-lcs" ,ruby-diff-lcs-for-rspec)))
316 (synopsis "RSpec stubbing and mocking library")
317 (description "Rspec-mocks provides RSpec's \"test double\" framework, with
318support for stubbing and mocking.")
319 (home-page "https://github.com/rspec/rspec-mocks")
320 (license license:expat)))
d4fde1f2
DT
321
322(define-public ruby-rspec
323 (package
324 (name "ruby-rspec")
325 (version "3.2.0")
326 (source (origin
327 (method url-fetch)
e83c6d00 328 (uri (rubygems-uri "rspec" version))
d4fde1f2
DT
329 (sha256
330 (base32
e83c6d00 331 "0lkz01j4yxcwb3g5w6r1l9khnyw3sxib4rrh4npd2pxh390fcc4f"))))
d4fde1f2
DT
332 (build-system ruby-build-system)
333 (arguments
334 '(#:tests? #f)) ; avoid dependency cycles
335 (propagated-inputs
336 `(("ruby-rspec-core" ,ruby-rspec-core)
337 ("ruby-rspec-mocks" ,ruby-rspec-mocks)
338 ("ruby-rspec-expectations" ,ruby-rspec-expectations)))
339 (synopsis "Behavior-driven development framework for Ruby")
340 (description "RSpec is a behavior-driven development (BDD) framework for
341Ruby. This meta-package includes the RSpec test runner, along with the
342expectations and mocks frameworks.")
343 (home-page "http://rspec.info/")
344 (license license:expat)))
2cbc105b
DT
345
346;; Bundler is yet another source of circular dependencies, so we must disable
347;; its test suite as well.
348(define-public bundler
349 (package
350 (name "bundler")
351 (version "1.9.9")
352 (source (origin
353 (method url-fetch)
e83c6d00 354 (uri (rubygems-uri "bundler" version))
2cbc105b
DT
355 (sha256
356 (base32
e83c6d00 357 "12qk1569pswa9mmid6lsqy2napn9fmkbmv0k7xkl52nyfh8rsy4d"))))
2cbc105b
DT
358 (build-system ruby-build-system)
359 (arguments
360 '(#:tests? #f)) ; avoid dependency cycles
361 (synopsis "Ruby gem bundler")
362 (description "Bundler automatically downloads and installs a list of gems
363specified in a \"Gemfile\", as well as their dependencies.")
364 (home-page "http://bundler.io/")
365 (license license:expat)))
98b87b82
DT
366
367(define-public ruby-useragent
368 (package
369 (name "ruby-useragent")
370 (version "0.13.3")
371 (source (origin
372 (method url-fetch)
e83c6d00 373 (uri (rubygems-uri "useragent" version))
98b87b82
DT
374 (sha256
375 (base32
e83c6d00 376 "0kz7yyz7528bv4a2kfymvkcm8whqcddhmgaw1ksw1d90n30hhkpc"))))
98b87b82
DT
377 (build-system ruby-build-system)
378 (arguments
e83c6d00 379 '(#:tests? #f)) ; no test suite
98b87b82
DT
380 (synopsis "HTTP user agent parser for Ruby")
381 (description "UserAgent is a Ruby library that parses and compares HTTP
382User Agents.")
383 (home-page "https://github.com/gshutler/useragent")
384 (license license:expat)))
96086cc5
DT
385
386(define-public ruby-bacon
387 (package
388 (name "ruby-bacon")
e83c6d00 389 (version "1.2.0")
96086cc5
DT
390 (source (origin
391 (method url-fetch)
e83c6d00 392 (uri (rubygems-uri "bacon" version))
96086cc5
DT
393 (sha256
394 (base32
e83c6d00 395 "1f06gdj77bmwzc1k5iragl1595hbn67yc7sqvs56ca8plrr2vmai"))))
96086cc5 396 (build-system ruby-build-system)
96086cc5
DT
397 (synopsis "Small RSpec clone")
398 (description "Bacon is a small RSpec clone providing all essential
399features.")
400 (home-page "https://github.com/chneukirchen/bacon")
401 (license license:expat)))
de59d316
DT
402
403(define-public ruby-arel
404 (package
405 (name "ruby-arel")
406 (version "6.0.0")
407 (source (origin
408 (method url-fetch)
e83c6d00 409 (uri (rubygems-uri "arel" version))
de59d316
DT
410 (sha256
411 (base32
e83c6d00 412 "18wnfnzr2i5p3fygsddjbi1cimws6823nbk8drxidmnj8jz7h0ar"))))
de59d316 413 (build-system ruby-build-system)
e83c6d00
DT
414 (arguments
415 '(#:tests? #f)) ; no test suite
de59d316
DT
416 (synopsis "SQL AST manager for Ruby")
417 (description "Arel is a SQL AST manager for Ruby. It simplifies the
418generation of complex SQL queries and adapts to various relational database
419implementations.")
420 (home-page "https://github.com/rails/arel")
421 (license license:expat)))
e259bdf0
DT
422
423(define-public ruby-connection-pool
424 (package
425 (name "ruby-connection-pool")
426 (version "2.2.0")
427 (source (origin
428 (method url-fetch)
e83c6d00 429 (uri (rubygems-uri "connection_pool" version))
e259bdf0
DT
430 (sha256
431 (base32
e83c6d00 432 "1b2bb3k39ni5mzcnqlv9y4yjkbin20s7dkwzp0jw2jf1rmzcgrmy"))))
e259bdf0
DT
433 (build-system ruby-build-system)
434 (native-inputs
435 `(("bundler" ,bundler)))
436 (synopsis "Generic connection pool for Ruby")
437 (description "Connection_pool provides a generic connection pooling
438interface for Ruby programs.")
439 (home-page "https://github.com/mperham/connection_pool")
440 (license license:expat)))
4c0aeb44
DT
441
442(define-public ruby-net-http-persistent
443 (package
444 (name "ruby-net-http-persistent")
445 (version "2.9.4")
446 (source (origin
447 (method url-fetch)
e83c6d00 448 (uri (rubygems-uri "net-http-persistent" version))
4c0aeb44
DT
449 (sha256
450 (base32
e83c6d00 451 "1y9fhaax0d9kkslyiqi1zys6cvpaqx9a0y0cywp24rpygwh4s9r4"))))
4c0aeb44 452 (build-system ruby-build-system)
4c0aeb44
DT
453 (native-inputs
454 `(("ruby-connection-pool" ,ruby-connection-pool)
455 ("ruby-hoe" ,ruby-hoe)))
456 (synopsis "Persistent HTTP connection manager")
457 (description "Net::HTTP::Persistent manages persistent HTTP connections
458using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
459 (home-page "https://github.com/drbrain/net-http-persistent")
460 (license license:expat)))
afbbdf77 461
2206e948
DT
462(define-public ruby-minitest
463 (package
464 (name "ruby-minitest")
465 (version "5.7.0")
466 (source (origin
e83c6d00
DT
467 (method url-fetch)
468 (uri (rubygems-uri "minitest" version))
2206e948
DT
469 (sha256
470 (base32
e83c6d00 471 "0rxqfakp629mp3vwda7zpgb57lcns5znkskikbfd0kriwv8i1vq8"))))
2206e948 472 (build-system ruby-build-system)
2206e948
DT
473 (native-inputs
474 `(("ruby-hoe" ,ruby-hoe)))
475 (synopsis "Small test suite library for Ruby")
476 (description "Minitest provides a complete suite of Ruby testing
477facilities supporting TDD, BDD, mocking, and benchmarking.")
478 (home-page "https://github.com/seattlerb/minitest")
479 (license license:expat)))
480
35130835
DT
481(define-public ruby-minitest-sprint
482 (package
483 (name "ruby-minitest-sprint")
484 (version "1.1.0")
485 (source (origin
e83c6d00
DT
486 (method url-fetch)
487 (uri (rubygems-uri "minitest-sprint" version))
35130835
DT
488 (sha256
489 (base32
e83c6d00 490 "179d6pj56l9xzm46fqsqj10mzjkr1f9fv4cxa8wvchs97hqz33w1"))))
35130835 491 (build-system ruby-build-system)
35130835
DT
492 (native-inputs
493 `(("ruby-hoe" ,ruby-hoe)
494 ("ruby-minitest" ,ruby-minitest)))
495 (synopsis "Fast test suite runner for minitest")
496 (description "Minitest-sprint is a test runner for minitest that makes it
497easier to re-run individual failing tests.")
498 (home-page "https://github.com/seattlerb/minitest-sprint")
499 (license license:expat)))
500
0808e361
DT
501(define-public ruby-minitest-bacon
502 (package
503 (name "ruby-minitest-bacon")
504 (version "1.0.2")
505 (source (origin
e83c6d00
DT
506 (method url-fetch)
507 (uri (rubygems-uri "minitest-bacon" version))
0808e361
DT
508 (sha256
509 (base32
e83c6d00 510 "0cm7r68422743i3b6fm4rrm0r6cnnjmglq5gcmmgl1f0rk5hnf6r"))))
0808e361 511 (build-system ruby-build-system)
0808e361
DT
512 (native-inputs
513 `(("ruby-hoe" ,ruby-hoe)))
514 (inputs
515 `(("ruby-minitest" ,ruby-minitest)))
516 (synopsis "Bacon compatibility library for minitest")
517 (description "Minitest-bacon extends minitest with bacon-like
518functionality, making it easier to migrate test suites from bacon to minitest.")
519 (home-page "https://github.com/seattlerb/minitest-bacon")
520 (license license:expat)))
521
afbbdf77
DT
522(define-public ruby-daemons
523 (package
524 (name "ruby-daemons")
525 (version "1.2.2")
526 (source (origin
527 (method url-fetch)
e83c6d00 528 (uri (rubygems-uri "daemons" version))
afbbdf77
DT
529 (sha256
530 (base32
e83c6d00 531 "121c7vkimg3baxga69xvdkwxiq8wkmxqvdbyqi5i82vhih5d3cn3"))))
afbbdf77
DT
532 (build-system ruby-build-system)
533 (arguments
534 `(#:tests? #f)) ; no test suite
535 (synopsis "Daemonize Ruby programs")
536 (description "Daemons provides a way to wrap existing Ruby scripts to be
537run as a daemon and to be controlled by simple start/stop/restart commands.")
538 (home-page "https://github.com/thuehlinger/daemons")
539 (license license:expat)))
66e20863
DT
540
541(define-public ruby-git
542 (package
543 (name "ruby-git")
544 (version "1.2.9.1")
545 (source (origin
546 (method url-fetch)
e83c6d00 547 (uri (rubygems-uri "git" version))
66e20863
DT
548 (sha256
549 (base32
e83c6d00 550 "1sqfj8lmhl7c5zamcckkpik4izfph2zkv6krw0i8mzj5pdws5acs"))))
66e20863
DT
551 (build-system ruby-build-system)
552 (arguments
e83c6d00
DT
553 `(#:tests? #f ; no tests
554 #:phases (modify-phases %standard-phases
555 (add-after 'install 'patch-git-binary
556 (lambda* (#:key inputs outputs #:allow-other-keys)
66e20863
DT
557 ;; Make the default git binary an absolute path to the
558 ;; store.
e83c6d00
DT
559 (let ((git (string-append (assoc-ref inputs "git")
560 "/bin/git"))
561 (config (string-append (getenv "GEM_HOME")
562 "/gems/git-" ,version
563 "/lib/git/config.rb")))
564 (substitute* (list config)
66e20863
DT
565 (("'git'")
566 (string-append "'" git "'")))
e83c6d00 567 #t))))))
66e20863
DT
568 (inputs
569 `(("git" ,git)))
570 (synopsis "Ruby wrappers for Git")
571 (description "Ruby/Git is a Ruby library that can be used to create, read
572and manipulate Git repositories by wrapping system calls to the git binary.")
573 (home-page "https://github.com/schacon/ruby-git")
574 (license license:expat)))
71d3e2c2
DT
575
576(define-public ruby-slop
577 (package
578 (name "ruby-slop")
579 (version "4.1.0")
580 (source (origin
581 (method url-fetch)
e83c6d00 582 (uri (rubygems-uri "slop" version))
71d3e2c2
DT
583 (sha256
584 (base32
e83c6d00 585 "0dj0ps6v1mqd02k84mgwd7hp578n2bzl7c51h3grdhxfl3jkfsj5"))))
71d3e2c2
DT
586 (build-system ruby-build-system)
587 (native-inputs
588 `(("ruby-minitest" ,ruby-minitest)))
589 (synopsis "Ruby command line option parser")
590 (description "Slop provides a Ruby domain specific language for gathering
591options and parsing command line flags.")
592 (home-page "https://github.com/leejarvis/slop")
593 (license license:expat)))
e778a549
DT
594
595(define-public ruby-multipart-post
596 (package
597 (name "ruby-multipart-post")
598 (version "2.0.0")
599 (source (origin
600 (method url-fetch)
e83c6d00 601 (uri (rubygems-uri "multipart-post" version))
e778a549
DT
602 (sha256
603 (base32
e83c6d00 604 "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"))))
e778a549
DT
605 (build-system ruby-build-system)
606 (native-inputs
607 `(("bundler" ,bundler)))
608 (synopsis "Multipart POST library for Ruby")
609 (description "Multipart-Post Adds multipart POST capability to Ruby's
610net/http library.")
611 (home-page "https://github.com/nicksieger/multipart-post")
612 (license license:expat)))
f8da3af0
DT
613
614(define-public ruby-arel
615 (package
616 (name "ruby-arel")
617 (version "6.0.3")
618 (source (origin
619 (method url-fetch)
620 (uri (rubygems-uri "arel" version))
621 (sha256
622 (base32
623 "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
624 (build-system ruby-build-system)
625 (arguments '(#:tests? #f)) ; no tests
626 (home-page "https://github.com/rails/arel")
627 (synopsis "SQL AST manager for Ruby")
628 (description "Arel is a SQL AST manager for Ruby. It simplifies the
629generation of complex SQL queries and is compatible with various RDBMSes.")
630 (license license:expat)))