projects/guix·blob rust-team · refs

1267 lines · 46.7 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015-2018 Ben Woodcroft <[email protected]>
3;;; Copyright © 2015 David Thompson <[email protected]>
4;;; Copyright © 2015 Pjotr Prins <[email protected]>
5;;; Copyright © 2015, 2019 Ricardo Wurmus <[email protected]>
6;;; Copyright © 2016 Muriithi Frederick Muriuki <[email protected]>
7;;; Copyright © 2017-2020, 2023 Christopher Baines <[email protected]>
8;;; Copyright © 2017, 2021 Efraim Flashner <[email protected]>
9;;; Copyright © 2017 nikita <[email protected]>
10;;; Copyright © 2018 Danny Milosavljevic <[email protected]>
11;;; Copyright © 2018 Julien Lepiller <[email protected]>
12;;; Copyright © 2019 Björn Höfling <[email protected]>
13;;; Copyright © 2019 Brian Leung <[email protected]>
14;;; Copyright © 2019 Collin J. Doering <[email protected]>
15;;; Copyright © 2019 Jelle Licht <[email protected]>
16;;; Copyright © 2019 Mikhail Kirillov <[email protected]>
17;;; Copyright © 2020 Holger Peters <[email protected]>
18;;; Copyright © 2020, 2021, 2022 Marius Bakke <[email protected]>
19;;; Copyright © 2020, 2023 Maxim Cournoyer <[email protected]>
20;;; Copyright © 2020 Nicolas Goaziou <[email protected]>
21;;; Copyright © 2021 EuAndreh <[email protected]>
22;;; Copyright © 2021 Giacomo Leidi <[email protected]>
23;;; Copyright © 2021, 2026 Ludovic Courtès <[email protected]>
24;;; Copyright © 2021 Mathieu Othacehe <[email protected]>
25;;; Copyright © 2022, 2024 Danny Milosavljevic <[email protected]>
26;;; Copyright © 2022 Maxime Devos <[email protected]>
27;;; Copyright © 2022 Philip McGrath <[email protected]>
28;;; Copyright © 2022 Stephen Paul Weber <[email protected]>
29;;; Copyright © 2022 Taiju HIGASHI <[email protected]>
30;;; Copyright © 2022 Tom Fitzhenry <[email protected]>
31;;; Copyright © 2023, 2025, 2026 gemmaro <[email protected]>
32;;; Copyright © 2023 Hartmut Goebel <[email protected]>
33;;; Copyright © 2023 Yovan Naumovski <[email protected]>
34;;; Copyright © 2025 Nicolas Graves <[email protected]>
35;;;
36;;; This file is part of GNU Guix.
37;;;
38;;; GNU Guix is free software; you can redistribute it and/or modify it
39;;; under the terms of the GNU General Public License as published by
40;;; the Free Software Foundation; either version 3 of the License, or (at
41;;; your option) any later version.
42;;;
43;;; GNU Guix is distributed in the hope that it will be useful, but
44;;; WITHOUT ANY WARRANTY; without even the implied warranty of
45;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
46;;; GNU General Public License for more details.
47;;;
48;;; You should have received a copy of the GNU General Public License
49;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
50
51;;; Commentary:
52;;;
53;;; Please: Try to add new module packages in alphabetic order.
54;;;
55;;; Code:
56
57(define-module (gnu packages ruby-check)
58 #:use-module ((guix licenses) #:prefix license:)
59 #:use-module (guix build-system ruby)
60 #:use-module (guix download)
61 #:use-module (guix gexp)
62 #:use-module (guix git-download)
63 #:use-module (guix packages)
64 #:use-module (guix utils)
65 #:use-module (gnu packages)
66 #:use-module (gnu packages rails)
67 #:use-module (gnu packages ruby)
68 #:use-module (gnu packages ruby-xyz))
69
70
71
72;; Bundler is yet another source of circular dependencies, so we must disable
73;; its test suite as well.
74(define-public bundler
75 (package
76 (name "bundler")
77 (version "2.6.9")
78 (source (origin
79 (method url-fetch)
80 (uri (rubygems-uri "bundler" version))
81 (sha256
82 (base32
83 "1sy9alf2pqjpkjwmkfwax242bxjc1c91xk36cwcf2nh5ppzpamm2"))))
84 (build-system ruby-build-system)
85 (arguments
86 '(#:tests? #f)) ; avoid dependency cycles
87 (synopsis "Ruby gem bundler")
88 (description "Bundler automatically downloads and installs a list of gems
89specified in a \"Gemfile\", as well as their dependencies.")
90 (home-page "https://bundler.io/")
91 (license license:expat)))
92
93(define-public ruby-appraisal
94 (package
95 (name "ruby-appraisal")
96 (version "2.5.0")
97 (source
98 (origin
99 (method git-fetch)
100 (uri (git-reference
101 (url "https://github.com/thoughtbot/appraisal")
102 (commit (string-append "v" version))))
103 (file-name (git-file-name name version))
104 (sha256
105 (base32 "19lv42j1a5slixldpfyz2id999aqkmg2kiibd7700ysiv4x70ayw"))))
106 (build-system ruby-build-system)
107 (arguments
108 (list
109 #:test-target "spec"
110 #:phases
111 #~(modify-phases %standard-phases
112 (add-before 'build 'loosen-requirements
113 (lambda _
114 (substitute* "Gemfile"
115 ((".*gem \"thor\",.*")
116 "gem \"thor\", \">= 0.14\""))))
117 (add-before 'check 'delete-broken-tests
118 ;; These tests make various bundler calls that don't respect
119 ;; the build environment
120 (lambda _
121 (for-each delete-file
122 (list
123 "./spec/acceptance/appraisals_file_bundler_dsl_compatibility_spec.rb"
124 "./spec/appraisal/appraisal_file_spec.rb"
125 "./spec/acceptance/bundle_without_spec.rb"
126 "./spec/acceptance/bundle_with_custom_path_spec.rb"
127 "./spec/acceptance/cli/clean_spec.rb"
128 "./spec/acceptance/cli/generate_spec.rb"
129 "./spec/acceptance/cli/help_spec.rb"
130 "./spec/acceptance/cli/install_spec.rb"
131 "./spec/acceptance/cli/list_spec.rb"
132 "./spec/acceptance/cli/run_spec.rb"
133 "./spec/acceptance/cli/update_spec.rb"
134 "./spec/acceptance/cli/version_spec.rb"
135 "./spec/acceptance/cli/with_no_arguments_spec.rb"
136 "./spec/acceptance/gemfile_dsl_compatibility_spec.rb"
137 "./spec/acceptance/gemspec_spec.rb")))))))
138 (native-inputs (list bundler ruby-activesupport ruby-rspec))
139 (propagated-inputs (list ruby-rake ruby-thor))
140 (synopsis "Tests your library against different versions of dependencies")
141 (description
142 "Appraisal integrates with bundler and rake to test your
143library against different versions of dependencies in repeatable scenarios
144called \"appraisals.\" Appraisal is designed to make it easy to check for
145regressions in your library without interfering with day-to-day development
146using Bundler.")
147 (home-page "https://github.com/thoughtbot/appraisal")
148 (license license:expat)))
149
150(define-public ruby-builder
151 (package
152 (name "ruby-builder")
153 (version "3.3.0")
154 (source (origin
155 (method url-fetch)
156 (uri (rubygems-uri "builder" version))
157 (sha256
158 (base32
159 "0pw3r2lyagsxkm71bf44v5b74f7l9r7di22brbyji9fwz791hya9"))))
160 (build-system ruby-build-system)
161 (synopsis "Ruby library to create structured data")
162 (description "Builder provides a number of builder objects that make it
163easy to create structured data. Currently the following builder objects are
164supported: XML Markup and XML Events.")
165 (home-page "https://github.com/rails/builder")
166 (license license:expat)))
167
168(define-public ruby-cucumber-ci-environment
169 (package
170 (name "ruby-cucumber-ci-environment")
171 (version "11.0.0")
172 (source (origin
173 (method url-fetch)
174 (uri (rubygems-uri "cucumber-ci-environment" version))
175 (sha256
176 (base32
177 "1qnif57qqcvaz361jkbg43pnzn80jac0ys7gklymn08b3ng9mxqd"))))
178 (build-system ruby-build-system)
179 (arguments (list #:phases #~(modify-phases %standard-phases
180 (replace 'check
181 (lambda* (#:key tests? #:allow-other-keys)
182 (when tests?
183 (invoke "rspec")))))))
184 (native-inputs (list ruby-rspec))
185 (synopsis "Detect CI Environment from environment variables")
186 (description "This is a Ruby utility library for Cucumber that detects a
187CI environment from environment variables.")
188 (home-page "https://github.com/cucumber/ci-environment")
189 (license license:expat)))
190
191(define-public ruby-cucumber-compatibility-kit
192 (package
193 (name "ruby-cucumber-compatibility-kit")
194 (version "30.0.0")
195 (source (origin
196 (method git-fetch) ;for tests
197 (uri (git-reference
198 (url "https://github.com/cucumber/compatibility-kit")
199 (commit (string-append "v" version))))
200 (file-name (git-file-name name version))
201 (sha256
202 (base32
203 "0ihd3yhqpfpf4l629q2lkjnsm7wf296d3m6lhjwf3nfz3k221nlv"))))
204 (build-system ruby-build-system)
205 (arguments (list #:phases #~(modify-phases %standard-phases
206 (add-after 'unpack 'chdir
207 (lambda _
208 (chdir "ruby")))
209 (add-before 'check 'copy-features
210 (lambda _
211 (invoke "cp" "-r" "../devkit/samples/." "features")))
212 (replace 'check
213 (lambda* (#:key tests? #:allow-other-keys)
214 (when tests?
215 (invoke "rspec")))))))
216 (propagated-inputs (list ruby-cucumber-messages ruby-rake ruby-rspec))
217 (synopsis "Cucumber compatibility verification utility")
218 (description "The Cucumber Compatibility Kit (CCK) aims to validate a
219Cucumber implementation's support for the Cucumber Messages protocol.")
220 (home-page "https://github.com/cucumber/compatibility-kit")
221 (license license:expat)))
222
223;;; Variant package to break a cycle with ruby-cucumber-messages.
224(define-public ruby-cucumber-compatibility-kit-bootstrap
225 (package/inherit ruby-cucumber-compatibility-kit
226 (arguments (list #:tests? #f))
227 (propagated-inputs (modify-inputs (package-propagated-inputs
228 ruby-cucumber-compatibility-kit)
229 (delete "ruby-cucumber-messages")))
230 (properties '((hidden? . #t)))))
231
232(define-public ruby-cucumber-core
233 (package
234 (name "ruby-cucumber-core")
235 (version "16.2.0")
236 (source
237 (origin
238 (method git-fetch)
239 (uri (git-reference
240 (url "https://github.com/cucumber/cucumber-ruby-core")
241 (commit (string-append "v" version))))
242 (file-name (git-file-name name version))
243 (sha256
244 (base32
245 "1z1ynba8kbq721mpmnh4fnsmir9kv2sikr9c78rh5nw4i4d5riab"))))
246 (build-system ruby-build-system)
247 (arguments (list #:test-target "spec"
248 #:phases
249 #~(modify-phases %standard-phases
250 (add-before 'check 'remove-rubocop
251 (lambda _
252 (substitute* "Rakefile"
253 (("require 'rubocop/rake_task'") "")
254 (("RuboCop::RakeTask.new") "")))))))
255 (native-inputs
256 (list ruby-rspec))
257 (propagated-inputs
258 (list ruby-cucumber-gherkin
259 ruby-cucumber-messages
260 ruby-cucumber-tag-expressions))
261 (synopsis "Core library for the Cucumber BDD app")
262 (description "Cucumber is a tool for running automated tests
263written in plain language. Because they're written in plain language,
264they can be read by anyone on your team. Because they can be read by
265anyone, you can use them to help improve communication, collaboration
266and trust on your team.")
267 (home-page "https://cucumber.io/")
268 (license license:expat)))
269
270(define-public ruby-cucumber-expressions
271 (package
272 (name "ruby-cucumber-expressions")
273 (version "19.0.1")
274 (source
275 (origin
276 (method git-fetch)
277 (uri (git-reference
278 (url "https://github.com/cucumber/cucumber-expressions")
279 (commit (string-append "v" version))))
280 (file-name (git-file-name name version))
281 (sha256
282 (base32
283 "05vmz62kajr0nsggnfbw6xjicn3pg00a67wnm1kxlpfsq81hi2s6"))))
284 (build-system ruby-build-system)
285 (arguments
286 (list #:test-target "spec"
287 #:phases #~(modify-phases %standard-phases
288 (add-after 'unpack 'chdir
289 (lambda _
290 (chdir "ruby"))))))
291 (native-inputs (list ruby-rspec ruby-simplecov))
292 (synopsis "Simpler alternative to Regular Expressions")
293 (description "Cucumber Expressions offer similar functionality to Regular
294Expressions, with a syntax that is easier to read and write. Cucumber
295Expressions are extensible with parameter types.")
296 (home-page "https://github.com/cucumber/cucumber-expressions/")
297 (license license:expat)))
298
299(define-public ruby-cucumber-gherkin
300 (package
301 (name "ruby-cucumber-gherkin")
302 (version "39.1.0")
303 (source (origin
304 (method git-fetch)
305 (uri (git-reference
306 (url "https://github.com/cucumber/gherkin")
307 (commit (string-append "v" version))))
308 (file-name (git-file-name name version))
309 (sha256
310 (base32
311 "1jjzavsp30p4iisy7j57x51pi1h4lm271ckhx0h7x2h9pin8fyil"))))
312 (build-system ruby-build-system)
313 (arguments (list #:test-target "spec"
314 #:phases #~(modify-phases %standard-phases
315 (add-after 'unpack 'chdir
316 (lambda _
317 (chdir "ruby"))))))
318 (native-inputs (list ruby-rspec))
319 (propagated-inputs (list ruby-cucumber-messages))
320 (synopsis "Gherkin parser for Ruby")
321 (description "Gherkin is a parser and compiler for the Gherkin language.
322It is intended be used by all Cucumber implementations to parse
323@file{.feature} files.")
324 (home-page "https://github.com/cucumber/gherkin")
325 (license license:expat)))
326
327(define-public ruby-cucumber-html-formatter
328 (package
329 (name "ruby-cucumber-html-formatter")
330 (version "23.1.0")
331 ;; TODO: Building from the repository; this requires Node.js
332 ;; dependencies to compile SCSS and TypeScript assets.
333 (source
334 (origin
335 (method url-fetch)
336 (uri (rubygems-uri "cucumber-html-formatter" version))
337 (sha256
338 (base32
339 "1pwcvpfawpkdqw9fgdvk8i8n2k6glmmbdbh4jr5kjxn8jakv92bp"))))
340 (build-system ruby-build-system)
341 (arguments (list #:tests? #f)) ;no tests in the gem archive
342 (propagated-inputs (list ruby-cucumber-messages))
343 (synopsis "HTML formatter for Cucumber")
344 (description "Cucumber HTML Formatter produces a HTML report for Cucumber
345runs. It is built on top of cucumber-react and works with any Cucumber
346implementation with a protocol buffer formatter that outputs Cucumber
347messages.")
348 (home-page "https://github.com/cucumber/html-formatter")
349 (license license:expat)))
350
351(define-public ruby-cucumber-messages
352 (package
353 (name "ruby-cucumber-messages")
354 (version "32.3.1")
355 (source (origin
356 (method git-fetch) ;for tests
357 (uri (git-reference
358 (url "https://github.com/cucumber/messages")
359 (commit (string-append "v" version))))
360 (file-name (git-file-name name version))
361 (sha256
362 (base32
363 "0s30w4fyqx0mc4qksk78z54myc2iv6qk05kmshqmcfzqy1rg5a5f"))))
364 (build-system ruby-build-system)
365 (arguments
366 (list #:test-target "spec"
367 #:phases
368 #~(modify-phases %standard-phases
369 (add-after 'unpack 'chdir
370 (lambda _
371 (chdir "ruby"))))))
372 (native-inputs
373 (list ruby-rspec))
374 (home-page "https://github.com/cucumber/messages/")
375 (synopsis "Cucumber Messages for Ruby (Protocol Buffers)")
376 (description "Cucumber Messages for Ruby is a library which allows
377serialization and deserialization of the protocol buffer messages used in
378Cucumber.")
379 (license license:expat)))
380
381(define-public ruby-cucumber-tag-expressions
382 (package
383 (name "ruby-cucumber-tag-expressions")
384 (version "8.1.0")
385 (source
386 (origin
387 (method git-fetch)
388 (uri (git-reference
389 (url "https://github.com/cucumber/tag-expressions")
390 (commit (string-append "v" version))))
391 (file-name (git-file-name name version))
392 (sha256
393 (base32
394 "10pky4gfplhnfimi480jbmdv11b6y6kvh472hj7f0naydgbwcq5x"))))
395 (build-system ruby-build-system)
396 (arguments
397 (list #:test-target "spec"
398 #:phases #~(modify-phases %standard-phases
399 (add-after 'unpack 'chdir
400 (lambda _
401 (chdir "ruby"))))))
402 (native-inputs (list ruby-rspec))
403 (synopsis "Cucumber tag expressions for Ruby")
404 (description "Cucumber tag expression parser for Ruby. A tag expression
405is an infix boolean expression used by Cucumber.")
406 (home-page "https://github.com/cucumber/tag-expressions")
407 (license license:expat)))
408
409(define-public ruby-cucumber-wire
410 (package
411 (name "ruby-cucumber-wire")
412 (version "6.2.1")
413 (source
414 (origin
415 (method url-fetch)
416 (uri (rubygems-uri "cucumber-wire" version))
417 (sha256
418 (base32
419 "1pmydrh9lcckj7p0cn67jw7msxdkgr9zir86cs19h3mf2zlcv7b9"))))
420 (build-system ruby-build-system)
421 (arguments
422 (list #:tests? #f)) ;tests use cucumber, causing a cycle
423 (propagated-inputs
424 (list ruby-cucumber-core ruby-cucumber-expressions
425 ruby-cucumber-messages))
426 (synopsis "Cucumber wire protocol plugin")
427 (description "Cucumber's wire protocol allows step definitions to be
428implemented and invoked on any platform.")
429 (home-page "https://github.com/cucumber/cucumber-ruby-wire")
430 (license license:expat)))
431
432(define-public ruby-diff-lcs
433 (package
434 (name "ruby-diff-lcs")
435 (version "1.6.2") ; v2.0.0 has many internal breaking changes
436 (source (origin
437 (method url-fetch)
438 (uri (rubygems-uri "diff-lcs" version))
439 (sha256
440 (base32
441 "0qlrj2qyysc9avzlr4zs1py3x684hqm61n4czrsk1pyllz5x5q4s"))))
442 (build-system ruby-build-system)
443 (arguments
444 '(#:tests? #f)) ; avoid dependency cycles
445 (synopsis "Compute the difference between two Enumerable sequences")
446 (description "Diff::LCS computes the difference between two Enumerable
447sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm.
448It includes utilities to create a simple HTML diff output format and a
449standard diff-like tool.")
450 (home-page "https://github.com/halostatue/diff-lcs")
451 (license license:expat)))
452
453(define-public ruby-docile
454 (package
455 (name "ruby-docile")
456 (version "1.1.5")
457 (source
458 (origin
459 (method url-fetch)
460 (uri (rubygems-uri "docile" version))
461 (sha256
462 (base32
463 "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx"))))
464 (build-system ruby-build-system)
465 (arguments
466 '(#:tests? #f)) ; needs github-markup, among others
467 (synopsis "Ruby EDSL helper library")
468 (description "Docile is a Ruby library that provides an interface for
469creating embedded domain specific languages (EDSLs) that manipulate existing
470Ruby classes.")
471 (home-page "https://ms-ati.github.io/docile/")
472 (license license:expat)))
473
474(define-public ruby-fivemat
475 (package
476 (name "ruby-fivemat")
477 (version "1.3.7")
478 (source
479 (origin
480 (method url-fetch)
481 (uri (rubygems-uri "fivemat" version))
482 (sha256
483 (base32
484 "0pzlycasvwmg4bbx7plllpqnhd9zlmmff8l2w3yii86nrm2nvf9n"))))
485 (build-system ruby-build-system)
486 (arguments
487 `(#:tests? #f)) ; no tests
488 (synopsis "Each test file given its own line of dots")
489 (description
490 "Fivemat is a MiniTest/RSpec/Cucumber formatter that gives each test file
491its own line of dots during testing. It aims to provide test output that is
492neither too verbose nor too minimal.")
493 (home-page "https://github.com/tpope/fivemat")
494 (license license:expat)))
495
496(define-public ruby-given-core
497 (package
498 (name "ruby-given-core")
499 (version "3.8.2")
500 (source
501 (origin
502 (method url-fetch)
503 (uri (rubygems-uri "given_core" version))
504 (sha256
505 (base32
506 "0w1pyhgb2am7c267s8v06dpd9qhmsk2x4hfr2aq8l8lh49ma227s"))))
507 (build-system ruby-build-system)
508 (arguments '(#:tests? #f)) ;no test suite for the core package
509 (propagated-inputs
510 (list ruby-sorcerer))
511 (synopsis "Core abstractions used by rspec-given and minitest-given")
512 (description "Given_core is the basic functionality behind rspec-given and
513minitest-given, extensions that allow the use of Given/When/Then terminology
514when defining specifications.")
515 (home-page "https://github.com/rspec-given/rspec-given")
516 (license license:expat)))
517
518(define-public ruby-hoe
519 (package
520 (name "ruby-hoe")
521 (version "4.2.2")
522 (source (origin
523 (method url-fetch)
524 (uri (rubygems-uri "hoe" version))
525 (sha256
526 (base32
527 "1rhj1zs02mpdw6f4fh3mpfmj0p5pfar7rfxm758pk7l931mm8pyn"))))
528 (build-system ruby-build-system)
529 (arguments
530 (list
531 ;; Circular dependency with minitest
532 #:tests? #f))
533 (synopsis "Ruby project management helper")
534 (description
535 "Hoe is a rake/rubygems helper for project Rakefiles. It helps manage,
536maintain, and release projects and includes a dynamic plug-in system allowing
537for easy extensibility. Hoe ships with plug-ins for all the usual project
538tasks including rdoc generation, testing, packaging, deployment, and
539announcement.")
540 (home-page "https://www.zenspider.com/projects/hoe.html")
541 (license license:expat)))
542
543(define-public ruby-hoe-3
544 (package
545 (inherit ruby-hoe)
546 (version "3.26.0")
547 (source (origin
548 (method url-fetch)
549 (uri (rubygems-uri "hoe" version))
550 (sha256
551 (base32
552 "02vmphnfzna1dbb1l5nczcvlvvsg4flr26bdhmvdyf447bpswa63"))))))
553
554(define-public ruby-json
555 (package
556 (name "ruby-json")
557 (version "2.18.1")
558 (source
559 (origin
560 (method url-fetch)
561 (uri (rubygems-uri "json" version))
562 (sha256
563 (base32
564 "11prr7nrxh1y4rfsqa51gy4ixx63r18cz9mdnmk0938va1ajf4gy"))))
565 (build-system ruby-build-system)
566 (arguments '(#:tests? #f)) ; dependency cycle with sdoc
567 (synopsis "JSON library for Ruby")
568 (description "This Ruby library provides a JSON implementation written as
569a native C extension.")
570 (home-page "https://docs.ruby-lang.org/en/master/JSON.html")
571 (license (list license:ruby license:gpl2)))) ; GPL2 only
572
573(define-public ruby-mime-types
574 (package
575 (name "ruby-mime-types")
576 (version "3.4.1")
577 (source
578 (origin
579 (method url-fetch)
580 (uri (rubygems-uri "mime-types" version))
581 (sha256
582 (base32
583 "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb"))))
584 (build-system ruby-build-system)
585 (propagated-inputs
586 (list ruby-mime-types-data))
587 (native-inputs
588 (list ruby-hoe
589 ruby-fivemat
590 ruby-minitest-focus
591 ruby-minitest-bonus-assertions
592 ruby-minitest-hooks))
593 (synopsis "Library and registry for MIME content type definitions")
594 (description "The mime-types library provides a library and registry for
595information about Multipurpose Internet Mail Extensions (MIME) content type
596definitions. It can be used to determine defined filename extensions for MIME
597types, or to use filename extensions to look up the likely MIME type
598definitions.")
599 (home-page "https://github.com/mime-types/ruby-mime-types")
600 (license license:expat)))
601
602(define-public ruby-mime-types-data
603 (package
604 (name "ruby-mime-types-data")
605 (version "3.2016.0521")
606 (source
607 (origin
608 (method url-fetch)
609 (uri (rubygems-uri "mime-types-data" version))
610 (sha256
611 (base32
612 "04my3746hwa4yvbx1ranhfaqkgf6vavi1kyijjnw8w3dy37vqhkm"))))
613 (build-system ruby-build-system)
614 (native-inputs
615 (list ruby-hoe))
616 (synopsis "Registry for information about MIME media type definitions")
617 (description
618 "@code{mime-types-data} provides a registry for information about
619Multipurpose Internet Mail Extensions (MIME) media type definitions. It can
620be used with the Ruby mime-types library or other software to determine
621defined filename extensions for MIME types, or to use filename extensions to
622look up the likely MIME type definitions.")
623 (home-page "https://github.com/mime-types/mime-types-data/")
624 (license license:expat)))
625
626(define-public ruby-mini-portile
627 (package
628 (name "ruby-mini-portile")
629 (version "0.6.2")
630 (source
631 (origin
632 (method url-fetch)
633 (uri (rubygems-uri "mini_portile" version))
634 (sha256
635 (base32
636 "0h3xinmacscrnkczq44s6pnhrp4nqma7k056x5wv5xixvf2wsq2w"))))
637 (build-system ruby-build-system)
638 (arguments
639 '(#:tests? #f)) ; tests require network access
640 (synopsis "Ports system for Ruby developers")
641 (description "Mini-portile is a port/recipe system for Ruby developers.
642It provides a standard way to compile against specific versions of libraries
643to reproduce user environments.")
644 (home-page "https://github.com/flavorjones/mini_portile")
645 (license license:expat)))
646
647(define-public ruby-mini-portile-2
648 (package
649 (inherit ruby-mini-portile)
650 (version "2.8.2")
651 (source (origin
652 (method url-fetch)
653 (uri (rubygems-uri "mini_portile2" version))
654 (sha256
655 (base32
656 "0z7f38iq37h376n9xbl4gajdrnwzq284c9v1py4imw3gri2d5cj6"))))))
657
658(define-public ruby-minitest
659 (package
660 (name "ruby-minitest")
661 (version "5.27.0")
662 (source (origin
663 (method url-fetch)
664 (uri (rubygems-uri "minitest" version))
665 (sha256
666 (base32
667 "1mbpz92ml19rcxxfjrj91gmkif9khb1xpzyw38f81rvglgw1ffrd"))))
668 (build-system ruby-build-system)
669 (native-inputs (list ruby-hoe))
670 (home-page "https://github.com/minitest/minitest")
671 (synopsis "Small test suite library for Ruby")
672 (description "Minitest provides a complete suite of Ruby testing
673facilities supporting TDD, BDD, mocking, and benchmarking.")
674 (license license:expat)))
675
676(define-public ruby-minitest-bonus-assertions
677 (package
678 (name "ruby-minitest-bonus-assertions")
679 (version "3.0")
680 (source
681 (origin
682 (method url-fetch)
683 (uri (rubygems-uri "minitest-bonus-assertions" version))
684 (sha256
685 (base32
686 "1hbq9jk904xkz868yha1bqcm6azm7kmjsll2k4pn2nrcib508h2a"))))
687 (build-system ruby-build-system)
688 (arguments
689 (list
690 #:tests? #f ; Test suite has bitrotted.
691 #:phases
692 #~(modify-phases %standard-phases
693 (add-before 'check 'clean-dependencies
694 (lambda _
695 ;; Remove unneeded require statement that would entail another
696 ;; dependency.
697 (substitute* "test/minitest_config.rb"
698 (("require 'minitest/bisect'") "")))))))
699 (native-inputs
700 (list ruby-hoe
701 ruby-minitest-focus
702 ruby-minitest-moar))
703 (synopsis "Bonus assertions for @code{Minitest}")
704 (description
705 "Minitest bonus assertions provides extra MiniTest assertions. For
706instance, it provides @code{assert_true}, @code{assert_false} and
707@code{assert_set_equal}.")
708 (home-page "https://github.com/halostatue/minitest-bonus-assertions")
709 (license license:expat)))
710
711(define-public ruby-minitest-focus
712 (package
713 (name "ruby-minitest-focus")
714 (version "1.3.1")
715 (source
716 (origin
717 (method url-fetch)
718 (uri (rubygems-uri "minitest-focus" version))
719 (sha256
720 (base32
721 "13kd2dkd9akfb99ziqndz9mir5iynyfyj2l45mcibab6mq5k8g67"))))
722 (build-system ruby-build-system)
723 (propagated-inputs
724 (list ruby-minitest))
725 (native-inputs
726 (list ruby-hoe))
727 (synopsis "Allows a few specific tests to be focused on")
728 (description
729 "@code{minitest-focus} gives the ability focus on a few tests with ease
730without having to use command-line arguments. It introduces a @code{focus}
731class method for use in testing classes, specifying that the next defined test
732is to be run.")
733 (home-page "https://github.com/seattlerb/minitest-focus")
734 (license license:expat)))
735
736(define-public ruby-minitest-hooks
737 (package
738 (name "ruby-minitest-hooks")
739 (version "1.5.2")
740 (source
741 (origin
742 (method url-fetch)
743 (uri (rubygems-uri "minitest-hooks" version))
744 (sha256
745 (base32 "11jb31dl5kbpyl3kgxql0p7da9066r2aqw54y5q6cni9nmld3zf5"))))
746 (build-system ruby-build-system)
747 (arguments
748 '(#:tests? #f)) ; No tests bundled.
749 (native-inputs
750 (list ruby-sequel ;ruby-sqlite3
751 ))
752 (synopsis "Hooks for the minitest framework")
753 (description
754 "Minitest-hooks adds @code{around}, @code{before_all}, @code{after_all},
755@code{around_all} hooks for Minitest. This allows, for instance, running each
756suite of specs inside a database transaction, running each spec inside its own
757savepoint inside that transaction. This can significantly speed up testing
758for specs that share expensive database setup code.")
759 (home-page "https://github.com/jeremyevans/minitest-hooks")
760 (license license:expat)))
761
762(define-public ruby-minitest-moar
763 (package
764 (name "ruby-minitest-moar")
765 (version "0.0.4")
766 (source
767 (origin
768 (method url-fetch)
769 (uri (rubygems-uri "minitest-moar" version))
770 (sha256
771 (base32
772 "0nb83blrsab92gcy6nfpw39njys7zisia8pw4igzzfzfl51cis0x"))))
773 (build-system ruby-build-system)
774 (arguments
775 `(#:phases
776 (modify-phases %standard-phases
777 (add-before 'check 'clean-dependencies
778 (lambda _
779 ;; Remove all gems defined in the Gemfile because these are not
780 ;; truly needed.
781 (substitute* "Gemfile"
782 (("gem .*") ""))
783 ;; Remove byebug as not needed to run tests.
784 (substitute* "test/test_helper.rb"
785 (("require 'byebug'") "")))))))
786 (native-inputs
787 (list bundler ruby-minitest))
788 (synopsis "Extra features and changes to MiniTest")
789 (description "@code{MiniTest Moar} add some additional features and
790changes some default behaviours in MiniTest. For instance, Moar replaces the
791MiniTest @code{Object#stub} with a global @code{stub} method.")
792 (home-page "https://github.com/dockyard/minitest-moar")
793 (license license:expat)))
794
795(define-public ruby-minitest-mock
796 (package
797 (name "ruby-minitest-mock")
798 (version "5.27.0")
799 (source
800 (origin
801 (method url-fetch)
802 (uri (rubygems-uri "minitest-mock" version))
803 (sha256
804 (base32
805 "1c2m99b9hgvhyhzv0nxjqlgymr0vmxpalzlq41lrcyj1hmqysh3h"))))
806 (build-system ruby-build-system)
807 (arguments (list #:tests? #f)) ; tests not bundled in gem
808 (native-inputs (list ruby-hoe ruby-hoe-git2))
809 (synopsis "Tiny mock (and stub) object framework")
810 (description "@code{Minitest Mock} implements a mock and stub framework
811for Minitest. This gem provides:
812@enumerate
813@item Stubs for returning canned responses
814@item Mocks for defining function expectations
815@end enumerate")
816 (home-page "https://minite.st/")
817 (license license:expat)))
818
819(define-public ruby-multi-test
820 (package
821 (name "ruby-multi-test")
822 (version "1.1.0")
823 (source
824 (origin
825 (method git-fetch) ;for tests
826 (uri (git-reference
827 (url "https://github.com/cucumber/multi_test")
828 (commit (string-append "v" version))))
829 (file-name (git-file-name name version))
830 (sha256
831 (base32
832 "1y5vi5s8q3bzq0n04gq68fpaig38r65mfaq1fzcxi1h3prglz1xa"))))
833 (build-system ruby-build-system)
834 (arguments
835 (list
836 #:phases
837 #~(modify-phases %standard-phases
838 (replace 'check
839 (lambda* (#:key tests? #:allow-other-keys)
840 (when tests?
841 (invoke "./test-gemfile" "test/gemfiles/plain-ruby")))))))
842 (synopsis
843 "Interface to testing libraries loaded into a running Ruby process")
844 (description
845 "@code{multi_test} provides a uniform interface onto whatever testing
846libraries that have been loaded into a running Ruby process to help control
847rogue test/unit/autorun requires.")
848 (home-page "https://github.com/cucumber/multi_test")
849 (license license:expat)))
850
851(define-public ruby-rake
852 (package
853 (name "ruby-rake")
854 (version "13.3.0")
855 (source
856 (origin
857 (method git-fetch) ;for tests
858 (uri (git-reference
859 (url "https://github.com/ruby/rake")
860 (commit (string-append "v" version))))
861 (file-name (git-file-name name version))
862 (sha256
863 (base32
864 "01ixsz1k6y9ckzmyjmspbi5s213m9b7imglb9iypjmf1nrmsvgkx"))))
865 (build-system ruby-build-system)
866 (native-inputs
867 (list bundler))
868 (synopsis "Rake is a Make-like program implemented in Ruby")
869 (description
870 "Rake is a Make-like program where tasks and dependencies are specified
871in standard Ruby syntax.")
872 (home-page "https://github.com/ruby/rake")
873 (license license:expat)))
874
875(define-public ruby-rake-compiler
876 (package
877 (name "ruby-rake-compiler")
878 (version "1.2.9")
879 (source (origin
880 (method url-fetch)
881 (uri (rubygems-uri "rake-compiler" version))
882 (sha256
883 (base32
884 "01rnl94p1sr84xkbnh66db42qsndykbfx2z2fggxyxx9vnji6cjs"))))
885 (build-system ruby-build-system)
886 (arguments
887 '(#:tests? #f)) ; needs cucumber
888 (synopsis "Building and packaging helper for Ruby native extensions")
889 (description "Rake-compiler provides a framework for building and
890packaging native C and Java extensions in Ruby.")
891 (home-page "https://github.com/rake-compiler/rake-compiler")
892 (license license:expat)))
893
894(define-public ruby-rake-compiler-dock
895 (package
896 (name "ruby-rake-compiler-dock")
897 (version "1.3.0")
898 (source (origin
899 (method url-fetch)
900 (uri (rubygems-uri "rake-compiler-dock" version))
901 (sha256
902 (base32
903 "0yr5f72irvhmnk12q7bbr4qw0xwy7diqkbcvb4lygjbg7rvk3k8k"))))
904 (build-system ruby-build-system)
905 (arguments (list #:tests? #f)) ;test suite requires docker
906 (synopsis "Cross compiler environment for building Ruby gems")
907 (description "The code{rake-compiler-dock} gem provides a cross compiler
908environment for building gems on a variety of platforms (GNU/Linux, JRuby,
909Windows and Mac).")
910 (home-page "https://github.com/rake-compiler/rake-compiler-dock")
911 (license license:expat)))
912
913(define-public ruby-rubocop/minimal
914 (hidden-package
915 (package
916 (name "ruby-rubocop")
917 (version "1.68.0")
918 (source
919 (origin
920 (method git-fetch) ;no tests in distributed gem
921 (uri (git-reference
922 (url "https://github.com/rubocop/rubocop")
923 (commit (string-append "v" version))))
924 (file-name (git-file-name name version))
925 (sha256
926 (base32 "0pfsrgkg2dhb6a2rknciqskgxgmb9kf48rvbkhay9n8n6m712v2w"))))
927 (build-system ruby-build-system)
928 (arguments
929 (list #:tests? #f
930 #:phases
931 #~(modify-phases %standard-phases
932 (add-after 'unpack 'remove-runtime-dependencies
933 (lambda _
934 (substitute* "rubocop.gemspec"
935 (("s\\.add_dependency.*") "")))))))
936 (synopsis "Ruby code style checking tool")
937 (description
938 "@code{rubocop} is a Ruby code style checking tool. It aims to enforce
939the community-driven Ruby Style Guide.")
940 (home-page "https://github.com/rubocop/rubocop")
941 (license license:expat))))
942
943(define-public ruby-rspec
944 (package
945 (name "ruby-rspec")
946 (version "3.13.1")
947 (source (origin
948 (method url-fetch)
949 (uri (rubygems-uri "rspec" version))
950 (sha256
951 (base32
952 "0h11wynaki22a40rfq3ahcs4r36jdpz9acbb3m5dkf0mm67sbydr"))))
953 (build-system ruby-build-system)
954 (arguments
955 '(#:tests? #f)) ; avoid dependency cycles
956 (propagated-inputs
957 (list ruby-rspec-core ruby-rspec-expectations ruby-rspec-mocks))
958 (synopsis "Behavior-driven development framework for Ruby")
959 (description "RSpec is a behavior-driven development (BDD) framework for
960Ruby. This meta-package includes the RSpec test runner, along with the
961expectations and mocks frameworks.")
962 (home-page "https://rspec.info/")
963 (license license:expat)))
964
965(define-public ruby-rspec-2
966 (package (inherit ruby-rspec)
967 (version "2.14.1")
968 (source (origin
969 (method url-fetch)
970 (uri (rubygems-uri "rspec" version))
971 (sha256
972 (base32
973 "134y4wzk1prninb5a0bhxgm30kqfzl8dg06af4js5ylnhv2wd7sg"))))
974 (propagated-inputs
975 (list ruby-rspec-core-2 ruby-rspec-mocks-2 ruby-rspec-expectations-2))))
976
977(define-public ruby-rspec-core
978 (package
979 (name "ruby-rspec-core")
980 (version "3.13.2")
981 (source (origin
982 (method url-fetch)
983 (uri (rubygems-uri "rspec-core" version))
984 (sha256
985 (base32
986 "001kazj244cb6fbkmh7ap74csbr78717qaskqzqpir1q8xpdmywl"))))
987 (build-system ruby-build-system)
988 (arguments
989 '(#:tests? #f)) ; avoid dependency cycles
990 (propagated-inputs
991 (list ruby-rspec-support))
992 (synopsis "RSpec core library")
993 (description "Rspec-core provides the RSpec test runner and example
994groups.")
995 (home-page "https://github.com/rspec/rspec-core")
996 (license license:expat)))
997
998(define-public ruby-rspec-core-2
999 (package (inherit ruby-rspec-core)
1000 (version "2.14.8")
1001 (source (origin
1002 (method url-fetch)
1003 (uri (rubygems-uri "rspec-core" version))
1004 (sha256
1005 (base32
1006 "0psjy5kdlz3ph39br0m01w65i1ikagnqlg39f8p65jh5q7dz8hwc"))))
1007 (arguments
1008 (cons*
1009 #:phases
1010 #~(modify-phases %standard-phases
1011 (add-after 'unpack 'patch
1012 (lambda _
1013 (substitute* "lib/rspec/core/ruby_project.rb"
1014 (("File\\.exists\\?") "File.exist?")))))
1015 (package-arguments ruby-rspec-core)))
1016 (propagated-inputs `())))
1017
1018(define-public ruby-rspec-expectations
1019 (package
1020 (name "ruby-rspec-expectations")
1021 (version "3.13.3")
1022 (source (origin
1023 (method url-fetch)
1024 (uri (rubygems-uri "rspec-expectations" version))
1025 (sha256
1026 (base32
1027 "0n3cyrhsa75x5wwvskrrqk56jbjgdi2q1zx0irllf0chkgsmlsqf"))))
1028 (build-system ruby-build-system)
1029 (arguments
1030 '(#:tests? #f)) ; avoid dependency cycles
1031 (propagated-inputs
1032 (list ruby-diff-lcs ruby-rspec-support))
1033 (synopsis "RSpec expectations library")
1034 (description "Rspec-expectations provides a simple API to express expected
1035outcomes of a code example.")
1036 (home-page "https://github.com/rspec/rspec-expectations")
1037 (license license:expat)))
1038
1039(define-public ruby-rspec-expectations-2
1040 (package (inherit ruby-rspec-expectations)
1041 (version "2.14.5")
1042 (source (origin
1043 (method url-fetch)
1044 (uri (rubygems-uri "rspec-expectations" version))
1045 (sha256
1046 (base32
1047 "1ni8kw8kjv76jvwjzi4jba00k3qzj9f8wd94vm6inz0jz3gwjqf9"))))
1048 (propagated-inputs
1049 (list ruby-diff-lcs))))
1050
1051(define-public ruby-rspec-mocks
1052 (package
1053 (name "ruby-rspec-mocks")
1054 (version "3.13.2")
1055 (source (origin
1056 (method url-fetch)
1057 (uri (rubygems-uri "rspec-mocks" version))
1058 (sha256
1059 (base32
1060 "1vxxkb2sf2b36d8ca2nq84kjf85fz4x7wqcvb8r6a5hfxxfk69r3"))))
1061 (build-system ruby-build-system)
1062 (arguments
1063 '(#:tests? #f)) ; avoid dependency cycles
1064 (propagated-inputs
1065 (list ruby-diff-lcs ruby-rspec-support))
1066 (synopsis "RSpec stubbing and mocking library")
1067 (description "Rspec-mocks provides RSpec's \"test double\" framework, with
1068support for stubbing and mocking.")
1069 (home-page "https://github.com/rspec/rspec-mocks")
1070 (license license:expat)))
1071
1072(define-public ruby-rspec-mocks-2
1073 (package (inherit ruby-rspec-mocks)
1074 (version "2.14.6")
1075 (source (origin
1076 (method url-fetch)
1077 (uri (rubygems-uri "rspec-mocks" version))
1078 (sha256
1079 (base32
1080 "1fwsmijd6w6cmqyh4ky2nq89jrpzh56hzmndx9wgkmdgfhfakv30"))))
1081 (propagated-inputs
1082 (list ruby-diff-lcs))))
1083
1084;; RSpec is the dominant testing library for Ruby projects. Even RSpec's
1085;; dependencies use RSpec for their test suites! To avoid these circular
1086;; dependencies, we disable tests for all of the RSpec-related packages.
1087(define-public ruby-rspec-support
1088 (package
1089 (name "ruby-rspec-support")
1090 (version "3.13.2")
1091 (source (origin
1092 (method url-fetch)
1093 (uri (rubygems-uri "rspec-support" version))
1094 (sha256
1095 (base32
1096 "1v6v6xvxcpkrrsrv7v1xgf7sl0d71vcfz1cnrjflpf6r7x3a58yf"))))
1097 (build-system ruby-build-system)
1098 (arguments
1099 '(#:tests? #f)) ; avoid dependency cycles
1100 (synopsis "RSpec support library")
1101 (description "Support utilities for RSpec gems.")
1102 (home-page "https://github.com/rspec/rspec-support")
1103 (license license:expat)))
1104
1105(define-public ruby-sequel
1106 (package
1107 (name "ruby-sequel")
1108 (version "5.47.0")
1109 (source
1110 (origin
1111 (method url-fetch)
1112 (uri (rubygems-uri "sequel" version))
1113 (sha256
1114 (base32
1115 "03pmhj4kc3ga75wy397l57bvd18jxxmrk3qsznjw93b993qgvj3z"))))
1116 (build-system ruby-build-system)
1117 (arguments
1118 '(#:tests? #f)) ; Avoid dependency loop with ruby-minitest-hooks.
1119 (synopsis "Database toolkit for Ruby")
1120 (description "Sequel provides thread safety, connection pooling and a
1121concise DSL for constructing SQL queries and table schemas. It includes a
1122comprehensive ORM layer for mapping records to Ruby objects and handling
1123associated records.")
1124 (home-page "https://sequel.jeremyevans.net")
1125 (license license:expat)))
1126
1127(define-public ruby-simplecov-json-formatter
1128 (package
1129 (name "ruby-simplecov-json-formatter")
1130 (version "0.1.4")
1131 (source (origin
1132 (method url-fetch)
1133 (uri (rubygems-uri "simplecov_json_formatter" version))
1134 (sha256
1135 (base32
1136 "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j"))))
1137 (build-system ruby-build-system)
1138 ;; The test suite is disabled because it requires simplecov, which
1139 ;; requires this, introducing a dependency cycle.
1140 (arguments (list #:tests? #f))
1141 (synopsis "JSON formatter for SimpleCov")
1142 (description "This package provides a JSON formatter for SimpleCov, the
1143Ruby code coverage tool.")
1144 (home-page
1145 "https://github.com/codeclimate-community/simplecov_json_formatter")
1146 (license license:expat)))
1147
1148(define-public ruby-simplecov
1149 (package
1150 (name "ruby-simplecov")
1151 (version "0.22.0")
1152 (source (origin
1153 (method url-fetch)
1154 (uri (rubygems-uri "simplecov" version))
1155 (sha256
1156 (base32
1157 "198kcbrjxhhzca19yrdcd6jjj9sb51aaic3b0sc3pwjghg3j49py"))))
1158 (build-system ruby-build-system)
1159 ;; Simplecov depends on rubocop for code style checking at build time.
1160 ;; Rubocop needs simplecov at build time.
1161 (arguments `(#:tests? #f))
1162 (propagated-inputs
1163 (list ruby-json
1164 ruby-docile
1165 ruby-simplecov-html
1166 ruby-simplecov-json-formatter))
1167 (synopsis "Code coverage framework for Ruby")
1168 (description "SimpleCov is a code coverage framework for Ruby with a
1169powerful configuration library and automatic merging of coverage across test
1170suites.")
1171 (home-page "https://github.com/simplecov-ruby/simplecov")
1172 (license license:expat)))
1173
1174(define-public ruby-simplecov-html
1175 (package
1176 (name "ruby-simplecov-html")
1177 (version "0.12.3")
1178 (source (origin
1179 (method url-fetch)
1180 (uri (rubygems-uri "simplecov-html" version))
1181 (sha256
1182 (base32
1183 "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb"))))
1184 (build-system ruby-build-system)
1185 (arguments `(#:tests? #f)) ; there are no tests
1186 (native-inputs
1187 (list bundler))
1188 (synopsis "Default HTML formatter for SimpleCov code coverage tool")
1189 (description "This package provides the default HTML formatter for
1190the SimpleCov code coverage tool for Ruby version 1.9 and above.")
1191 (home-page "https://github.com/simplecov-ruby/simplecov-html")
1192 (license license:expat)))
1193
1194(define-public ruby-sorcerer
1195 (package
1196 (name "ruby-sorcerer")
1197 (version "2.0.1")
1198 (source
1199 (origin
1200 (method url-fetch)
1201 (uri (rubygems-uri "sorcerer" version))
1202 (sha256
1203 (base32
1204 "0d32ha9pp9slpmsm027pkdpbr9vc5jn2m8rl6hwwx6a87m8cr58h"))))
1205 (build-system ruby-build-system)
1206 (synopsis "Ripper-style abstract syntax tree to Ruby source generator")
1207 (description "Sorcerer generates Ruby code from a Ripper-like abstract
1208syntax tree (i.e. S-Expressions). Sorcerer is targeted mainly at small
1209snippets of Ruby code, expressible in a single line. Longer examples may be
1210re-sourced, but they will be rendered in a single-line format.")
1211 (home-page "https://github.com/rspec-given/sorcerer")
1212 (license license:expat)))
1213
1214(define-public ruby-test-unit-rr
1215 (package
1216 (name "ruby-test-unit-rr")
1217 (version "1.0.5")
1218 (source
1219 (origin
1220 (method git-fetch) ;for tests
1221 (uri (git-reference
1222 (url "https://github.com/test-unit/test-unit-rr")
1223 (commit version)))
1224 (file-name (git-file-name name version))
1225 (sha256
1226 (base32 "13jprjp6psc125ji6h3cpjj6nzhg1van6v1qczcwg1m24908i2qx"))))
1227 (build-system ruby-build-system)
1228 (arguments
1229 (list
1230 #:phases
1231 #~(modify-phases %standard-phases
1232 ;; Do not use Rake to avoid the Packnga setup.
1233 (replace 'check
1234 (lambda* (#:key tests? #:allow-other-keys)
1235 (when tests?
1236 (invoke "ruby" "test/run-test.rb")))))))
1237 (propagated-inputs (list ruby-rr ruby-test-unit))
1238 (synopsis "Test double framework adapter for Ruby's test-unit")
1239 (description
1240 "This is a test-unit adapter for RR, which is a Ruby's test double
1241framework.")
1242 (home-page "https://github.com/test-unit/test-unit-rr")
1243 (license license:lgpl2.1+)))
1244
1245(define-public ruby-unindent
1246 (package
1247 (name "ruby-unindent")
1248 (version "1.0")
1249 (source
1250 (origin
1251 (method url-fetch)
1252 (uri (rubygems-uri "unindent" version))
1253 (sha256
1254 (base32
1255 "1wqh3rzv8589yzibigminxx3qpmj2nqj28f90xy1sczk1pijmcrd"))))
1256 (build-system ruby-build-system)
1257 (synopsis "Ruby method to unindent strings")
1258 (description "This module provides a @code{String#unindent} Ruby method to
1259unindent strings, which can be useful to unindent multiline strings embedded
1260in already-indented code.")
1261 (home-page "https://github.com/mynyml/unindent")
1262 (license license:expat)))
1263
1264;;;
1265;;; Avoid adding new packages to the end of this file. To reduce the chances
1266;;; of a merge conflict, place them above in alphabetic order.
1267;;;