See I packaged ruby-minitest-moar. Hilarious right? Maybe not.
These packages are independent of the other 12 submitted packages, except for ruby-ansi which has already been reviewed - I've attached an updated patch that incorporates your comments, thanks Ricardo.
Thanks again. ben
>From e26e2319ef7d9b089f177d23624913f0522e9f9d Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Tue, 29 Dec 2015 14:11:21 +1000 Subject: [PATCH 01/18] gnu: Add ruby-ansi. * gnu/packages/ruby.scm (ruby-ansi): New variable. --- gnu/packages/ruby.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index a3eafb1..10abf09 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2884,3 +2884,40 @@ programs to concentrate on the implementation of network protocols. It can be used to create both network servers and clients.") (home-page "http://rubyeventmachine.com") (license (list license:ruby license:gpl3)))) ; GPLv3 only AFAICT + +(define-public ruby-ansi + (package + (name "ruby-ansi") + (version "1.5.0") + (source + (origin + (method url-fetch) + ;; Fetch from GitHub as the gem does not contain testing code. + (uri (string-append "https://github.com/rubyworks/ansi/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1zdip30hivyipi8hndhb457bhiz033awd00bgrsk5axjrwp6zhly")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Disable testing to break the cycle ansi, ae, ansi, as well as the + ;; cycle ansi, qed, ansi. Instead simply test that the library can + ;; be require'd. + (replace 'check + (lambda _ + (zero? (system* "ruby" "-Ilib" "-r" "ansi"))))))) + (synopsis "ANSI escape code related libraries") + (description + "This package is a collection of ANSI escape code related libraries +enabling ANSI colorization and stylization of console output. Included in the +library are the @code{Code} module, which defines ANSI codes as constants and +methods, a @code{Mixin} module for including color methods, a @code{Logger}, a +@code{ProgressBar}, and a @code{String} subclass. The library also includes a +@code{Terminal} module which provides information about the current output +device.") + (home-page "http://rubyworks.github.io/ansi") + (license license:bsd-2))) + -- 2.6.3
>From 052e3fa15dced49faebc51b74ddc2a550713b569 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Wed, 30 Dec 2015 23:19:10 +1000 Subject: [PATCH 02/18] gnu: Add ruby-turn. * gnu/packages/ruby.scm (ruby-turn): New variable. --- gnu/packages/ruby.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 10abf09..6346ca6 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2885,6 +2885,39 @@ used to create both network servers and clients.") (home-page "http://rubyeventmachine.com") (license (list license:ruby license:gpl3)))) ; GPLv3 only AFAICT +(define-public ruby-turn + (package + (name "ruby-turn") + (version "0.9.7") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "turn" version)) + (sha256 + (base32 + "1691rc2sq04cw8mxxh340k2j04ll90kwgcy8ddrp6rligmfrf8fw")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Tests fail because turn changes its environment so can no longer + ;; find test/unit. Instead simply test if the executable runs + ;; without issue. + (replace 'check + (lambda _ + (zero? (system* "ruby" "-Ilib" "bin/turn" "-h"))))))) + (propagated-inputs + `(("ruby-ansi" ,ruby-ansi) + ("ruby-minitest" ,ruby-minitest-4))) + (synopsis "Alternate set of alternative runners for MiniTest") + (description + "TURN provides a set of alternative runners for MiniTest which are both +colorful and informative. TURN displays each test on a separate line with +failures being displayed immediately instead of at the end of the tests. Note +that TURN is no longer being maintained.") + (home-page "http://rubygems.org/gems/turn") + (license license:expat))) + (define-public ruby-ansi (package (name "ruby-ansi") -- 2.6.3
>From 4c14a6323d29d772ab688dcd895870edec3fe5dc Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Wed, 30 Dec 2015 23:22:05 +1000 Subject: [PATCH 03/18] gnu: Add ruby-ruby-minitest-focus. * gnu/packages/ruby.scm (ruby-ruby-minitest-focus): New variable. --- gnu/packages/ruby.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 6346ca6..a647985 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1521,6 +1521,31 @@ functionality, making it easier to migrate test suites from bacon to minitest.") (home-page "https://github.com/seattlerb/minitest-bacon") (license license:expat))) +(define-public ruby-minitest-focus + (package + (name "ruby-minitest-focus") + (version "1.1.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "minitest-focus" version)) + (sha256 + (base32 + "1zgjslp6d7dzcn8smj595idymgd5j603p9g2jqkfgi28sqbhz6m0")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-minitest" ,ruby-minitest))) + (native-inputs + `(("ruby-hoe" ,ruby-hoe))) + (synopsis "Allows a few specific tests to be focused on") + (description + "@code{minitest-focus} gives the ability focus on a few tests with ease +without having to use command-line arguments. It introduces a @code{focus} +class method that specifies the next test defined is to be run.") + (home-page + "https://github.com/seattlerb/minitest-focus") + (license license:expat))) + (define-public ruby-daemons (package (name "ruby-daemons") -- 2.6.3
>From a29ccdea723bfeede027faf0e85b906900e53f39 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Wed, 30 Dec 2015 23:36:03 +1000 Subject: [PATCH 04/18] gnu: Add ruby-minitest-pretty-diff. * gnu/packages/ruby.scm (ruby-minitest-pretty-diff): New variable. --- gnu/packages/ruby.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index a647985..7b7fe1f 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1546,6 +1546,43 @@ class method that specifies the next test defined is to be run.") "https://github.com/seattlerb/minitest-focus") (license license:expat))) +(define-public ruby-minitest-pretty-diff + ;; Use git reference because gem is out of date and does not contain testing + ;; script. There are no releases on GitHub. + (let ((revision "1") + (commit "11f32e930f574225432f42e5e1ef6e7471efe572")) + (package + (name "ruby-minitest-pretty-diff") + (version (string-append "0.1." revision "." commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/adammck/minitest-pretty_diff.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "13y5dhmcckhzd83gj1nfwh41iykbjcm2w7y4pr6j6rpqa5as122r")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "script/test"))))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-turn" ,ruby-turn))) + (synopsis "Pretty-print hashes and arrays in MiniTest") + (description + "@code{minitest-pretty_diff} monkey-patches +@code{MiniTest::Assertions#mu_pp} to pretty-print hashes and arrays before +diffing them. This makes it easier to spot differences between nested +structures when tests fail.") + (home-page + "https://github.com/adammck/minitest-pretty_diff") + (license license:expat)))) + (define-public ruby-daemons (package (name "ruby-daemons") -- 2.6.3
>From 22645c2c465c4cc5554409832b16c85ee1f320aa Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 07:30:37 +1000 Subject: [PATCH 05/18] gnu: Add ruby-ruby-minitest-moar. * gnu/packages/ruby.scm (ruby-ruby-minitest-moar): New variable. --- gnu/packages/ruby.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 7b7fe1f..0896b2d 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1583,6 +1583,42 @@ structures when tests fail.") "https://github.com/adammck/minitest-pretty_diff") (license license:expat)))) +(define-public ruby-minitest-moar + (package + (name "ruby-minitest-moar") + (version "0.0.4") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "minitest-moar" version)) + (sha256 + (base32 + "0nb83blrsab92gcy6nfpw39njys7zisia8pw4igzzfzfl51cis0x")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'clean-dependencies + (lambda _ + ;; Remove all gems defined in the Gemfile because these are not + ;; truly needed. + (substitute* "Gemfile" + (("gem .*") "")) + ;; Remove byebug as not needed to run tests. + (substitute* "test/test_helper.rb" + (("require 'byebug'") "")) + #t))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-minitest" ,ruby-minitest))) + (synopsis "Extra features and changes to MiniTest") + (description "@code{MiniTest Moar} add some additional features and +changes some default behaviours in MiniTest. For instance, Moar replaces the +MiniTest @code{Object#stub} with a global @code{stub} method.") + (home-page + "https://github.com/dockyard/minitest-moar") + (license license:expat))) + (define-public ruby-daemons (package (name "ruby-daemons") -- 2.6.3
>From d0f43cb4b322ee73c69998c706ab2042955254cf Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 08:56:18 +1000 Subject: [PATCH 06/18] gnu: Add ruby-minitest-bonus-assertions. * gnu/packages/ruby.scm (ruby-minitest-bonus-assertions): New variable. --- gnu/packages/ruby.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 0896b2d..a6b41ae 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1619,6 +1619,44 @@ MiniTest @code{Object#stub} with a global @code{stub} method.") "https://github.com/dockyard/minitest-moar") (license license:expat))) +(define-public ruby-minitest-bonus-assertions + (package + (name "ruby-minitest-bonus-assertions") + (version "2.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri + "minitest-bonus-assertions" + version)) + (sha256 + (base32 + "11nrd32kwy61ndg9csk7l1ifya79ghrrv3vsrxj57k50m7na6jkm")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'clean-dependencies + (lambda _ + ;; Remove unneeded require statement that would entail another + ;; dependency. + (substitute* "test/minitest_config.rb" + (("require 'minitest/bisect'") "")) + #t))))) + (native-inputs + `(("ruby-hoe" ,ruby-hoe) + ("ruby-minitest-pretty-diff" ,ruby-minitest-pretty-diff) + ("ruby-minitest-focus" ,ruby-minitest-focus) + ("ruby-minitest-moar" ,ruby-minitest-moar))) + (synopsis "Bonus assertions for @code{Minitest}") + (description + "Minitest bonus assertions provides extra MiniTest assertions. For +instance, it provides @code{assert_true}, @code{assert_false} and +@code{assert_set_equal}.") + (home-page + "https://github.com/halostatue/minitest-bonus-assertions") + (license license:expat))) + (define-public ruby-daemons (package (name "ruby-daemons") -- 2.6.3
>From e2108fa1ec142810c4d69e7d8aa481865c2470a9 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 08:58:44 +1000 Subject: [PATCH 07/18] gnu: Add ruby-minitest-rg. * gnu/packages/ruby.scm (ruby-minitest-rg): New variable. --- gnu/packages/ruby.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index a6b41ae..c9faf4d 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1657,6 +1657,31 @@ instance, it provides @code{assert_true}, @code{assert_false} and "https://github.com/halostatue/minitest-bonus-assertions") (license license:expat))) +(define-public ruby-minitest-rg + (package + (name "ruby-minitest-rg") + (version "5.2.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "minitest-rg" version)) + (sha256 + (base32 + "0sq509ax1x62rd0w10b0hcydcxyk5bxxr3fwrgxv02r8drq2r354")))) + (build-system ruby-build-system) + (arguments + ;; Some tests fail even outside Guix, so disable tests. + ;; https://github.com/blowmage/minitest-rg/issues/12 + ;; https://github.com/blowmage/minitest-rg/pull/13 + `(#:tests? #f)) + (propagated-inputs + `(("ruby-minitest" ,ruby-minitest))) + (synopsis "Coloured output for Minitest") + (description + "@code{minitest-rg} changes the colour of the output from Minitest.") + (home-page "http://blowmage.com/minitest-rg") + (license license:expat))) + (define-public ruby-daemons (package (name "ruby-daemons") -- 2.6.3
>From 590600312801f0650e31c6aa65e6dadc5f067b53 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 09:01:01 +1000 Subject: [PATCH 08/18] gnu: Add ruby-mime-types-data. * gnu/packages/ruby.scm (ruby-mime-types-data): New variable. --- gnu/packages/ruby.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index c9faf4d..15dfadb 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3079,6 +3079,30 @@ that TURN is no longer being maintained.") (home-page "http://rubygems.org/gems/turn") (license license:expat))) +(define-public ruby-mime-types-data + (package + (name "ruby-mime-types-data") + (version "3.2015.1120") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "mime-types-data" version)) + (sha256 + (base32 + "04fzvy02w8d0rrsg8avncn7h58pvwdxj82aps54srb3sam2dkhic")))) + (build-system ruby-build-system) + (native-inputs + `(("ruby-hoe" ,ruby-hoe))) + (synopsis "Registry for information about MIME media type definitions") + (description + "@code{mime-types-data} provides a registry for information about MIME +media type definitions. It can be used with the Ruby mime-types library or +other software to determine defined filename extensions for MIME types, or to +use filename extensions to look up the likely MIME type definitions.") + (home-page + "https://github.com/mime-types/mime-types-data/") + (license license:expat))) + (define-public ruby-ansi (package (name "ruby-ansi") -- 2.6.3
>From 48a2844a498e0de16d5c6f54de1a932d4fb3d585 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 09:03:19 +1000 Subject: [PATCH 09/18] gnu: Add ruby-fivemat. * gnu/packages/ruby.scm (ruby-fivemat): New variable. --- gnu/packages/ruby.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 15dfadb..e65f5b2 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3103,6 +3103,28 @@ use filename extensions to look up the likely MIME type definitions.") "https://github.com/mime-types/mime-types-data/") (license license:expat))) +(define-public ruby-fivemat + (package + (name "ruby-fivemat") + (version "1.3.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "fivemat" version)) + (sha256 + (base32 + "1gvw6g4yc96l2pcyvigahyfsjxpdjx21iiwzvf965zippchdh6gk")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no tests + (synopsis "Each test file given its own line of dots") + (description + "Fivemat is a MiniTest/RSpec/Cucumber formatter that gives each test file +its own line of dots during testing. It aims to provide test output that is +neither too verbose nor too minimal.") + (home-page "https://github.com/tpope/fivemat") + (license license:expat))) + (define-public ruby-ansi (package (name "ruby-ansi") -- 2.6.3
>From 0b32e007b2588205f50f56f3859765836af6eae7 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 09:05:55 +1000 Subject: [PATCH 10/18] gnu: Add ruby-mime-types. * gnu/packages/ruby.scm (ruby-mime-types): New variable. --- gnu/packages/ruby.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index e65f5b2..5740aab 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3103,6 +3103,34 @@ use filename extensions to look up the likely MIME type definitions.") "https://github.com/mime-types/mime-types-data/") (license license:expat))) +(define-public ruby-mime-types + (package + (name "ruby-mime-types") + (version "3.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "mime-types" version)) + (sha256 + (base32 + "1snjc38a9vqvy8j41xld1i1byq9prbl955pbjw7dxqcfcirqlzra")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-mime-types-data" ,ruby-mime-types-data))) + (native-inputs + `(("ruby-hoe" ,ruby-hoe) + ("ruby-fivemat" ,ruby-fivemat) + ("ruby-minitest-focus" ,ruby-minitest-focus) + ("ruby-minitest-rg" ,ruby-minitest-rg) + ("ruby-minitest-bonus-assertions" ,ruby-minitest-bonus-assertions))) + (synopsis "Library and registry for MIME content type definitions") + (description "The mime-types library provides a library and registry for +information about MIME content type definitions. It can be used to determine +defined filename extensions for MIME types, or to use filename extensions to +look up the likely MIME type definitions.") + (home-page "https://github.com/mime-types/ruby-mime-types") + (license license:expat))) + (define-public ruby-fivemat (package (name "ruby-fivemat") -- 2.6.3
>From 73ee64141fc21a5bbdd34a2b23d42f8a2a200ba0 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 09:08:56 +1000 Subject: [PATCH 11/18] gnu: Add ruby-sqlite3. * gnu/packages/ruby.scm (ruby-sqlite3): New variable. --- gnu/packages/ruby.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 5740aab..d473870 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3153,6 +3153,39 @@ neither too verbose nor too minimal.") (home-page "https://github.com/tpope/fivemat") (license license:expat))) +(define-public ruby-sqlite3 + (package + (name "ruby-sqlite3") + (version "1.3.11") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "sqlite3" version)) + (sha256 + (base32 + "19r06wglnm6479ffj9dl0fa4p5j2wi6dj7k6k3d0rbx7036cv3ny")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'add-gemtest-file + (lambda _ + ;; This file exists in the repository but is not distributed. + (zero? (system* "touch" ".gemtest"))))))) + (inputs + `(("sqlite" ,sqlite))) + (native-inputs + `(("ruby-hoe" ,ruby-hoe) + ("ruby-rake-compiler" ,ruby-rake-compiler) + ("ruby-mini-portile" ,ruby-mini-portile))) + (synopsis "Interface with SQLite3 databases") + (description + "This module allows Ruby programs to interface with the SQLite3 database +engine.") + (home-page + "https://github.com/sparklemotion/sqlite3-ruby") + (license license:bsd-3))) + (define-public ruby-ansi (package (name "ruby-ansi") -- 2.6.3
>From 268acb6e2a730be5291257084edf08f5136bd655 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 09:11:35 +1000 Subject: [PATCH 12/18] gnu: Add ruby-shoulda-context. * gnu/packages/ruby.scm (ruby-shoulda-context): New variable. --- gnu/packages/ruby.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index d473870..ed17daa 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3186,6 +3186,35 @@ engine.") "https://github.com/sparklemotion/sqlite3-ruby") (license license:bsd-3))) +(define-public ruby-shoulda-context + (package + (name "ruby-shoulda-context") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "shoulda-context" version)) + (sha256 + (base32 + "06wv2ika5zrbxn0m3qxwk0zkbspxids3zmlq3xxays5qmvl1qb55")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; Do not run tests to avoid circular dependence on rails. Instead + ;; just import the library to test. + (zero? (system* "ruby" "-Ilib" "-r" "shoulda-context"))))))) + (synopsis "Test::Unit context framework extracted from Shoulda") + (description + "@code{shoulda-context} is the context framework extracted from Shoulda. +Instead of writing Ruby methods with lots_of_underscores, shoulda-context adds +context, setup, and should blocks combine to produce natural test method +names.") + (home-page "https://github.com/thoughtbot/shoulda-context") + (license license:expat))) + (define-public ruby-ansi (package (name "ruby-ansi") -- 2.6.3
>From 71dd5fa43c5fe1e881cb087f21b81c0b8142dc7f Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 09:12:59 +1000 Subject: [PATCH 13/18] gnu: Add ruby-shoulda-matchers. * gnu/packages/ruby.scm (ruby-shoulda-matchers): New variable. --- gnu/packages/ruby.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index ed17daa..943ecc5 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3215,6 +3215,44 @@ names.") (home-page "https://github.com/thoughtbot/shoulda-context") (license license:expat))) +(define-public ruby-shoulda-matchers + (package + (name "ruby-shoulda-matchers") + (version "3.0.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "shoulda-matchers" version)) + (sha256 + (base32 + "1agabvb8i39mjrp3kb78nvhl41xk1i258hdwdlj0fm8nj9yzn1jb")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'fix-import + (lambda _ + ;; A presumed bug reported upstream at + ;; https://github.com/thoughtbot/shoulda-matchers/pull/871 + (substitute* (string-append "lib/shoulda/matchers/active_model/" + "validate_inclusion_of_matcher.rb") + (("^require 'bigdecimal'") + "require 'bigdecimal'; require 'date'")))) + (replace 'check + (lambda _ + ;; Do not run tests to avoid circular dependence on rails. Instead + ;; just import the library to test. + (zero? (system* "ruby" "-Ilib" "-r" "shoulda-matchers"))))))) + (propagated-inputs + `(("ruby-activesupport" ,ruby-activesupport))) + (synopsis "Collection of testing matchers extracted from Shoulda") + (description + "Shoulda Matchers provides RSpec- and Minitest-compatible one-liners that +test common Rails functionality. These tests would otherwise be much longer, +more complex, and error-prone.") + (home-page "https://github.com/thoughtbot/shoulda-matchers") + (license license:expat))) + (define-public ruby-ansi (package (name "ruby-ansi") -- 2.6.3
>From 9329f7634a42005801e6099667b75153c1dafc08 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 09:21:51 +1000 Subject: [PATCH 14/18] gnu: Add ruby-shoulda-matchers-2. * gnu/packages/ruby.scm (ruby-shoulda-matchers-2): New variable. --- gnu/packages/ruby.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 943ecc5..0eca054 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3253,6 +3253,17 @@ more complex, and error-prone.") (home-page "https://github.com/thoughtbot/shoulda-matchers") (license license:expat))) +(define-public ruby-shoulda-matchers-2 + (package + (inherit ruby-shoulda-matchers) + (version "2.8.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "shoulda-matchers" version)) + (sha256 + (base32 + "0d3ryqcsk1n9y35bx5wxnqbgw4m8b3c79isazdjnnbg8crdp72d0")))))) + (define-public ruby-ansi (package (name "ruby-ansi") -- 2.6.3
>From 0d72a644e036f73a4564509c6fa31fc65c5ce9ce Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 09:22:43 +1000 Subject: [PATCH 15/18] gnu: Add ruby-shoulda. * gnu/packages/ruby.scm (ruby-shoulda): New variable. --- gnu/packages/ruby.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 0eca054..2bc128a 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3264,6 +3264,37 @@ more complex, and error-prone.") (base32 "0d3ryqcsk1n9y35bx5wxnqbgw4m8b3c79isazdjnnbg8crdp72d0")))))) +(define-public ruby-shoulda + (package + (name "ruby-shoulda") + (version "3.5.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "shoulda" version)) + (sha256 + (base32 + "0csmf15a7mcinfq54lfa4arp0f4b2jmwva55m0p94hdf3pxnjymy")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; Don't run tests to avoid circular dependence on rails. Instead + ;; just import the library to test. + (zero? (system* "ruby" "-Ilib" "-r" "shoulda"))))))) + (propagated-inputs + `(("ruby-shoulda-context" ,ruby-shoulda-context) + ("ruby-shoulda-matchers" ,ruby-shoulda-matchers-2))) + (synopsis "Context framework and matchers for testing") + (description + "@code{shoulda} is a meta-package combining @code{shoulda-context} and +@code{shoulda-matchers} providing tools for writing tests.") + (home-page + "https://github.com/thoughtbot/shoulda") + (license license:expat))) + (define-public ruby-ansi (package (name "ruby-ansi") -- 2.6.3
>From f14ef425b8a554651f7530bfa32203b2014d03d7 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 09:23:55 +1000 Subject: [PATCH 16/18] gnu: Add ruby-unf. * gnu/packages/ruby.scm (ruby-unf): New variable. --- gnu/packages/ruby.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 2bc128a..fee5e4a 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3295,6 +3295,43 @@ more complex, and error-prone.") "https://github.com/thoughtbot/shoulda") (license license:expat))) +(define-public ruby-unf + (package + (name "ruby-unf") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "unf" version)) + (sha256 + (base32 + "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'add-dependency-to-bundler + (lambda _ + ;; test-unit is required but not provided by the bundler + ;; environment. This is fixed in the upstream repository but fix + ;; has not been released. + (substitute* "Gemfile" + (("^gemspec") "gem 'test-unit'\ngemspec")) + #t))))) + (propagated-inputs + `(("ruby-unf-ext" ,ruby-unf-ext))) + (native-inputs + `(("ruby-shoulda" ,ruby-shoulda) + ("bundler" ,bundler) + ("ruby-test-unit" ,ruby-test-unit))) + (synopsis "Unicode Normalization Form support to Ruby and JRuby") + (description + "@code{ruby-unf} is a wrapper library to bring Unicode Normalization Form +support to both Ruby and JRuby. It uses @code{unf_ext} on CRuby and +@code{java.text.Normalizer} on JRuby.") + (home-page "https://github.com/knu/ruby-unf") + (license license:bsd-2))) + (define-public ruby-ansi (package (name "ruby-ansi") -- 2.6.3
>From 6975882822bbe736a3fb595dcd67548ab329bb83 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 09:25:45 +1000 Subject: [PATCH 17/18] gnu: Add ruby-domain-name. * gnu/packages/ruby.scm (ruby-domain-name): New variable. --- gnu/packages/ruby.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index fee5e4a..8178693 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3332,6 +3332,47 @@ support to both Ruby and JRuby. It uses @code{unf_ext} on CRuby and (home-page "https://github.com/knu/ruby-unf") (license license:bsd-2))) +(define-public ruby-domain-name + (package + (name "ruby-domain-name") + (version "0.5.25") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "domain_name" version)) + (sha256 + (base32 + "16qvfrmcwlzz073aas55mpw2nhyhjcn96s524w0g1wlml242hjav")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-versions + (lambda _ + ;; Fix NameError that appears to already be fixed upstream. + (substitute* "Rakefile" + (("DomainName::VERSION") + "Bundler::GemHelper.gemspec.version")) + ;; Loosen unnecessarily strict test-unit version specification. + (substitute* "domain_name.gemspec" + (("<test-unit>, \\[\\\"~> 2.5.5") "<test-unit>, [\">0")) + #t))))) + (propagated-inputs + `(("ruby-unf" ,ruby-unf))) + (native-inputs + `(("ruby-shoulda" ,ruby-shoulda) + ("bundler" ,bundler) + ("ruby-test-unit" ,ruby-test-unit))) + (synopsis "Domain name manipulation library") + (description + "@code{domain_name} is a Domain name manipulation library. It parses a +domain name ready for extracting the registered domain and TLD (Top Level +Domain). It can also be used for cookie domain validation based on the Public +Suffix List.") + (home-page + "https://github.com/knu/ruby-domain_name") + (license license:bsd-2))) + (define-public ruby-ansi (package (name "ruby-ansi") -- 2.6.3
>From df1174aac0eb2c92dd3b35a7007d14ae6f5031fa Mon Sep 17 00:00:00 2001 From: Ben Woodcroft <donttrust...@gmail.com> Date: Thu, 31 Dec 2015 09:27:51 +1000 Subject: [PATCH 18/18] gnu: Add ruby-http-cookie. * gnu/packages/ruby.scm (ruby-http-cookie): New variable. --- gnu/packages/ruby.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 8178693..ea10af9 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3373,6 +3373,46 @@ Suffix List.") "https://github.com/knu/ruby-domain_name") (license license:bsd-2))) +(define-public ruby-http-cookie + (package + (name "ruby-http-cookie") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "http-cookie" version)) + (sha256 + (base32 + "0cz2fdkngs3jc5w32a6xcl511hy03a7zdiy988jk1sf3bf5v3hdw")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'add-dependency-to-bundler + (lambda _ + ;; Fix NameError + (substitute* "Rakefile" + (("HTTP::Cookie::VERSION") + "Bundler::GemHelper.gemspec.version")) + #t))))) + (propagated-inputs + `(("ruby-domain-name" ,ruby-domain-name))) + (native-inputs + `(("rubysimplecov" ,ruby-simplecov) + ("bundler" ,bundler) + ("ruby-sqlite3" ,ruby-sqlite3) + ("ruby-test-unit" ,ruby-test-unit))) + (synopsis "Handle HTTP Cookies based on RFC 6265") + (description + "@code{HTTP::Cookie} is a Ruby library to handle HTTP Cookies based on +RFC 6265. It has been designed with security, standards compliance and +compatibility in mind, to behave just the same as today's major web browsers. +It has built-in support for the legacy @code{cookies.txt} and +@code{cookies.sqlite} formats of Mozilla Firefox.") + (home-page + "https://github.com/sparklemotion/http-cookie") + (license license:expat))) + (define-public ruby-ansi (package (name "ruby-ansi") -- 2.6.3