projects/guix·blob java-team · refs

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