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