[PATCH] Ruby on Rails (web-application framework)

  • Done
  • quality assurance status badge
Details
5 participants
  • Björn Höfling
  • Gábor Boskovits
  • Ludovic Courtès
  • Christopher Baines
  • swedebugia
Owner
unassigned
Submitted by
Christopher Baines
Severity
normal
Blocked by
C
C
Christopher Baines wrote on 3 Mar 2018 21:55
(address . guix-patches@gnu.org)
87r2p0ri8x.fsf@cbaines.net
Tags: moreinfo

Let's use this bug to track the process of packaging Ruby on Rails.

My current plan is to take chunks of the packages from the wip-rails-2
[1] branch here, check them over, and then send them up for review.

If anyone else wants to join in, that would be great.



Ben Woodcroft (115):
gnu: Add ruby-asciimath.
gnu: Add ruby-asciidoctor.
gnu: Add ruby-rack-test.
gnu: Add ruby-rack-protection.
gnu: Add ruby-contest.
gnu: Add ruby-creole.
gnu: Add ruby-sporkmonger-rack-mount.
gnu: Add ruby-erubis.
gnu: Add ruby-rake.
gnu: Add ruby-ruby-engine.
gnu: Add ruby-sass-spec.
gnu: Add ruby-multi-test.
gnu: Add ruby-yajl-ruby.
gnu: Add ruby-oj.
gnu: Add ruby-multi-json.
gnu: Add ruby-cucumber-wire.
gnu: Add ruby-cucumber.
gnu: Add ruby-cucumber*.
gnu: Add ruby-rspec-its.
gnu: Add ruby-addressable.
gnu: Add ruby-bzip2-ruby.
gnu: Add ruby-aruba.
gnu: Add ruby-aruba*.
gnu: Add ruby-fuubar.
gnu: Add ruby-contracts.
gnu: Add ruby-event-bus.
gnu: Add ruby-childprocess.
gnu: Add ruby-sinatra.
gnu: Add ruby-tilt.
gnu: Add ruby-radius.
gnu: Add ruby-coveralls.
gnu: Add ruby-truthy.
gnu: Add ruby-rest-client.
gnu: Add ruby-webmock.
gnu: Add ruby-crack.
gnu: Add ruby-safe-yaml
gnu: Add ruby-hashie.
gnu: Add ruby-rspec-pending-for.
gnu: Add ruby_version.
gnu: Add ruby-appraisal.
gnu: Add ruby-kramdown..
gnu: Add ruby-prawn.
gnu: Add ruby-pdf-core.
gnu: Add ruby-pdf-reader.
gnu: Add ruby-cane.
gnu: Add ruby-parallel.
gnu: Add ruby-coffee-script.
gnu: Add ruby-coffee-script-source.
gnu: Add ruby-execjs.
gnu: Add duktape.
gnu: Add ruby-duktape.
gnu: Add ruby-therubyracer.
gnu: Add ruby-libv8-3.16.14.
gnu: Add ruby-haml.
gnu: Add ruby-haml-3.
gnu: Add ruby-backports.
gnu: Add ruby-faraday.
gnu: Add ruby-faraday-middleware.
gnu: Add ruby-gh.
gnu: Add ruby-highline.
gnu: Add ruby-launchy.
gnu: Add ruby-travis.
gnu: Add ruby-actioncable.
gnu: Add ruby-actionmailer.
gnu: Add ruby-actionpack.
gnu: Add ruby-actionview.
gnu: Add ruby-activejob.
gnu: Add ruby-activemodel.
gnu: Add ruby-activerecord.
gnu: Add ruby-railties.
gnu: Add ruby-sprockets-rails.
gnu: Add ruby-nio4r.
gnu: Add ruby-websocket-driver.
gnu: Add ruby-mail.
gnu: Add ruby-rails-dom-testing.
gnu: Add ruby-rails-html-sanitizer.
gnu: Add ruby-globalid.
gnu: Add ruby-sprockets.
gnu: Add ruby-websocket-extensions.
gnu: Add ruby-loofah.
gnu: Add ruby-rr.
gnu: Add ruby-rubocop.
gnu: Add ruby-parser.
gnu: Add ruby-powerpack.
gnu: Add ruby-rainbow.
gnu: Add ruby-thread-order.
gnu: Add ruby-ruby-progressbar.
gnu: Add ruby-unicode-display-width.
gnu: Add ruby-ast.
gnu: Add ruby-racc.
gnu: Add ruby-sass-rails.
gnu: Add ruby-uglifier.
gnu: Add ruby-sourcemap.
gnu: Add ruby-coffee-rails.
gnu: Add ruby-jquery-rails.
gnu: Add ruby-turbolinks.
gnu: Add ruby-jbuilder.
gnu: Add ruby-web-console.
gnu: Add ruby-rails.
gnu: Add ruby-sass.
gnu: Add ruby-turbolinks-source.
gnu: Add ruby-ref.
gnu: Add ruby-redjs.
gnu: Add ruby-rubygems.
gnu: Add ruby-heredoc-unindent.
gnu: Add ruby-hashdiff.
gnu: Add ruby-vcr.
gnu: Add ruby-listen.
gnu: Add ruby-listen-3.0.
gnu: Add ruby-ruby-dep.
gnu: Add ruby-rb-inotify.
gnu: Add ruby-guard-rspec.
gnu: Add ruby-guard-compat.
gnu: Add ruby-spring-watcher-listen.
gnu: Add ruby-rspec-spies.

Christopher Baines (17):
gnu: Add ruby-erubi.
gnu: Add ruby-open4.
gnu: Add ruby-hamster.
gnu: Add ruby-lino.
gnu: Add ruby-terraform.
gnu: Add ruby-sucker-punch.
gnu: Add ruby-que.
gnu: Add ruby-autoprefixer-rails.
gnu: Add ruby-bootstrap-sass.
gnu: Add ruby-multi-xml.
gnu: Add ruby-omniauth-oauth2.
gnu: Add ruby-jwt.
gnu: Add ruby-oauth2.
gnu: Add ruby-omniauth.
gnu: Add ruby-warden.
gnu: Add ruby-warden-oauth2.
gnu: Add ruby-rerun.

gnu/packages/javascript.scm | 37 +
gnu/packages/maths.scm | 34 +
.../patches/ruby-coffee-rails-fix-rakefile.patch | 20 +
.../patches/ruby-listen-3.0.8-patch-gemspec.patch | 16 +
.../patches/ruby-listen-patch-gemspec.patch | 16 +
.../ruby-rspec-its-remove-rspec-gemspec.patch | 22 +
.../patches/ruby-therubyracer-fix-gemspec.patch | 16 +
gnu/packages/rails.scm | 500 +++
gnu/packages/ruby.scm | 3331 ++++++++++++++++++++
9 files changed, 3992 insertions(+)
create mode 100644 gnu/packages/patches/ruby-coffee-rails-fix-rakefile.patch
create mode 100644 gnu/packages/patches/ruby-listen-3.0.8-patch-gemspec.patch
create mode 100644 gnu/packages/patches/ruby-listen-patch-gemspec.patch
create mode 100644 gnu/packages/patches/ruby-rspec-its-remove-rspec-gemspec.patch
create mode 100644 gnu/packages/patches/ruby-therubyracer-fix-gemspec.patch
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlqbC95fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9Xe26w/8CBPnD07YER4ehg5jiXOL1m8KOeFXoscNVFw1Kh76ELdFptV9PFHOqvi9
H4HEXS/chcgJusoxtMdfbSYXSgIwN3J32wDrExqin6eB9MZLUozzD+wcel40CXkb
k+JZLzozHmWS5/Rc1oSKxqvKEQVhaZY7I+iGdTC1i36jmKtmHYWPPhZ0dZvZa2nZ
4/LXDNv3y2bDH88OGNSgIXudCh4wmUbz1AXG/gaube1vsVdmQc+zlge2iL9XHKpg
hIzz2uyNcI3yReoVvG8Fmfc2bwKUtpojOWDkLmlI2SZDNVn/Rtywa+10q2rDfBFd
oML4kLRunM1nJvyhFQlhaNOwK9SBneh5psg3+mLtPhaynqOyakTXpeQjumcM9kCP
O44i3IrevARYODAVcr35U6aKmkovAjHbcX1b3QPrw0gdfEKo1TvEueE+4Ze7rfhv
iVSixbOnqJHd4YuBg+gkC95YAk74IyBruDSxevrSxT4JDOH5ozujMbVqaHJS5+mN
cmff2KBBq6+RTxnVEAwSNkKi80+QfcidH0dEKjDn0BF/W/oIkX1ruLHhbR1WWxpc
6wPBvF2RGR8T83kYuBRnh8H7UpbNPscOcnsjYqy3TTEfA//K40z4JDG0L5I8iwS3
O1N8L+zcAWwuZBBtBDbvrypavb3DR3nEctj/HjZ6p7y6ALA4yZo=
=g/uD
-----END PGP SIGNATURE-----

C
C
Christopher Baines wrote on 3 Mar 2018 22:02
[PATCH 01/10] gnu: Add ruby-asciimath.
(address . 30689@debbugs.gnu.org)
20180303210308.15500-1-mail@cbaines.net
From: Ben Woodcroft <donttrustben@gmail.com>

* gnu/packages/maths.scm (ruby-asciimath): New variable.
---
gnu/packages/maths.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 8d0c10697..6cd41278d 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -52,6 +52,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system ocaml)
#:use-module (guix build-system r)
+ #:use-module (guix build-system ruby)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
@@ -1912,6 +1913,34 @@ special functions. It uses Matlab function names where appropriate to simplify
porting.")
(license license:gpl3+)))
+(define-public ruby-asciimath
+ (package
+ (name "ruby-asciimath")
+ (version "1.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "asciimath" version))
+ (sha256
+ (base32
+ "1d80kiph5mc78zps7si1hv48kv4k12mzaq8jk5kb3pqpjdr72qmc"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* _
+ (invoke "rspec" "test/parser_spec.rb"))))))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)))
+ (synopsis "AsciiMath parsing and conversion library")
+ (description
+ "A pure Ruby AsciiMath parsing and conversion library. AsciiMath is an
+easy-to-write markup language for mathematics.")
+ (home-page "https://github.com/pepijnve/asciimath")
+ (license license:expat)))
+
(define-public superlu
(package
(name "superlu")
--
2.16.0
C
C
Christopher Baines wrote on 3 Mar 2018 22:03
[PATCH 04/10] gnu: Add ruby-rack-protection.
(address . 30689@debbugs.gnu.org)
20180303210308.15500-4-mail@cbaines.net
From: Ben Woodcroft <donttrustben@gmail.com>

* gnu/packages/ruby.scm (ruby-rack-protection): New variable.
---
gnu/packages/ruby.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 3f80f636f..57c4e67e2 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3359,6 +3359,35 @@ testing libraries to build on.")
(home-page "https://github.com/rack-test/rack-test")
(license license:expat)))
+(define-public ruby-rack-protection
+ (package
+ (name "ruby-rack-protection")
+ (version "2.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rack-protection" version))
+ (sha256
+ (base32
+ "0ywmgh7x8ljf7jfnq5hmfzki3f803waji3fcvi107w7mlyflbng7"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; Tests missing from the gem
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-rack" ,ruby-rack)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec-2)
+ ("ruby-rack-test" ,ruby-rack-test)))
+ (synopsis "Rack middleware that protects against typical web attacks")
+ (description "Rack middleware that can be used to protect against typical
+web attacks. It can protect all Rack apps, including Rails. For instance, it
+protects against cross site request forgery, cross site scripting,
+clickjacking, directory traversal, session hijacking and IP spoofing.")
+ (home-page "https://github.com/sinatra/sinatra/tree/master/rack-protection")
+ (license license:expat)))
+
(define-public ruby-docile
(package
(name "ruby-docile")
--
2.16.0
C
C
Christopher Baines wrote on 3 Mar 2018 22:03
[PATCH 06/10] gnu: Add ruby-creole.
(address . 30689@debbugs.gnu.org)
20180303210308.15500-6-mail@cbaines.net
From: Ben Woodcroft <donttrustben@gmail.com>

* gnu/packages/ruby.scm (ruby-creole): New variable.
---
gnu/packages/ruby.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index c39dc033b..46676ff23 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3407,6 +3407,27 @@ contexts without performance penalties.")
(home-page "https://github.com/citrusbyte/contest")
(license license:expat)))
+(define-public ruby-creole
+ (package
+ (name "ruby-creole")
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "creole" version))
+ (sha256
+ (base32
+ "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("ruby-bacon" ,ruby-bacon)))
+ (synopsis "Creole markup language converter")
+ (description
+ "Creole is a lightweight markup language and this library for converting
+creole to @code{HTML}.")
+ (home-page "https://github.com/minad/creole")
+ (license license:ruby)))
+
(define-public ruby-docile
(package
(name "ruby-docile")
--
2.16.0
C
C
Christopher Baines wrote on 3 Mar 2018 22:03
[PATCH 02/10] gnu: Add ruby-asciidoctor.
(address . 30689@debbugs.gnu.org)
20180303210308.15500-2-mail@cbaines.net
From: Ben Woodcroft <donttrustben@gmail.com>

* gnu/packages/ruby.scm (ruby-asciidoctor): New variable.
---
gnu/packages/maths.scm | 13 +++++++++----
gnu/packages/ruby.scm | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 44 insertions(+), 4 deletions(-)

Toggle diff (80 lines)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 6cd41278d..5771d128f 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -97,6 +97,7 @@
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages tbb)
#:use-module (gnu packages scheme)
#:use-module (gnu packages shells)
@@ -1926,11 +1927,15 @@ porting.")
"1d80kiph5mc78zps7si1hv48kv4k12mzaq8jk5kb3pqpjdr72qmc"))))
(build-system ruby-build-system)
(arguments
- `(#:phases
+ '(#:phases
(modify-phases %standard-phases
- (replace 'check
- (lambda* _
- (invoke "rspec" "test/parser_spec.rb"))))))
+ ;; Apply this patch
+ ;; https://github.com/asciidoctor/asciimath/commit/1c06fdc8086077f4785479f78b0823a4a72d7948
+ (add-after 'unpack 'patch-remove-spurious-backslashes
+ (lambda _
+ (substitute* "spec/parser_spec.rb"
+ (("\\\\\"")
+ "\"")))))))
(native-inputs
`(("bundler" ,bundler)
("ruby-rspec" ,ruby-rspec)))
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ee5d20955..fbb387e71 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -665,6 +665,41 @@ line of code.")
;; of the Expat license.
(license license:bsd-3)))
+(define-public ruby-asciidoctor
+ (package
+ (name "ruby-asciidoctor")
+ (version "1.5.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "asciidoctor" version))
+ (sha256
+ (base32
+ "1jnf9y8q5asfdzilp8vcqafrc2faj719df4yh1993mh6jd0iqdy4"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:test-target "test:all"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'remove-circular-tests
+ (lambda _
+ ;; Remove tests that require circular dependencies to load or pass.
+ (delete-file "test/invoker_test.rb")
+ (delete-file "test/converter_test.rb")
+ (delete-file "test/options_test.rb")
+ #t)))))
+ (native-inputs
+ `(("ruby-minitest" ,ruby-minitest)
+ ("ruby-nokogiri" ,ruby-nokogiri)
+ ("ruby-asciimath" ,ruby-asciimath)
+ ("ruby-coderay" ,ruby-coderay)))
+ (synopsis "Converter from AsciiDoc content to other formats")
+ (description
+ "Asciidoctor is a text processor and publishing toolchain for converting
+AsciiDoc content to HTML5, DocBook 5 (or 4.5) and other formats.")
+ (home-page "http://asciidoctor.org")
+ (license license:expat)))
+
(define-public ruby-ci-reporter
(package
(name "ruby-ci-reporter")
--
2.16.0
C
C
Christopher Baines wrote on 3 Mar 2018 22:03
[PATCH 09/10] gnu: Add ruby-rake.
(address . 30689@debbugs.gnu.org)
20180303210308.15500-9-mail@cbaines.net
From: Ben Woodcroft <donttrustben@gmail.com>

---
gnu/packages/ruby.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 5f540250b..c377d2595 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4910,3 +4910,24 @@ thing this library does today is convert org-mode files to HTML or Textile or
Markdown.")
(home-page "https://github.com/wallyqs/org-ruby")
(license license:expat)))
+
+(define-public ruby-rake
+ (package
+ (name "ruby-rake")
+ (version "12.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rake" version))
+ (sha256
+ (base32
+ "190p7cs8zdn07mjj6xwwsdna3g0r98zs4crz7jh2j2q5b0nbxgjf"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("bundler" ,bundler)))
+ (synopsis "Rake is a Make-like program implemented in Ruby.")
+ (description
+ "Rake is a Make-like program where tasks and dependencies are specified
+in standard Ruby syntax.")
+ (home-page "https://github.com/ruby/rake")
+ (license license:expat)))
--
2.16.0
C
C
Christopher Baines wrote on 3 Mar 2018 22:03
[PATCH 05/10] gnu: Add ruby-contest.
(address . 30689@debbugs.gnu.org)
20180303210308.15500-5-mail@cbaines.net
From: Ben Woodcroft <donttrustben@gmail.com>

* gnu/packages/ruby.scm (ruby-contest): New variable.
---
gnu/packages/ruby.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 57c4e67e2..c39dc033b 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3388,6 +3388,25 @@ clickjacking, directory traversal, session hijacking and IP spoofing.")
(home-page "https://github.com/sinatra/sinatra/tree/master/rack-protection")
(license license:expat)))
+(define-public ruby-contest
+ (package
+ (name "ruby-contest")
+ (version "0.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "contest" version))
+ (sha256
+ (base32
+ "1p9f2292b7b0fbrcjswvj9v01z7ig5ig52328wyqcabgb553qsdf"))))
+ (build-system ruby-build-system)
+ (synopsis "Write declarative tests using nested contexts")
+ (description
+ "Contest allows writing declarative @code{Test::Unit} tests using nested
+contexts without performance penalties.")
+ (home-page "https://github.com/citrusbyte/contest")
+ (license license:expat)))
+
(define-public ruby-docile
(package
(name "ruby-docile")
--
2.16.0
C
C
Christopher Baines wrote on 3 Mar 2018 22:03
[PATCH 10/10] gnu: Add ruby-ruby-engine.
(address . 30689@debbugs.gnu.org)
20180303210308.15500-10-mail@cbaines.net
From: Ben Woodcroft <donttrustben@gmail.com>

* gnu/packages/ruby.scm (ruby-ruby-engine): New variable.
---
gnu/packages/ruby.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

Toggle diff (58 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index c377d2595..05a78843d 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3715,6 +3715,51 @@ 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-ruby-engine
+ (package
+ (name "ruby-ruby-engine")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "ruby_engine" version))
+ (sha256
+ (base32
+ "1d0sd4q50zkcqhr395wj1wpn2ql52r0fpwhzjfvi1bljml7k546v"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'clean-up
+ (lambda _
+ (delete-file "Gemfile.lock")
+ (substitute* "ruby_engine.gemspec"
+ ;; Remove unnecessary imports that would entail further
+ ;; dependencies.
+ ((".*<rdoc.*") "")
+ ((".*<rubygems-tasks.*") "")
+ ;; Remove extraneous .gem file
+ (("\\\"pkg/ruby_engine-1.0.0.gem\\\",") ""))
+ (substitute* "Rakefile"
+ (("require 'rubygems/tasks'") "")
+ (("Gem::Tasks.new") ""))
+ ;; Remove extraneous .gem file that otherwise gets installed.
+ (delete-file "pkg/ruby_engine-1.0.0.gem")
+ #t)))))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rake" ,ruby-rake)
+ ("ruby-rspec" ,ruby-rspec-2)))
+ (synopsis "Simplifies checking for Ruby implementation")
+ (description
+ "@code{ruby_engine} provides an RubyEngine class that can be used to check
+which implementation of Ruby is in use. It can provide the interpreter name and
+provides query methods such as @{RubyEngine.mri?}.")
+ (home-page
+ "https://github.com/janlelis/ruby_engine")
+ (license license:expat)))
+
(define-public ruby-turn
(package
(name "ruby-turn")
--
2.16.0
C
C
Christopher Baines wrote on 3 Mar 2018 22:03
[PATCH 03/10] gnu: Add ruby-rack-test.
(address . 30689@debbugs.gnu.org)
20180303210308.15500-3-mail@cbaines.net
From: Ben Woodcroft <donttrustben@gmail.com>

* gnu/packages/ruby.scm (ruby-rack-test): New variable.
---
gnu/packages/ruby.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

Toggle diff (44 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index fbb387e71..3f80f636f 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3328,6 +3328,37 @@ into a single method call.")
(home-page "https://rack.github.io/")
(license license:expat)))
+(define-public ruby-rack-test
+ (package
+ (name "ruby-rack-test")
+ (version "0.8.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rack-test" version))
+ (sha256
+ (base32
+ "14ij39zywvr1i9f6jsixfg4zxi2q1m1n1nydvf47f0b6sfc9mv1g"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; Disable tests because of circular dependencies: requires sinatra,
+ ;; which requires rack-protection, which requires rack-test. Instead
+ ;; simply require the library.
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "ruby" "-Ilib" "-r" "rack/test"))))))
+ (propagated-inputs
+ `(("ruby-rack" ,ruby-rack)))
+ (synopsis "Testing API for Rack applications")
+ (description
+ "Rack::Test is a small, simple testing API for Rack applications. It can
+be used on its own or as a reusable starting point for Web frameworks and
+testing libraries to build on.")
+ (home-page "https://github.com/rack-test/rack-test")
+ (license license:expat)))
+
(define-public ruby-docile
(package
(name "ruby-docile")
--
2.16.0
C
C
Christopher Baines wrote on 3 Mar 2018 22:03
[PATCH 08/10] gnu: Add ruby-erubis.
(address . 30689@debbugs.gnu.org)
20180303210308.15500-8-mail@cbaines.net
From: Ben Woodcroft <donttrustben@gmail.com>

* gnu/packages/ruby.scm (ruby-erubis): New variable.
---
gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 688cef710..5f540250b 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -890,6 +890,29 @@ functions.")
(home-page "https://github.com/ahoward/options")
(license license:ruby)))
+(define-public ruby-erubis
+ (package
+ (name "ruby-erubis")
+ (version "2.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "erubis" version))
+ (sha256
+ (base32
+ "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ; tests do not run properly with Ruby 2.0
+ (synopsis "Implementation of embedded Ruby (eRuby)")
+ (description
+ "Erubis is a fast implementation of embedded Ruby (eRuby) with several
+features such as multi-language support, auto escaping, auto trimming spaces
+around @code{<% %>}, a changeable embedded pattern, and Ruby on Rails
+support.")
+ (home-page "http://www.kuwata-lab.com/erubis/")
+ (license license:expat)))
+
(define-public ruby-orderedhash
(package
(name "ruby-orderedhash")
--
2.16.0
C
C
Christopher Baines wrote on 3 Mar 2018 22:03
[PATCH 07/10] gnu: Add ruby-sporkmonger-rack-mount.
(address . 30689@debbugs.gnu.org)
20180303210308.15500-7-mail@cbaines.net
From: Ben Woodcroft <donttrustben@gmail.com>

* gnu/packages/ruby.scm (ruby-sporkmonger-rack-mount): New variable.
---
gnu/packages/ruby.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

Toggle diff (44 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 46676ff23..688cef710 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -700,6 +700,37 @@ AsciiDoc content to HTML5, DocBook 5 (or 4.5) and other formats.")
(home-page "http://asciidoctor.org")
(license license:expat)))
+(define-public ruby-sporkmonger-rack-mount
+ ;; Testing the addressable gem requires a newer commit than that released, so
+ ;; use an up to date version.
+ (let ((revision "1")
+ (commit "076aa2c47d9a4c081f1e9bcb56a826a9e72bd5c3"))
+ (package
+ (name "ruby-sporkmonger-rack-mount")
+ (version (string-append "0.8.3." revision "." commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sporkmonger/rack-mount.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1scx273g3xd93424x9lxc4zyvcp2niknbw5mkz6wkivpf7xsyxdq"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; Tests currently fail so disable them.
+ ;; https://github.com/sporkmonger/rack-mount/pull/1
+ `(#:tests? #f))
+ (propagated-inputs `(("ruby-rack" ,ruby-rack)))
+ (synopsis "Stackable dynamic tree based Rack router")
+ (description
+ "@code{Rack::Mount} supports Rack's @code{X-Cascade} convention to
+continue trying routes if the response returns pass. This allows multiple
+routes to be nested or stacked on top of each other.")
+ (home-page "https://github.com/sporkmonger/rack-mount")
+ (license license:expat))))
+
(define-public ruby-ci-reporter
(package
(name "ruby-ci-reporter")
--
2.16.0
G
G
Gábor Boskovits wrote on 3 Mar 2018 22:13
Re: [PATCH] Ruby on Rails (web-application framework)
(name . Christopher Baines)(address . mail@cbaines.net)
CAE4v=pguJQYiJYkrUXYiZ1QoEoCLrKSt89q7pwafXG-p0bpc=g@mail.gmail.com
2018-03-03 21:55 GMT+01:00 Christopher Baines <mail@cbaines.net>:

Toggle quote (10 lines)
> Tags: moreinfo
>
> Let's use this bug to track the process of packaging Ruby on Rails.
>
> My current plan is to take chunks of the packages from the wip-rails-2
> [1] branch here, check them over, and then send them up for review.
>
> If anyone else wants to join in, that would be great.
>
>
This would be great! Actually I would really like to see redmine on GuixSD
:)
Please keep me in line. I'm willing to help. Should I join in taking the
packages
or just the review?


Toggle quote (160 lines)
>
>
> Ben Woodcroft (115):
> gnu: Add ruby-asciimath.
> gnu: Add ruby-asciidoctor.
> gnu: Add ruby-rack-test.
> gnu: Add ruby-rack-protection.
> gnu: Add ruby-contest.
> gnu: Add ruby-creole.
> gnu: Add ruby-sporkmonger-rack-mount.
> gnu: Add ruby-erubis.
> gnu: Add ruby-rake.
> gnu: Add ruby-ruby-engine.
> gnu: Add ruby-sass-spec.
> gnu: Add ruby-multi-test.
> gnu: Add ruby-yajl-ruby.
> gnu: Add ruby-oj.
> gnu: Add ruby-multi-json.
> gnu: Add ruby-cucumber-wire.
> gnu: Add ruby-cucumber.
> gnu: Add ruby-cucumber*.
> gnu: Add ruby-rspec-its.
> gnu: Add ruby-addressable.
> gnu: Add ruby-bzip2-ruby.
> gnu: Add ruby-aruba.
> gnu: Add ruby-aruba*.
> gnu: Add ruby-fuubar.
> gnu: Add ruby-contracts.
> gnu: Add ruby-event-bus.
> gnu: Add ruby-childprocess.
> gnu: Add ruby-sinatra.
> gnu: Add ruby-tilt.
> gnu: Add ruby-radius.
> gnu: Add ruby-coveralls.
> gnu: Add ruby-truthy.
> gnu: Add ruby-rest-client.
> gnu: Add ruby-webmock.
> gnu: Add ruby-crack.
> gnu: Add ruby-safe-yaml
> gnu: Add ruby-hashie.
> gnu: Add ruby-rspec-pending-for.
> gnu: Add ruby_version.
> gnu: Add ruby-appraisal.
> gnu: Add ruby-kramdown..
> gnu: Add ruby-prawn.
> gnu: Add ruby-pdf-core.
> gnu: Add ruby-pdf-reader.
> gnu: Add ruby-cane.
> gnu: Add ruby-parallel.
> gnu: Add ruby-coffee-script.
> gnu: Add ruby-coffee-script-source.
> gnu: Add ruby-execjs.
> gnu: Add duktape.
> gnu: Add ruby-duktape.
> gnu: Add ruby-therubyracer.
> gnu: Add ruby-libv8-3.16.14.
> gnu: Add ruby-haml.
> gnu: Add ruby-haml-3.
> gnu: Add ruby-backports.
> gnu: Add ruby-faraday.
> gnu: Add ruby-faraday-middleware.
> gnu: Add ruby-gh.
> gnu: Add ruby-highline.
> gnu: Add ruby-launchy.
> gnu: Add ruby-travis.
> gnu: Add ruby-actioncable.
> gnu: Add ruby-actionmailer.
> gnu: Add ruby-actionpack.
> gnu: Add ruby-actionview.
> gnu: Add ruby-activejob.
> gnu: Add ruby-activemodel.
> gnu: Add ruby-activerecord.
> gnu: Add ruby-railties.
> gnu: Add ruby-sprockets-rails.
> gnu: Add ruby-nio4r.
> gnu: Add ruby-websocket-driver.
> gnu: Add ruby-mail.
> gnu: Add ruby-rails-dom-testing.
> gnu: Add ruby-rails-html-sanitizer.
> gnu: Add ruby-globalid.
> gnu: Add ruby-sprockets.
> gnu: Add ruby-websocket-extensions.
> gnu: Add ruby-loofah.
> gnu: Add ruby-rr.
> gnu: Add ruby-rubocop.
> gnu: Add ruby-parser.
> gnu: Add ruby-powerpack.
> gnu: Add ruby-rainbow.
> gnu: Add ruby-thread-order.
> gnu: Add ruby-ruby-progressbar.
> gnu: Add ruby-unicode-display-width.
> gnu: Add ruby-ast.
> gnu: Add ruby-racc.
> gnu: Add ruby-sass-rails.
> gnu: Add ruby-uglifier.
> gnu: Add ruby-sourcemap.
> gnu: Add ruby-coffee-rails.
> gnu: Add ruby-jquery-rails.
> gnu: Add ruby-turbolinks.
> gnu: Add ruby-jbuilder.
> gnu: Add ruby-web-console.
> gnu: Add ruby-rails.
> gnu: Add ruby-sass.
> gnu: Add ruby-turbolinks-source.
> gnu: Add ruby-ref.
> gnu: Add ruby-redjs.
> gnu: Add ruby-rubygems.
> gnu: Add ruby-heredoc-unindent.
> gnu: Add ruby-hashdiff.
> gnu: Add ruby-vcr.
> gnu: Add ruby-listen.
> gnu: Add ruby-listen-3.0.
> gnu: Add ruby-ruby-dep.
> gnu: Add ruby-rb-inotify.
> gnu: Add ruby-guard-rspec.
> gnu: Add ruby-guard-compat.
> gnu: Add ruby-spring-watcher-listen.
> gnu: Add ruby-rspec-spies.
>
> Christopher Baines (17):
> gnu: Add ruby-erubi.
> gnu: Add ruby-open4.
> gnu: Add ruby-hamster.
> gnu: Add ruby-lino.
> gnu: Add ruby-terraform.
> gnu: Add ruby-sucker-punch.
> gnu: Add ruby-que.
> gnu: Add ruby-autoprefixer-rails.
> gnu: Add ruby-bootstrap-sass.
> gnu: Add ruby-multi-xml.
> gnu: Add ruby-omniauth-oauth2.
> gnu: Add ruby-jwt.
> gnu: Add ruby-oauth2.
> gnu: Add ruby-omniauth.
> gnu: Add ruby-warden.
> gnu: Add ruby-warden-oauth2.
> gnu: Add ruby-rerun.
>
> gnu/packages/javascript.scm | 37 +
> gnu/packages/maths.scm | 34 +
> .../patches/ruby-coffee-rails-fix-rakefile.patch | 20 +
> .../patches/ruby-listen-3.0.8-patch-gemspec.patch | 16 +
> .../patches/ruby-listen-patch-gemspec.patch | 16 +
> .../ruby-rspec-its-remove-rspec-gemspec.patch | 22 +
> .../patches/ruby-therubyracer-fix-gemspec.patch | 16 +
> gnu/packages/rails.scm | 500 +++
> gnu/packages/ruby.scm | 3331
> ++++++++++++++++++++
> 9 files changed, 3992 insertions(+)
> create mode 100644 gnu/packages/patches/ruby-coffee-rails-fix-rakefile.
> patch
> create mode 100644 gnu/packages/patches/ruby-listen-3.0.8-patch-gemspec.
> patch
> create mode 100644 gnu/packages/patches/ruby-listen-patch-gemspec.patch
> create mode 100644 gnu/packages/patches/ruby-rspec-its-remove-rspec-
> gemspec.patch
> create mode 100644 gnu/packages/patches/ruby-
> therubyracer-fix-gemspec.patch
>
Attachment: file
C
C
Christopher Baines wrote on 3 Mar 2018 22:48
(name . Gábor Boskovits)(address . boskovits@gmail.com)
87a7vorftz.fsf@cbaines.net
Gábor Boskovits <boskovits@gmail.com> writes:

Toggle quote (18 lines)
> 2018-03-03 21:55 GMT+01:00 Christopher Baines <mail@cbaines.net>:
>
>> Tags: moreinfo
>>
>> Let's use this bug to track the process of packaging Ruby on Rails.
>>
>> My current plan is to take chunks of the packages from the wip-rails-2
>> [1] branch here, check them over, and then send them up for review.
>>
>> If anyone else wants to join in, that would be great.
>>
>>
> This would be great! Actually I would really like to see redmine on GuixSD
> :)
> Please keep me in line. I'm willing to help. Should I join in taking the
> packages
> or just the review?

Either would be great, I've send through patches for the first few
packages for review already.

If you do look at working on the packages, just make sure to keep this
bug up to date.

Thanks,

Chris
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlqbGBhfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9Xdk3w//bjKcTPVO8DJh66zmUpJjvhUGIG+jTh+fw4a5xwM8o0hBE9GV3ygFECFS
3oM8u37kDPx1BtuNUVyBpB3m5ExNDQ5sDf/U5Q8Hwf/Zva3MJLZYODPRPN6Dxtpb
C1oNj9JTRmzVoVs4QYhSOzi0AQy6Ueuiz0OuS0aFWpqRtxs7/ZtzlR5R9DolOF/4
fRGRaRwcCt/0Vm4um+x8KpDLxR1TlOQVRZOb0gM/O5Fm7TuIw2YKgcfWbjtt4Ix4
doZEvQDNagNM869r9YYCljGC/BcyMx5zeo8jZws/xGyzVaoF0XAhg1yCyV8ur6Td
EqA+eT/FTTPpt6YXfsET2BL20SQtIe8VkWIWag46KgXwbmgNRhAWDrT2PDvpUrco
m2NMq0cqi6zNR2PNJds43pOu2XZbiQMfRdl9JnX1Ot42WH0GrEmXQ5iA453isXLj
vrf06SviL/J71O7vobBgMBnM9NsG2KCOURvFUM98WEFAreuFB1LPg7AnBnLey34i
BfwRSz2KgOhpoJnsdWqqYieDKNbwQZXzBL0Gb4e1RlFjjLspnkywUqNSSmLtpGry
AnQwedKyWK7++RY0QpMiv9IHlik9E14KdSu1ooJzwT5SgZAuv/iCmgAxpqrN0Dq+
n+sFZ8Gim9Lq4aMzbXp0WJfOEMCB01Vm385pZ3McPq9I1pIXmFA=
=7gvq
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 5 Mar 2018 10:22
(name . Christopher Baines)(address . mail@cbaines.net)(address . 30689@debbugs.gnu.org)
87lgf6dghi.fsf@gnu.org
Hi Chris,

Christopher Baines <mail@cbaines.net> skribis:

Toggle quote (7 lines)
> Let's use this bug to track the process of packaging Ruby on Rails.
>
> My current plan is to take chunks of the packages from the wip-rails-2
> [1] branch here, check them over, and then send them up for review.
>
> If anyone else wants to join in, that would be great.

Since probably few people will feel like reviewing each individual
package, I suppose you can push them once they’re ready, pass ‘guix
lint’, and generally work.

What will matter most I suppose is testing complete RoR setups. Maybe
that’s where others can help more easily?

Thanks to you and to Ben for all of this!

Ludo’.
C
C
Christopher Baines wrote on 5 Mar 2018 20:20
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 30689@debbugs.gnu.org)
87fu5epbvy.fsf@cbaines.net
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (20 lines)
> Hi Chris,
>
> Christopher Baines <mail@cbaines.net> skribis:
>
>> Let's use this bug to track the process of packaging Ruby on Rails.
>>
>> My current plan is to take chunks of the packages from the wip-rails-2
>> [1] branch here, check them over, and then send them up for review.
>>
>> If anyone else wants to join in, that would be great.
>
> Since probably few people will feel like reviewing each individual
> package, I suppose you can push them once they’re ready, pass ‘guix
> lint’, and generally work.
>
> What will matter most I suppose is testing complete RoR setups. Maybe
> that’s where others can help more easily?
>
> Thanks to you and to Ben for all of this!

So I've successfully managed to get a Rails app up and running just
using Guix packages, without Bundler, and I think without Rubygems. It
wasn't too difficult, although I still don't fully understand the
relationship between Bundler and Rails.

Once everything is in Guix, I might write a blog post or put up an
example of the "Getting Started with Rails" guide, but using Guix where
appropriate. I'm not sure if this would be appropriate to have on the
Guix blog?

Also, as a more general point, I feel that it would be useful having
some documentation on the packages in Guix, especially for documenting
the individual expected differences when using a package from Guix over
other approaches. I don't know if this is something that would be
appropriate to put in the manual?

Thanks,

Chris
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlqdmJFfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9XdOhhAAqZfzs+pHQi3FCQ+OAhH3XoMpSMqDJxQ2lT/gTFVSAH2LDmujlZYk8c3v
ca6RoQ8n5M42JLOPs0Q9IU4T04hABGoPhszFqcRtxt6HxSTdQFFxRhKnZebuZBhI
JiK2EJAPwBMUPyxuuUECr7H4f6CI0nEuD2femhhwFD5HhXoY0CAOaR9n8Fey20KA
DeLigpnNFGWNSjd90yiO0ksaOVoOWrGEX6CTJmlZqqBo5Pd+MDWZZK533mq1ovmM
gczUjtIoWBNJB3s0XGMWSTROV1d39lNNsQAuaY7+nLnOHNZAswL4ytI4giOMkrNB
EYavEFFD0E6Kr2nRwpNG4zBhjjUGPIuCE6Lwq9+RWnBaNleRkpUoK1JMpfHpXgGa
q+dNXZdZXYhA6XDy2Ne8RpkJSIojnlc7oYMvCbWlwHd0dEJH1djiTs8sus+aaHsP
rTrWB7WcMKrmnSkRGsvIqQZ3F3C6SOL1LqH5Sm40Gp5CX3L+QA3LGdVI/CZHyGiK
xIREfVS5TESgZpsNaM/tSiUpkgPvfZiGa+UmQDfoz1Lea7szNDMvuClp1o5cZjNk
XP2KIKBEojWxOV0yiQzZbNG/nDRXR3piA2LlwppRwo0SN2lBoNaDYItztrjFgPh8
LUc1dXos/PW21HSnXlQMavvEBXwJGUhaFXitXCrT6VHhkzHznyg=
=/gsj
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 6 Mar 2018 11:26
(name . Christopher Baines)(address . mail@cbaines.net)(address . 30689@debbugs.gnu.org)
87zi3lxzwt.fsf@gnu.org
Hello Chris,

Christopher Baines <mail@cbaines.net> skribis:

Toggle quote (5 lines)
> So I've successfully managed to get a Rails app up and running just
> using Guix packages, without Bundler, and I think without Rubygems. It
> wasn't too difficult, although I still don't fully understand the
> relationship between Bundler and Rails.

Awesome!

Toggle quote (5 lines)
> Once everything is in Guix, I might write a blog post or put up an
> example of the "Getting Started with Rails" guide, but using Guix where
> appropriate. I'm not sure if this would be appropriate to have on the
> Guix blog?

I guess you could focus on using Guix to develop Rails applications, and
it would make a lot of sense as a blog post!

Toggle quote (6 lines)
> Also, as a more general point, I feel that it would be useful having
> some documentation on the packages in Guix, especially for documenting
> the individual expected differences when using a package from Guix over
> other approaches. I don't know if this is something that would be
> appropriate to put in the manual?

I think it would make sense to have sections like “Developing in
language X or framework Y with Guix”. It would be useful because it
would answer probably some of the main questions for newcomers (“how do
I need to adjust my workflow when I switch to Guix?”).

Cheers,
Ludo’.
C
C
Christopher Baines wrote on 18 Mar 2018 19:53
Ruby on Rails
(address . 30689@debbugs.gnu.org)
87fu4xdxm8.fsf@cbaines.net
I've pushed a few patches now. I've kept the committer as Ben, which I
hope is ok with him. I forgot to add a Signed off by line, but I'll try
to remember to do so in the future.

For some gems that are not necessary for rails, I've moved them in to
another branch (wip-rails-extra-packages) [2]. I'm hoping to send the
packages in the (wip-rails-gemset2) branch up for review next, as soon
as I've got around to working through them.

-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlqutY9fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9Xf2iRAAtN17yZWYJffSu42IxmiYi7bP7PbrXwF6jPzxB3EM74kFHm5hfrA8j3XM
dXHNkNkzRTvNvdjJ35oIFTqib8jy6TNxmjVMtAKAvD0uxHyvMe72pVLuHNJpx8Af
eu1co7kEJP+nv/tqns9apPilVxdLkqWZAiHj0qqVcCNx1slhIDxfjEYUIo1hkAUK
IPaqxS7OhQefvTndTWm5Gc2X89EFdIMMm8wH8YZlqbTqtkVYOu6ChHKBcP7oAzR4
Bzerf/LTNKSDoYWlQprm08ULYsMB7amc0VuFS6H10SsMn2dZ/BX8XWxaBnGhW9wP
SPg3UxnR1YPqQXoMWM97KAAk2UoeB11lW0O/5/5vItU13sSGQ1vUudSFGyU/v4ga
SPZlxmmhNljgwhntktiJL706mqvmZY5uRaEVd02vPh2xL2nUr6rT+gtvOuDBBIfZ
JmW8+Q+uGuUMNmXjGnML4TNLCuDlG5cABVOOycY4yTCIVIvNZyp8VmtJjZU/b5HW
YHV9N2Gz3dm1+nCaoMeZDLVRIsWuQoEw8eDu7TaIY3PoR6yiREJfhd+gIh6MafyN
w05XgIMrWoDNK/oGq51wunrLp9wdDaY51ea4AwRUV52QXVC59JLPzcafnqfGz9Uu
pDHYbZZTKvVSS8B6g+ZGD982tt7vVbn0CCzqAIB8T6FCvP0w2Ak=
=zYHk
-----END PGP SIGNATURE-----

C
C
Christopher Baines wrote on 12 Oct 2018 09:19
control message for bug #30689
(address . control@debbugs.gnu.org)
87h8hr639r.fsf@cbaines.net
block 30689 by 32964
C
C
Christopher Baines wrote on 12 Oct 2018 09:22
(address . control@debbugs.gnu.org)
87ftxb6349.fsf@cbaines.net
block 30689 by 32370
S
S
swedebugia wrote on 21 Dec 2018 21:46
[bug#30689] Ruby on Rails
35b65007-9da2-1374-7dd3-d271c3103b2e@riseup.net
Hi.

What is the status on getting RoR into guix?
--
Cheers
Swedebugia
C
C
Christopher Baines wrote on 27 Jan 2019 18:09
control message for bug #30689
(address . control@debbugs.gnu.org)
87womqgh8q.fsf@cbaines.net
block 30689 by 34222 34217
C
C
Christopher Baines wrote on 28 Jan 2019 18:28
[PATCH 00/39] Add ruby-rails and depedencies.
(address . 30689@debbugs.gnu.org)
87h8dshesk.fsf@cbaines.net
These patches add the ruby-rails gem and it's dependencies. Along with
updating and improving some related packages along the way.

These patches probably depend on both [1] and [2].



Christopher Baines (39):
gnu: Add ruby-maruku.
gnu: ruby-minitest: Update to 5.11.3.
gnu: Add ruby-minitest-reporters.
gnu: ruby-public-suffix: Enable tests.
gnu: Add ruby-idn-ruby.
gnu: ruby-addressable: Enable tests and update.
gnu: Add ruby_version.
gnu: Add ruby-mysql2.
gnu: Add ruby-bump.
gnu: ruby-activesupport: Update to 5.2.2.
gnu: Add ruby-activemodel.
gnu: ruby-arel: Update to 9.0.0.
gnu: Add ruby-activerecord.
gnu: Add ruby-rspec-rerun.
gnu: ruby-parallel: Begin to enable tests and update version.
gnu: Add ruby-prawn-manual-builder.
gnu: ruby-prawn-table: Begin to enable tests.
gnu: Add ruby-faraday.
gnu: Add ruby-rr.
gnu: Add ruby-crass.
gnu: Add ruby-loofah.
gnu: Add ruby-rails-html-sanitizer.
gnu: Add ruby-rails-dom-testing.
gnu: Add ruby-erubi.
gnu: Add ruby-actionview.
gnu: Add ruby-actionpack.
gnu: Add ruby-websocket-extensions.
gnu: Add ruby-websocket-driver.
gnu: Add ruby-nio4r.
gnu: Add ruby-actioncable.
gnu: Add ruby-globalid.
gnu: Add ruby-activejob.
gnu: Add ruby-actionmailer.
gnu: Add ruby-railties.
gnu: Add ruby-sprockets.
gnu: Add ruby-sprockets-rails.
gnu: Add ruby-marcel.
gnu: Add ruby-activestorage.
gnu: Add ruby-rails.

gnu/packages/rails.scm | 372 +++++++++++++++++++++
gnu/packages/ruby.scm | 740 +++++++++++++++++++++++++++++++++++++++--
2 files changed, 1089 insertions(+), 23 deletions(-)
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlxPO9tfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9XfVaRAAjgU9Z3BLZCEehIA+rbCvTAwjwZekC4z4VmJryowk8k/4NBMHg1Yt6HT5
ZV1+l0d/q5HAezmhJpRFDkzYzTKVe2UtlkLOnCoYnNBsvZ4EZwJsDBWXKWvA6hLa
FOjVw3LkzU8cX3V+y/QwKsZazJvtH7+Lgk4nKxpX2X47QFRtLA1V0j+mkYxdIFy5
CvHD0PVZ/wDKh4mqIlsBM4iilcBpl4hm2Bz3cTeYCGaMbGSLcnMa860zJmtZgvnM
uXTM6JyYkZaPH12x+GMYEfR58dBfwjoyWcrHPPKrAEIQXLef0zBIfJUE+hXuepiL
xEMQko7wOmRVI/oksRZNK/cuG++boN6ww1PVZkR7Mu3UFLvc1Se2NcmvpZKlLZf2
kHAc8B5iXSo6v6EunX4uEsqI48HI/Q8BMY8Dw4sA4W05RQfx+DYsLqilzczNBOi2
2XDgcxjS4PC+wOuyCSENwatFm2j7drQs4VnDZCWApoxCRuvUtpUitpZYKxipq73W
xcLUN5BDHY1y0QiIXr6VSM5iQbrk7IjDQZT3UkIMZ0aFtyK/zCkOWxsNkyvIGbmn
Uz5liaTYnmujVZbgsR2dGiFSZcENsJhaxgV1nDkkghFaKBWH13iQ7rGDjOMNo7MW
j3XeFfXxuvk0JHQirxk0L/hTzPidx0z5SI/s3QNjdszs/O1ME3U=
=hkjQ
-----END PGP SIGNATURE-----

C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 05/39] gnu: Add ruby-idn-ruby.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-5-mail@cbaines.net
Required for the ruby-addressable tests.

* gnu/packages/ruby.scm (ruby-idn-ruby): New variable.
---
gnu/packages/ruby.scm | 45 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

Toggle diff (65 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 57f7108b66..ed31ef1bdc 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -40,6 +40,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages java)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages libidn)
#:use-module (gnu packages maths)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
@@ -1993,6 +1994,50 @@ irb's last-word approach.")
(home-page "http://tagaholic.me/bond/")
(license license:expat)))
+(define-public ruby-idn-ruby
+ (package
+ (name "ruby-idn-ruby")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "idn-ruby" version))
+ (sha256
+ (base32
+ "07vblcyk3g72sbq12xz7xj28snpxnh3sbcnxy8bglqbfqqhvmawr"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'run-extconf.rb
+ (lambda _
+ (with-directory-excursion "ext"
+ (invoke "ruby" "extconf.rb")
+ (invoke "make"))
+ #t))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (apply invoke
+ "ruby" "--verbose" "-Iext"
+ (find-files "./test" ".*\\.rb")))
+ #t)))))
+ (inputs
+ `(("libidn" ,libidn)))
+ (synopsis "Ruby Bindings for the GNU LibIDN library")
+ (description
+ "Ruby Bindings for the GNU LibIDN library, an implementation of the
+Stringprep, Punycode and IDNA specifications. These are used to encode and
+decode internationalized domain + names according to the IDNA2003
+specifications.
+
+Included are the most important parts of the Stringprep, Punycode and IDNA
+APIs like performing Stringprep processings, encoding to and decoding from
+Punycode strings and converting entire domain names to and from the ACE
+encoded form.")
+ (home-page "https://github.com/deepfryed/idn-ruby")
+ (license license:asl2.0)))
+
(define-public ruby-instantiator
(package
(name "ruby-instantiator")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 03/39] gnu: Add ruby-minitest-reporters.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-3-mail@cbaines.net
Required for ruby-public-suffix tests.

* gnu/packages/ruby.scm (ruby-minitest-reporters): New variable.
---
gnu/packages/ruby.scm | 45 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

Toggle diff (58 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 877cd6f373..ebd36df9b3 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2445,6 +2445,51 @@ instance, it provides @code{assert_true}, @code{assert_false} and
(home-page "https://github.com/halostatue/minitest-bonus-assertions")
(license license:expat)))
+(define-public ruby-minitest-reporters
+ (package
+ (name "ruby-minitest-reporters")
+ (version "1.3.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "minitest-reporters" version))
+ (sha256
+ (base32
+ "1a3das80rwgys5rj48i5ly144nvszyqyi748bk9bss74jblcf5ay"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; Remove the requirement on Rubocop, as it isn't useful to run, and
+ ;; including it as an input can lead to circular dependencies.
+ (add-after 'unpack 'remove-rubocop-from-Rakefile
+ (lambda _
+ (substitute* "Rakefile"
+ (("require 'rubocop/rake\\_task'") "")
+ (("RuboCop::RakeTask\\.new\\(:rubocop\\)") "[].each"))
+ #t))
+ (add-after 'extract-gemspec 'remove-rubocop-from-gemspec
+ (lambda _
+ (substitute* "minitest-reporters.gemspec"
+ ((".*%q<rubocop>.*") "\n"))
+ #t)))))
+ (propagated-inputs
+ `(("ruby-ansi" ,ruby-ansi)
+ ("ruby-builder" ,ruby-builder)
+ ("ruby-minitest" ,ruby-minitest)
+ ("ruby-ruby-progressbar" ,ruby-ruby-progressbar)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-maruku" ,ruby-maruku)))
+ (synopsis "Enhanced reporting for Minitest tests")
+ (description
+ "@code{minitest/reporters} provides a custom Minitest runner to improve
+how the test state is reported. A number of different reporters are
+available, including a spec reporter, progress bar reporter, a HTML
+reporter.")
+ (home-page "https://github.com/kern/minitest-reporters")
+ (license license:expat)))
+
(define-public ruby-minitest-rg
(package
(name "ruby-minitest-rg")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 15/39] gnu: ruby-parallel: Begin to enable tests and update version.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-15-mail@cbaines.net
* gnu/packages/ruby.scm (ruby-parallel): Update to 1.13.0.
[source]: Switch to the Git repository.
[arguments]: Change the #:test-target, and modify some phases.
[native-inputs]: Add packages required for running the tests.
---
gnu/packages/ruby.scm | 62 +++++++++++++++++++++++++++++++++++++------
1 file changed, 54 insertions(+), 8 deletions(-)

Toggle diff (88 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 4c21c8c04a..8e2c18933e 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -36,11 +36,14 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages dbm)
+ #:use-module (gnu packages rails)
#:use-module (gnu packages readline)
#:use-module (gnu packages autotools)
#:use-module (gnu packages java)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libidn)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages lsof)
#:use-module (gnu packages maths)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
@@ -6638,15 +6641,58 @@ interface. It allows Jekyll to rebuild your site when a file changes.")
(define-public ruby-parallel
(package
(name "ruby-parallel")
- (version "1.12.1")
- (source (origin
- (method url-fetch)
- (uri (rubygems-uri "parallel" version))
- (sha256
- (base32
- "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67"))))
+ (version "1.13.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/grosser/parallel.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1isqzbqxz2ndad4i5z3lb9ldrhaijfncj8bmffv04sq44sv87ikv"))))
(build-system ruby-build-system)
- (arguments `(#:tests? #f)); No rakefile
+ (arguments
+ `(;; TODO 3 test failures
+ ;; rspec ./spec/parallel_spec.rb:190 # Parallel.in_processes does not
+ ;; open unnecessary pipes
+ ;; rspec './spec/parallel_spec.rb[1:9:7]' # Parallel.each works with
+ ;; SQLite in processes
+ ;; rspec './spec/parallel_spec.rb[1:9:16]' # Parallel.each works with
+ ;; SQLite in threads
+ #:tests? #f
+ #:test-target "rspec-rerun:spec"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-Gemfile
+ (lambda _
+ (substitute* "Gemfile"
+ (("gem 'rspec-legacy_formatters'") "")
+ (("gem 'activerecord.*$") "gem 'activerecord'\n"))))
+ (add-before 'check 'delete-Gemfile.lock
+ (lambda _
+ ;; Bundler isn't being used for fetching dependendencies, so
+ ;; delete the Gemfile.lock
+ (delete-file "Gemfile.lock")
+ #t))
+ (add-before 'build 'patch-gemspec
+ (lambda _
+ (substitute* "parallel.gemspec"
+ (("git ls-files") "find"))
+ #t)))))
+ (native-inputs
+ `(("ruby-rspec" ,ruby-rspec)
+ ("ruby-rspec-rerun" ,ruby-rspec-rerun)
+ ("bundler" ,bundler)
+ ("ruby-activerecord" ,ruby-activerecord)
+ ("ruby-ruby-progressbar" ,ruby-ruby-progressbar)
+ ("ruby-bump" ,ruby-bump)
+ ("procps" ,procps)
+ ("lsof" ,lsof)
+ ("ruby-mysql2" ,ruby-mysql2)
+ ("ruby-sqlite3" ,ruby-sqlite3)
+ ("ruby-i18n" ,ruby-i18n)))
(home-page "https://github.com/grosser/parallel")
(synopsis "Parallel processing in Ruby")
(description "Parallel allows you to run any code in parallel Processes
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 16/39] gnu: Add ruby-prawn-manual-builder.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-16-mail@cbaines.net
Required for the ruby-prawn-table tests.

* gnu/packages/ruby.scm (ruby-prawn-manual-builder): New variable.
---
gnu/packages/ruby.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

Toggle diff (47 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 8e2c18933e..b9ddaa6eb3 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3065,6 +3065,40 @@ for select languages.")
(home-page "https://github.com/whitequark/parser")
(license license:expat)))
+(define-public ruby-prawn-manual-builder
+ (package
+ (name "ruby-prawn-manual-builder")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "prawn-manual_builder" version))
+ (sha256
+ (base32
+ "0wbjnkqp55p5wmz85ldypcray223glckd209hmdxhnzk8s5pb3za"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'extract-gemspec 'patch-gemspec
+ (lambda _
+ (substitute* ".gemspec"
+ ;; Loosen the requirement for pdf-inspector
+ (("~> 1\\.0\\.7") ">= 0")))))))
+ (propagated-inputs
+ `(("ruby-coderay" ,ruby-coderay)))
+ (synopsis "Tool for writing manuals for Prawn and Prawn accessories")
+ (description
+ "This package provides a tool for writing manuals for Prawn and Prawn
+accessories")
+ (home-page "https://github.com/prawnpdf/prawn-manual_builder")
+ (license (list
+ ;; GPLv2 or GPLv3 or custom license described in LICENSE file
+ license:gpl2
+ license:gpl3))))
+
(define-public ruby-progress_bar
(package
(name "ruby-progress_bar")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 13/39] gnu: Add ruby-activerecord.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-13-mail@cbaines.net
* gnu/packages/rails.scm (ruby-activerecord): New variable.
---
gnu/packages/rails.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 80329a3c5b..a9dae594a5 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -118,3 +118,29 @@ Active Record. ActiveSupport handles attributes, callbacks, validations,
serialization, internationalization, and testing.")
(home-page "https://rubyonrails.org/")
(license license:expat)))
+
+(define-public ruby-activerecord
+ (package
+ (name "ruby-activerecord")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "activerecord" version))
+ (sha256
+ (base32
+ "19a0sns6a5wz2wym25lb1dv4lbrrl5sd1n15s5ky2636znmhz30y"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-activemodel" ,ruby-activemodel)
+ ("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-arel" ,ruby-arel)))
+ (synopsis "Ruby library to connect to relational databases")
+ (description
+ "Active Record connects classes to relational database table to establish
+an almost zero-configuration persistence layer for applications.")
+ (home-page "https://rubyonrails.org")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 18/39] gnu: Add ruby-faraday.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-18-mail@cbaines.net
* gnu/packages/ruby.scm (ruby-faraday): New variable.
---
gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 12d83a678a..0046447748 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7246,3 +7246,26 @@ Pathname.")
(description "The Pagination Generator forms the core of the pagination
logic in Jekyll. It calculates and generates the pagination pages.")
(license license:expat)))
+
+(define-public ruby-faraday
+ (package
+ (name "ruby-faraday")
+ (version "0.15.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "faraday" version))
+ (sha256
+ (base32
+ "0s72m05jvzc1pd6cw1i289chas399q0a14xrwg4rvkdwy7bgzrh0"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f))
+ (propagated-inputs
+ `(("ruby-multipart-post" ,ruby-multipart-post)))
+ (synopsis "Ruby HTTP/REST API client library")
+ (description
+ "Faraday is a HTTP/REST API client library which provides a common
+interface over different adapters.")
+ (home-page "https://github.com/lostisland/faraday")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 20/39] gnu: Add ruby-crass.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-20-mail@cbaines.net
Required for upgrading ruby-loofah.

* gnu/packages/ruby.scm (ruby-crass): New variable.
---
gnu/packages/ruby.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b760cc0fc1..a2ec683ce9 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -918,6 +918,24 @@ code in Merb and Rails.")
(home-page "https://github.com/jnunemaker/crack")
(license license:expat)))
+(define-public ruby-crass
+ (package
+ (name "ruby-crass")
+ (version "1.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "crass" version))
+ (sha256
+ (base32
+ "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"))))
+ (build-system ruby-build-system)
+ (synopsis "Pure Ruby CSS parser based on CSS Syntax Level 3")
+ (description
+ "Crass is a pure Ruby CSS parser based on the CSS Syntax Level 3 spec.")
+ (home-page "https://github.com/rgrove/crass/")
+ (license license:expat)))
+
(define-public ruby-cliver
(package
(name "ruby-cliver")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 07/39] gnu: Add ruby_version.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-7-mail@cbaines.net
Required for ruby-rspec-pending-for.

* gnu/packages/ruby.scm (ruby_version): New variable.
---
gnu/packages/ruby.scm | 47 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)

Toggle diff (60 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 7b6c56b4ef..19c0734fc9 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5186,6 +5186,53 @@ display width of strings in Ruby.")
(home-page "https://github.com/janlelis/unicode-display_width")
(license license:expat)))
+;; There is another gem called 'ruby-version' so we use an underscore in this
+;; name
+(define-public ruby_version
+ (package
+ (name "ruby_version")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "ruby_version" version))
+ (sha256
+ (base32
+ "0854i1bjy56176anr05l5m0vc81nl53c7fyfg7sljj62m1d64dgj"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'fix-dependencies
+ (lambda _
+ ;; Remove the Gemfile.lock, as we want to use Guix packages at
+ ;; whatever versions.
+ (delete-file "Gemfile.lock")
+ ;; Remove the incldued gem file as it's unnecessary.
+ (delete-file "pkg/ruby_version-1.0.0.gem")
+ (substitute* "ruby_version.gemspec"
+ ;; Don't require rdoc and rubygems-tasks as they're unnecessary
+ ((".*rdoc.*") "\n")
+ ((".*rubygems-tasks.*") "\n")
+ ;; Accept any version of rake and rspec
+ (("%q<rake.*") "%q<rake>)\n")
+ (("%q<rspec.*") "%q<rspec>)\n"))
+ ;; Remove the use of rubygems-tasks from the Rakefile, as it's
+ ;; unnecessary.
+ (substitute* "Rakefile"
+ (("^require 'rubygems/tasks'") "")
+ (("Gem::Tasks.new") ""))
+ #t)))))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)))
+ (synopsis "Ruby library to help check the Ruby version")
+ (description
+ "@code{ruby_version} provides a @code{RubyVersion} module to simplify
+checking for the right Ruby version in software.")
+ (home-page "https://github.com/janlelis/ruby_version")
+ (license license:expat)))
+
(define-public ruby-domain-name
(package
(name "ruby-domain-name")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 32/39] gnu: Add ruby-activejob.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-32-mail@cbaines.net
* gnu/packages/rails.scm (ruby-activejob): New variable.
---
gnu/packages/rails.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index e793a2e8e2..625d19a570 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -280,3 +280,28 @@ applications. These work with any Rack-compatible server.")
WebSockets it allows for real-time features in web applications.")
(home-page "https://rubyonrails.org/")
(license license:expat)))
+
+(define-public ruby-activejob
+ (package
+ (name "ruby-activejob")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "activejob" version))
+ (sha256
+ (base32
+ "1jjkl62x2aprg55x9rpm0h2c82vr2qr989hg3l9r21l01q4822ir"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-globalid" ,ruby-globalid)))
+ (synopsis "Declare job classes for multiple backends")
+ (description
+ "ActiveJob allows declaring job classes in a common way across Rails
+applications.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 17/39] gnu: ruby-prawn-table: Begin to enable tests.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-17-mail@cbaines.net
* gnu/packages/ruby.scm (ruby-prawn-table)[propagated-inputs]: Add
ruby-pdf-inspector.
[native-inputs]: Add packages for tests.
[arguments]: Modify the build phases to get closer to enabling the tests.
---
gnu/packages/ruby.scm | 35 +++++++++++++++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)

Toggle diff (49 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index b9ddaa6eb3..12d83a678a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6892,9 +6892,40 @@ functionality from Prawn.")
(base32
"1nxd6qmxqwl850icp18wjh5k0s3amxcajdrkjyzpfgq0kvilcv9k"))))
(build-system ruby-build-system)
- (arguments `(#:tests? #f)); No rakefile
(propagated-inputs
- `(("ruby-prawn" ,ruby-prawn)))
+ `(("ruby-prawn" ,ruby-prawn)
+ ("ruby-pdf-inspector" ,ruby-pdf-inspector)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-yard" ,ruby-yard)
+ ("ruby-mocha" ,ruby-mocha)
+ ("ruby-coderay" ,ruby-coderay)
+ ("ruby-prawn-manual-builder" ,ruby-prawn-manual-builder)
+ ("ruby-simplecov" ,ruby-simplecov)
+ ("ruby-rspec-2" ,ruby-rspec-2)))
+ (arguments
+ '(;; TODO: 1 test fails
+ ;; Failure/Error: pdf.page_count.should == 1
+ ;; expected: 1
+ ;; got: 2 (using ==)
+ ;; # ./spec/table_spec.rb:1308
+ ;;
+ ;; 225 examples, 1 failure
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'patch-gemspec
+ (lambda _
+ (substitute* "prawn-table.gemspec"
+ ;; Loosen the requirement for pdf-inspector
+ (("~> 1\\.1\\.0") ">= 0")
+ ;; Loosen the requirement for pdf-reader
+ (("~> 1\\.2") ">= 0"))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec"))
+ #t)))))
(home-page "https://github.com/prawnpdf/prawn-table")
(synopsis "Tables support for Prawn")
(description "This gem provides tables support for Prawn.")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 23/39] gnu: Add ruby-rails-dom-testing.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-23-mail@cbaines.net
* gnu/packages/rails.scm (ruby-rails-dom-testing): New variable.
---
gnu/packages/rails.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index c0c6e5ae2f..7e0e3ddf73 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -20,6 +20,7 @@
(define-module (gnu packages rails)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (gnu packages ruby)
#:use-module (guix build-system ruby))
@@ -169,3 +170,30 @@ you need similar functionality in non Rails apps consider using Loofah
directly.")
(home-page "https://github.com/rails/rails-html-sanitizer")
(license license:expat)))
+
+(define-public ruby-rails-dom-testing
+ (package
+ (name "ruby-rails-dom-testing")
+ (version "2.0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rails/rails-dom-testing.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0zrg6x1w3wjgklbhcphjmggl11jx5s8cl21qjqij7wknm412i5wl"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("bundler" ,bundler)))
+ (propagated-inputs
+ `(("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-nokogiri" ,ruby-nokogiri)))
+ (synopsis "Compare HTML DOMs and assert certain elements exists")
+ (description
+ "This gem can compare HTML and assert certain elements exists. This is
+useful when writing tests.")
+ (home-page "https://github.com/rails/rails-dom-testing")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 21/39] gnu: Add ruby-loofah.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-21-mail@cbaines.net
* gnu/packages/ruby.scm (ruby-loofah): New variable.
---
gnu/packages/ruby.scm | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (51 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index a2ec683ce9..4d93fef024 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3742,6 +3742,44 @@ you about the changes.")
(base32
"1l0y7hbyfiwpvk172r28hsdqsifq1ls39hsfmzi1vy4ll0smd14i"))))))
+(define-public ruby-loofah
+ (package
+ (name "ruby-loofah")
+ (version "2.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "loofah" version))
+ (sha256
+ (base32
+ "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ ;; concourse is a development tool which is unused, so remove it
+ ;; so it's not required.
+ (substitute* "Gemfile"
+ ((".*\"concourse\".*") "\n"))
+ (substitute* "Rakefile"
+ (("require 'concourse'") "")
+ (("Concourse\\.new.*") "\n"))
+ #t)))))
+ (native-inputs
+ `(("ruby-hoe" ,ruby-hoe)
+ ("ruby-rr" ,ruby-rr)))
+ (propagated-inputs
+ `(("ruby-nokogiri" ,ruby-nokogiri)
+ ("ruby-crass" ,ruby-crass)))
+ (synopsis "Ruby library for manipulating and transforming HTML/XML")
+ (description
+ "Loofah is a general library for manipulating and transforming HTML/XML
+documents and fragments. It's built on top of Nokogiri and libxml2.")
+ (home-page "https://github.com/flavorjones/loofah")
+ (license license:expat)))
+
(define-public ruby-activesupport
(package
(name "ruby-activesupport")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 25/39] gnu: Add ruby-actionview.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-25-mail@cbaines.net
* gnu/packages/rails.scm (ruby-actionview): New variable.
---
gnu/packages/rails.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 7e0e3ddf73..bb89a8ddec 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -197,3 +197,31 @@ directly.")
useful when writing tests.")
(home-page "https://github.com/rails/rails-dom-testing")
(license license:expat)))
+
+(define-public ruby-actionview
+ (package
+ (name "ruby-actionview")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "actionview" version))
+ (sha256
+ (base32
+ "1lz04drbi1z0xhvb8jnr14pbf505lilr02arahxq7y3mxiz0rs8z"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-builder" ,ruby-builder)
+ ("ruby-erubi" ,ruby-erubi)
+ ("ruby-rails-dom-testing" ,ruby-rails-dom-testing)
+ ("ruby-rails-html-sanitizer" ,ruby-rails-html-sanitizer)))
+ (synopsis "Conventions and helpers for building web pages")
+ (description
+ "ActionView provides conventions and helpers for building web pages in
+Ruby.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 22/39] gnu: Add ruby-rails-html-sanitizer.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-22-mail@cbaines.net
* gnu/packages/rails.scm (ruby-rails-html-sanitizer): New variable.
---
gnu/packages/rails.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index a9dae594a5..c0c6e5ae2f 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -144,3 +144,28 @@ serialization, internationalization, and testing.")
an almost zero-configuration persistence layer for applications.")
(home-page "https://rubyonrails.org")
(license license:expat)))
+
+(define-public ruby-rails-html-sanitizer
+ (package
+ (name "ruby-rails-html-sanitizer")
+ (version "1.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rails-html-sanitizer" version))
+ (sha256
+ (base32
+ "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-loofah" ,ruby-loofah)))
+ (synopsis "HTML sanitization for Rails applications")
+ (description
+ "This gem is used to handle HTML sanitization in Rails applications. If
+you need similar functionality in non Rails apps consider using Loofah
+directly.")
+ (home-page "https://github.com/rails/rails-html-sanitizer")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 30/39] gnu: Add ruby-actioncable.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-30-mail@cbaines.net
* gnu/packages/rails.scm (ruby-actioncable): New variable.
---
gnu/packages/rails.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index ac36cda8bb..e793a2e8e2 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -254,3 +254,29 @@ Ruby.")
applications. These work with any Rack-compatible server.")
(home-page "https://rubyonrails.org/")
(license license:expat)))
+
+(define-public ruby-actioncable
+ (package
+ (name "ruby-actioncable")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "actioncable" version))
+ (sha256
+ (base32
+ "0826k5ch0l03f9yrkxy69aiv039z4qi00lnahw2rzywd2iz6r68x"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-actionpack" ,ruby-actionpack)
+ ("ruby-nio4r" ,ruby-nio4r)
+ ("ruby-websocket-driver" ,ruby-websocket-driver)))
+ (synopsis "Integrate integrates WebSockets with Rails applications")
+ (description
+ "Action Cable integrates WebSockets with Rails applications. Through
+WebSockets it allows for real-time features in web applications.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 24/39] gnu: Add ruby-erubi.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-24-mail@cbaines.net
Required for ruby-actionview.

* gnu/packages/ruby.scm (ruby-erubi): New variable.
---
gnu/packages/ruby.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 4d93fef024..023b07149a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1103,6 +1103,25 @@ functions.")
(home-page "https://github.com/ahoward/options")
(license license:ruby)))
+(define-public ruby-erubi
+ (package
+ (name "ruby-erubi")
+ (version "1.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "erubi" version))
+ (sha256
+ (base32
+ "1kagnf6ziahj0d781s6ryy6fwqwa3ad4xbzzj84p9m4nv4c2jir1"))))
+ (build-system ruby-build-system)
+ (synopsis "ERB template engine for Ruby")
+ (description
+ "Erubi is a ERB template engine for Ruby. It is a simplified fork of
+Erubis")
+ (home-page "https://github.com/jeremyevans/erubi")
+ (license license:expat)))
+
(define-public ruby-erubis
(package
(name "ruby-erubis")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 26/39] gnu: Add ruby-actionpack.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-26-mail@cbaines.net
* gnu/packages/rails.scm (ruby-actionpack): New variable.
---
gnu/packages/rails.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index bb89a8ddec..ac36cda8bb 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -225,3 +225,32 @@ useful when writing tests.")
Ruby.")
(home-page "https://rubyonrails.org/")
(license license:expat)))
+
+(define-public ruby-actionpack
+ (package
+ (name "ruby-actionpack")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "actionpack" version))
+ (sha256
+ (base32
+ "0iwhbqqn0cm39dq040iwq8cfyclqk3kyzwlp5k3j5cz8k2668wws"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-actionview" ,ruby-actionview)
+ ("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-rack" ,ruby-rack)
+ ("ruby-rack-test" ,ruby-rack-test)
+ ("ruby-rails-dom-testing" ,ruby-rails-dom-testing)
+ ("ruby-rails-html-sanitizer" ,ruby-rails-html-sanitizer)))
+ (synopsis "Conventions for building and testing MVC web applications")
+ (description
+ "ActionPack provides conventions for building and testing MVC web
+applications. These work with any Rack-compatible server.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 29/39] gnu: Add ruby-nio4r.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-29-mail@cbaines.net
Required for ruby-actioncable.

* gnu/packages/ruby.scm (ruby-nio4r): New variable.
---
gnu/packages/ruby.scm | 49 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)

Toggle diff (59 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index e7ee0d8bf1..4acdc31473 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7413,3 +7413,52 @@ logic in Jekyll. It calculates and generates the pagination pages.")
interface over different adapters.")
(home-page "https://github.com/lostisland/faraday")
(license license:expat)))
+
+(define-public ruby-nio4r
+ (package
+ (name "ruby-nio4r")
+ (version "2.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "nio4r" version))
+ (sha256
+ (base32
+ "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ (substitute* "spec/spec_helper.rb"
+ ;; Coveralls is for uploading test coverage information to an
+ ;; online service, and thus unnecessary for building the Guix
+ ;; package
+ (("require \"coveralls\"") "")
+ (("Coveralls\\.wear!") "")
+ ;; Remove rspec/retry as we are not retrying the tests
+ (("require \"rspec/retry\"") "")
+ (("config\\.display_try_failure_messages = true") "")
+ (("config\\.verbose_retry = true") ""))
+ #t))
+ (add-before 'check 'compile
+ (lambda _
+ (invoke "rake" "compile")
+ #t))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec"))
+ #t)))))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rake-compiler" ,ruby-rake-compiler)
+ ("ruby-rspec" ,ruby-rspec)
+ ("ruby-rubocop" ,ruby-rubocop)))
+ (synopsis "New I/O for Ruby")
+ (description
+ "@code{nio} provides cross-platform asynchronous I/O primitives in Ruby
+for scalable network clients and servers.")
+ (home-page "https://github.com/socketry/nio4r")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 09/39] gnu: Add ruby-bump.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-9-mail@cbaines.net
Required for ruby-parallel.

* gnu/packages/ruby.scm (ruby-bump): New variable.
---
gnu/packages/ruby.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index c202b5770d..ac16b7231c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -564,6 +564,28 @@ supported: XML Markup and XML Events.")
(home-page "https://github.com/jimweirich/builder")
(license license:expat)))
+(define-public ruby-bump
+ (package
+ (name "ruby-bump")
+ (version "0.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "bump" version))
+ (sha256
+ (base32
+ "1xinbr9rzh6cj75x24niwgqcnbhdxc68a8bc41lk8xv6fd906fym"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (synopsis "Tool for working with Rubygems")
+ (description
+ "Bump provides commands to manage Rubygem versioning, updating to the
+next patch version for example.")
+ (home-page "https://github.com/gregorym/bump")
+ (license license:expat)))
+
(define-public ruby-rjb
(package
(name "ruby-rjb")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 19/39] gnu: Add ruby-rr.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-19-mail@cbaines.net
* gnu/packages/ruby.scm (ruby-rr): New variable.
---
gnu/packages/ruby.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 0046447748..b760cc0fc1 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4296,6 +4296,30 @@ wrapping them in ANSI escape codes.")
(home-page "https://github.com/sickill/rainbow")
(license license:expat)))
+(define-public ruby-rr
+ (package
+ (name "ruby-rr")
+ (version "1.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rr" version))
+ (sha256
+ (base32
+ "1n9g78ba4c2zzmz8cdb97c38h1xm0clircag00vbcxwqs4dq0ymp"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ; test files not included
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)))
+ (synopsis "Ruby test double framework")
+ (description
+ "RR is a test double framework that features a rich selection of double
+techniques and a terse syntax.")
+ (home-page "https://rr.github.io/rr/")
+ (license license:expat)))
+
(define-public ruby-rest-client
(package
(name "ruby-rest-client")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 39/39] gnu: Add ruby-rails.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-39-mail@cbaines.net
* gnu/packages/rails.scm (ruby-rails): New variable.
---
gnu/packages/rails.scm | 53 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)

Toggle diff (63 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index a45dca65d1..2d7ccceff7 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -412,3 +412,56 @@ application bootup, plugins, generators, and Rake tasks.")
(home-page
"https://github.com/rails/sprockets-rails")
(license license:expat)))
+
+(define-public ruby-rails
+ (package
+ (name "ruby-rails")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rails" version))
+ (sha256
+ (base32
+ "1m9cszds68dsiycciiayd3c9g90s2yzn1izkr3gpgqkfw6dmvzyr"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; This gem acts as glue between the gems that actually make up
+ ;; Rails. The important thing to check is that the gemspec matches up
+ ;; with the Guix packages and Rubygems can successfully activate the
+ ;; Rails gem.
+ ;;
+ ;; The following check phase tests this.
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key tests? outputs #:allow-other-keys)
+ (setenv "GEM_PATH"
+ (string-append
+ (getenv "GEM_PATH")
+ ":"
+ (assoc-ref outputs "out") "/lib/ruby/vendor_ruby"))
+ (when tests?
+ (invoke "ruby" "-e" "gem 'rails'"))
+ #t)))))
+ (propagated-inputs
+ `(("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-actionpack" ,ruby-actionpack)
+ ("ruby-actionview" ,ruby-actionview)
+ ("ruby-activemodel" ,ruby-activemodel)
+ ("ruby-activerecord" ,ruby-activerecord)
+ ("ruby-actionmailer" ,ruby-actionmailer)
+ ("ruby-activejob" ,ruby-activejob)
+ ("ruby-actioncable" ,ruby-actioncable)
+ ("ruby-activestorage" ,ruby-activestorage)
+ ("ruby-railties" ,ruby-railties)
+ ("bundler" ,bundler)
+ ("ruby-sprockets-rails" ,ruby-sprockets-rails)))
+ (synopsis "Full-stack web framework optimized for programmer happiness")
+ (description
+ "Ruby on Rails is a full-stack web framework optimized for programmer
+happiness and sustainable productivity. It encourages beautiful code by
+favoring convention over configuration.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 33/39] gnu: Add ruby-actionmailer.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-33-mail@cbaines.net
* gnu/packages/rails.scm (ruby-actionmailer): New variable.
---
gnu/packages/rails.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 625d19a570..bf972512f4 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -305,3 +305,31 @@ WebSockets it allows for real-time features in web applications.")
applications.")
(home-page "https://rubyonrails.org/")
(license license:expat)))
+
+(define-public ruby-actionmailer
+ (package
+ (name "ruby-actionmailer")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "actionmailer" version))
+ (sha256
+ (base32
+ "0sfpb8s95cmkpp9ybyp2c88r55r5llscmmnkfwcwgasz9ncjiq5n"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-actionpack" ,ruby-actionpack)
+ ("ruby-actionview" ,ruby-actionview)
+ ("ruby-activejob" ,ruby-activejob)
+ ("ruby-mail" ,ruby-mail)
+ ("ruby-rails-dom-testing" ,ruby-rails-dom-testing)))
+ (synopsis "Work with emails using the controller/view pattern")
+ (description
+ "Compose, deliver, receive, and test emails using the controller/view
+pattern. Including support for multipart email and attachments.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 38/39] gnu: Add ruby-activestorage.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-38-mail@cbaines.net
* gnu/packages/rails.scm (ruby-activestorage): New variable.
---
gnu/packages/rails.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 6bcfe2667d..a45dca65d1 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -306,6 +306,32 @@ applications.")
(home-page "https://rubyonrails.org/")
(license license:expat)))
+(define-public ruby-activestorage
+ (package
+ (name "ruby-activestorage")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "activestorage" version))
+ (sha256
+ (base32
+ "0c72837098sw384vk6dmrb2p7q3wx4swnibk6sw9dp4hn1vc4p31"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-actionpack" ,ruby-actionpack)
+ ("ruby-activerecord" ,ruby-activerecord)
+ ("ruby-marcel" ,ruby-marcel)))
+ (synopsis "Integrate file storage services in to Rails applications")
+ (description
+ "ActiveStorage integrates file storage services with Rails applications,
+allowing files to be attached to ActiveRecord models..")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
+
(define-public ruby-actionmailer
(package
(name "ruby-actionmailer")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 35/39] gnu: Add ruby-sprockets.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-35-mail@cbaines.net
* gnu/packages/ruby.scm (ruby-sprockets): New variable.
---
gnu/packages/ruby.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index cda51166da..a05d0f63e4 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7486,3 +7486,28 @@ for scalable network clients and servers.")
uniquely identify it.")
(home-page "https://rubyonrails.org/")
(license license:expat)))
+
+(define-public ruby-sprockets
+ (package
+ (name "ruby-sprockets")
+ (version "3.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "sprockets" version))
+ (sha256
+ (base32
+ "0sv3zk5hwxyjvg7iy9sggjc7k3mfxxif7w8p260rharfyib939ar"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-concurrent" ,ruby-concurrent)
+ ("ruby-rack" ,ruby-rack)))
+ (synopsis "Sprockets is a Rack-based asset packaging system")
+ (description
+ "Sprockets is a Rack-based asset packaging system that concatenates and
+serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.")
+ (home-page "https://github.com/rails/sprockets")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 36/39] gnu: Add ruby-sprockets-rails.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-36-mail@cbaines.net
* gnu/packages/rails.scm (ruby-sprockets-rails): New variable.
---
gnu/packages/rails.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index e5f19a4742..6bcfe2667d 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -360,3 +360,29 @@ pattern. Including support for multipart email and attachments.")
application bootup, plugins, generators, and Rake tasks.")
(home-page "https://rubyonrails.org/")
(license license:expat)))
+
+(define-public ruby-sprockets-rails
+ (package
+ (name "ruby-sprockets-rails")
+ (version "3.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "sprockets-rails" version))
+ (sha256
+ (base32
+ "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-actionpack" ,ruby-actionpack)
+ ("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-sprockets" ,ruby-sprockets)))
+ (synopsis "Sprockets Rails integration")
+ (description
+ "Provides Sprockets implementation for the Rails Asset Pipeline.")
+ (home-page
+ "https://github.com/rails/sprockets-rails")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 37/39] gnu: Add ruby-marcel.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-37-mail@cbaines.net
Required for ruby-activestorage.

* gnu/packages/ruby.scm (ruby-marcel): New variable.
---
gnu/packages/ruby.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index a05d0f63e4..5302c87ae0 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2924,6 +2924,30 @@ Ruby. It simplifies the generation of complex SQL queries and adapts to
various relational database implementations.")
(license license:expat)))
+(define-public ruby-marcel
+ (package
+ (name "ruby-marcel")
+ (version "0.3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "marcel" version))
+ (sha256
+ (base32
+ "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-mimemagic" ,ruby-mimemagic)))
+ (synopsis "MIME type detection using magic numbers, filenames and extensions")
+ (description
+ "@code{marcel} provides @acronym{MIME, Multipurpose Internet Mail
+Extensions} type detection using magic numbers, filenames, and extensions")
+ (home-page "https://github.com/basecamp/marcel")
+ (license license:expat)))
+
(define-public ruby-minitar
;; We package from the GitHub source to fix the security issue reported at
;; https://github.com/halostatue/minitar/issues/16.
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 34/39] gnu: Add ruby-railties.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-34-mail@cbaines.net
* gnu/packages/rails.scm (ruby-railties): New variable.
---
gnu/packages/rails.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index bf972512f4..e5f19a4742 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -333,3 +333,30 @@ applications.")
pattern. Including support for multipart email and attachments.")
(home-page "https://rubyonrails.org/")
(license license:expat)))
+
+(define-public ruby-railties
+ (package
+ (name "ruby-railties")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "railties" version))
+ (sha256
+ (base32
+ "00pnylmbz4c46mxw5lhxi8h39lndfg6fs1hpd0qd6swnjhkqsr1l"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-actionpack" ,ruby-actionpack)
+ ("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-method-source" ,ruby-method-source)
+ ("ruby-thor" ,ruby-thor)))
+ (synopsis "Rails internals, including application bootup and generators")
+ (description
+ "@code{railties} provides the core Rails internals including handling
+application bootup, plugins, generators, and Rake tasks.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 27/39] gnu: Add ruby-websocket-extensions.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-27-mail@cbaines.net
* gnu/packages/ruby.scm (ruby-websocket-extensions): New variable.
---
gnu/packages/ruby.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 023b07149a..e74cef3676 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5459,6 +5459,28 @@ checking for the right Ruby version in software.")
(home-page "https://github.com/janlelis/ruby_version")
(license license:expat)))
+(define-public ruby-websocket-extensions
+ (package
+ (name "ruby-websocket-extensions")
+ (version "0.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "websocket-extensions" version))
+ (sha256
+ (base32
+ "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (synopsis "Generic extension manager for WebSocket connections")
+ (description
+ "@code{websocket-extensions} provides a container for registering
+extension plugins.")
+ (home-page "https://github.com/faye/websocket-extensions-ruby")
+ (license license:expat)))
+
(define-public ruby-domain-name
(package
(name "ruby-domain-name")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 11/39] gnu: Add ruby-activemodel.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-11-mail@cbaines.net
Required for ruby-activerecord.

* gnu/packages/rails.scm (ruby-activemodel): New variable.
---
gnu/packages/rails.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 5348d914cf..80329a3c5b 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -93,3 +93,28 @@ API.")
(home-page
"https://github.com/banister/debug_inspector")
(license license:expat)))
+
+(define-public ruby-activemodel
+ (package
+ (name "ruby-activemodel")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "activemodel" version))
+ (sha256
+ (base32
+ "1xmwi3mw8g4shbjvkhk72ra3r5jccbdsd4piphqka2y1h8s7sxvi"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-activesupport" ,ruby-activesupport)))
+ (synopsis "Toolkit for building modeling frameworks like Active Record")
+ (description
+ "This package provides a toolkit for building modeling frameworks like
+Active Record. ActiveSupport handles attributes, callbacks, validations,
+serialization, internationalization, and testing.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 28/39] gnu: Add ruby-websocket-driver.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-28-mail@cbaines.net
* gnu/packages/ruby.scm (ruby-websocket-driver): New variable.
---
gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index e74cef3676..e7ee0d8bf1 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5459,6 +5459,29 @@ checking for the right Ruby version in software.")
(home-page "https://github.com/janlelis/ruby_version")
(license license:expat)))
+(define-public ruby-websocket-driver
+ (package
+ (name "ruby-websocket-driver")
+ (version "0.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "websocket-driver" version))
+ (sha256
+ (base32
+ "1551k3fs3kkb3ghqfj3n5lps0ikb9pyrdnzmvgfdxy8574n4g1dn"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:tests? #f)) ; tests not included
+ (propagated-inputs
+ `(("ruby-websocket-extensions" ,ruby-websocket-extensions)))
+ (synopsis "WebSocket protocol handler with pluggable I/O")
+ (description
+ "@code{websocket-driver} provides a complete implementation of the
+WebSocket protocols that can be hooked up to any TCP library")
+ (home-page "https://github.com/faye/websocket-driver-ruby")
+ (license license:expat)))
+
(define-public ruby-websocket-extensions
(package
(name "ruby-websocket-extensions")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 02/39] gnu: ruby-minitest: Update to 5.11.3.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-2-mail@cbaines.net
As the previous version breaks the tests for the ruby-minitest-reporters
package I'd like to add.

* gnu/packages/ruby.scm (ruby-minitest): Update to 5.11.3.
---
gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index cf94de1611..877cd6f373 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2233,13 +2233,13 @@ client protocol.")
(define-public ruby-minitest
(package
(name "ruby-minitest")
- (version "5.10.3")
+ (version "5.11.3")
(source (origin
(method url-fetch)
(uri (rubygems-uri "minitest" version))
(sha256
(base32
- "05521clw19lrksqgvg2kmm025pvdhdaniix52vmbychrn2jm7kz2"))))
+ "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"))))
(build-system ruby-build-system)
(native-inputs
`(("ruby-hoe" ,ruby-hoe)))
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 01/39] gnu: Add ruby-maruku.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-1-mail@cbaines.net
Required for ruby-minitest-reporters.

* gnu/packages/ruby.scm (ruby-maruku): New variable.
---
gnu/packages/ruby.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 019b04ae22..cf94de1611 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1826,6 +1826,39 @@ It allows writing tests, checking results and automated testing in Ruby.")
(home-page "https://test-unit.github.io/")
(license (list license:psfl license:ruby))))
+(define-public ruby-maruku
+ (package
+ (name "ruby-maruku")
+ (version "0.7.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "maruku" version))
+ (sha256
+ (base32
+ "1r7bxpgnx2hp3g12bjrmdrpv663dfqxsdp0af69kjhxmaxpia56x"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; TODO: 3 tests seem to fail due to HTML encoding issues
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec"))
+ #t)))))
+ (native-inputs
+ `(("ruby-rspec" ,ruby-rspec)
+ ("ruby-simplecov" ,ruby-simplecov)
+ ("ruby-nokogiri-diff" ,ruby-nokogiri-diff)))
+ (synopsis "Markdown interpreter in Ruby")
+ (description
+ "Maruku is a Markdown interpreter in Ruby. It can export Markdown to
+HTML, and PDF through LaTeX.")
+ (home-page "https://github.com/bhollis/maruku")
+ (license license:expat)))
+
(define-public ruby-metaclass
(package
(name "ruby-metaclass")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 04/39] gnu: ruby-public-suffix: Enable tests.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-4-mail@cbaines.net
* gnu/packages/ruby.scm (ruby-public-suffix)[arguments]: Enable the tests, add
a phase to remove the Rubocop dependency.
[native-inputs]: Add bundler, ruby-yard, ruby-mocha and ruby-minitest-reporters.
---
gnu/packages/ruby.scm | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)

Toggle diff (30 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ebd36df9b3..57f7108b66 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6126,8 +6126,21 @@ programs running in the background, in Ruby.")
"08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l"))))
(build-system ruby-build-system)
(arguments
- ;; Tests require network
- `(#:tests? #f))
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; Remove the requirement on Rubocop, as it isn't useful to run, and
+ ;; including it as an input can lead to circular dependencies.
+ (add-after 'unpack 'remove-rubocop-from-Rakefile
+ (lambda _
+ (substitute* "Rakefile"
+ (("require \"rubocop/rake\\_task\"") "")
+ (("RuboCop::RakeTask\\.new") ""))
+ #t)))))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-yard" ,ruby-yard)
+ ("ruby-mocha" ,ruby-mocha)
+ ("ruby-minitest-reporters" ,ruby-minitest-reporters)))
(home-page "https://simonecarletti.com/code/publicsuffix-ruby/")
(synopsis "Domain name parser")
(description "The gem @code{public_suffix} is a domain name parser,
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 06/39] gnu: ruby-addressable: Enable tests and update.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-6-mail@cbaines.net
* gnu/packages/ruby.scm (ruby-addressable): Update to 2.6.0.
[arguments]: Enable running the tests.
[native-inputs]: Add inputs required for running the tests.
---
gnu/packages/ruby.scm | 31 ++++++++++++++++++++++++++-----
1 file changed, 26 insertions(+), 5 deletions(-)

Toggle diff (52 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ed31ef1bdc..7b6c56b4ef 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6199,19 +6199,40 @@ all known public suffixes.")
(define-public ruby-addressable
(package
(name "ruby-addressable")
- (version "2.5.2")
+ (version "2.6.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "addressable" version))
(sha256
(base32
- "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk"))))
+ "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l"))))
(build-system ruby-build-system)
+ (arguments
+ '(#:test-target "spec"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies-from-Gemfile
+ (lambda _
+ (substitute* "Gemfile"
+ (("git: 'https://github.com/sporkmonger/rack-mount.git',") "")
+ ((".*launchy.*") "")
+ ((".*rake.*") "gem 'rake'\n")
+ ((".*redcarpet.*") ""))
+ #t))
+ (add-before 'check 'delete-network-dependent-test
+ (lambda _
+ (delete-file "spec/addressable/net_http_compat_spec.rb")
+ #t)))))
+ (native-inputs
+ `(("ruby-rspec" ,ruby-rspec)
+ ("bundler" ,bundler)
+ ("ruby-idn-ruby" ,ruby-idn-ruby)
+ ("ruby-sporkmonger-rack-mount" ,ruby-sporkmonger-rack-mount)
+ ("ruby-rspec-its", ruby-rspec-its)
+ ("ruby-yard" ,ruby-yard)
+ ("ruby-simplecov" ,ruby-simplecov)))
(propagated-inputs
`(("ruby-public-suffix" ,ruby-public-suffix)))
- (arguments
- ;; No test target
- `(#:tests? #f))
(home-page "https://github.com/sporkmonger/addressable")
(synopsis "Alternative URI implementation")
(description "Addressable is a replacement for the URI implementation that
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 08/39] gnu: Add ruby-mysql2.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-8-mail@cbaines.net
Required for ruby-parallel.

* gnu/packages/ruby.scm (ruby-mysql2): New variable.
---
gnu/packages/ruby.scm | 45 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

Toggle diff (58 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 19c0734fc9..c202b5770d 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1938,6 +1938,51 @@ specs for Ruby implementations in ruby/spec.")
(home-page "http://rubyspec.org")
(license license:expat)))
+(define-public ruby-mysql2
+ (package
+ (name "ruby-mysql2")
+ (version "0.5.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brianmario/mysql2.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "11lvfgc2rmvkm52jp0nbi6pvhk06klznghr7llldfw8basl9n5wv"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; TODO: Tests require a running MySQL/MariaDB service
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'replace-git-ls-files
+ (lambda _
+ (substitute* "mysql2.gemspec"
+ (("git ls-files") "echo"))))
+ (add-before 'build 'compile
+ (lambda _
+ (invoke "rake" "compile")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec" "-Ilib" "-Iext"))
+ #t)))))
+ (inputs
+ `(("mariadb" ,mariadb)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("ruby-rspec" ,ruby-rspec)
+ ("ruby-rake-compiler" ,ruby-rake-compiler)))
+ (synopsis "MySQL library for Ruby, binding to libmysql")
+ (description
+ "This package provides a simple, fast MySQL library for Ruby, binding to
+libmysql.")
+ (home-page "https://github.com/brianmario/mysql2")
+ (license license:expat)))
+
(define-public ruby-blankslate
(package
(name "ruby-blankslate")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 10/39] gnu: ruby-activesupport: Update to 5.2.2.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-10-mail@cbaines.net
* gnu/packages/ruby.scm (ruby-activesupport): Update to 5.2.2.
---
gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ac16b7231c..004fddbc7a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3667,14 +3667,14 @@ you about the changes.")
(define-public ruby-activesupport
(package
(name "ruby-activesupport")
- (version "5.2.1")
+ (version "5.2.2")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "activesupport" version))
(sha256
(base32
- "0ziy6xk31k4fs115cdkba1ys4i8nzcyri7a2jig7nx7k5h7li6l2"))))
+ "1iya7vxqwxysr74s7b4z1x19gmnx5advimzip3cbmsd5bd43wfgz"))))
(build-system ruby-build-system)
(arguments
`(#:phases
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 12/39] gnu: ruby-arel: Update to 9.0.0.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-12-mail@cbaines.net
* gnu/packages/ruby.scm (ruby-arel): Update to 9.0.0.
---
gnu/packages/ruby.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 004fddbc7a..85d2cd8570 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2845,13 +2845,13 @@ rogue test/unit/autorun requires.")
(define-public ruby-arel
(package
(name "ruby-arel")
- (version "8.0.0")
+ (version "9.0.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "arel" version))
(sha256
(base32
- "0nw0qbc6ph625p6n3maqq9f527vz3nbl0hk72fbyka8jzsmplxzl"))))
+ "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0"))))
(build-system ruby-build-system)
(arguments '(#:tests? #f)) ; no tests
(home-page "https://github.com/rails/arel")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:35
[PATCH 14/39] gnu: Add ruby-rspec-rerun.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-14-mail@cbaines.net
Required for ruby-parallel tests.

* gnu/packages/ruby.scm (ruby-rspec-rerun): New variable.
---
gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 85d2cd8570..4c21c8c04a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -479,6 +479,29 @@ support for stubbing and mocking.")
(propagated-inputs
`(("ruby-diff-lcs" ,ruby-diff-lcs)))))
+(define-public ruby-rspec-rerun
+ (package
+ (name "ruby-rspec-rerun")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rspec-rerun" version))
+ (sha256
+ (base32
+ "1gy7znkcaqhpccfnk2nvaqbsvgxy3q57cmjwkl9fi1zabaq5lbkj"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs `(("ruby-rspec" ,ruby-rspec)))
+ (synopsis "Track failed RSpec tests to re-run them")
+ (description
+ "This package provides an automated way to track, and then re-run failed
+RSpec tests.")
+ (home-page "https://github.com/dblock/rspec-rerun")
+ (license license:expat)))
+
(define-public ruby-rspec
(package
(name "ruby-rspec")
--
2.20.1
C
C
Christopher Baines wrote on 28 Jan 2019 18:36
[PATCH 31/39] gnu: Add ruby-globalid.
(address . 30689@debbugs.gnu.org)
20190128173620.27999-31-mail@cbaines.net
Required for ruby-activejob.

* gnu/packages/ruby.scm (ruby-globalid): New variable.
---
gnu/packages/ruby.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 4acdc31473..cda51166da 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7462,3 +7462,27 @@ interface over different adapters.")
for scalable network clients and servers.")
(home-page "https://github.com/socketry/nio4r")
(license license:expat)))
+
+(define-public ruby-globalid
+ (package
+ (name "ruby-globalid")
+ (version "0.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "globalid" version))
+ (sha256
+ (base32
+ "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-activesupport" ,ruby-activesupport)))
+ (synopsis "Generate URIs idenfitying model instances in Ruby")
+ (description
+ "@code{GlobalID} provides a way to generate URIs from a model in Ruby that
+uniquely identify it.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
--
2.20.1
B
B
Björn Höfling wrote on 4 Feb 2019 00:07
Re: [bug#30689] [PATCH 05/39] gnu: Add ruby-idn-ruby.
(name . Christopher Baines)(address . mail@cbaines.net)(address . 30689@debbugs.gnu.org)
20190204000732.28656c32@alma-ubu
On Mon, 28 Jan 2019 17:35:46 +0000
Christopher Baines <mail@cbaines.net> wrote:

Toggle quote (4 lines)
> Required for the ruby-addressable tests.
>
> * gnu/packages/ruby.scm (ruby-idn-ruby): New variable.

This package is NOT reproducible:

? ? ? ? ? ? ??? Makefile
? ? ? ? ? ? ? @@ -27,16 +27,16 @@
? ? ? ? ? ? ? rubyarchhdrdir = $(rubyhdrdir)/$(arch)
? ? ? ? ? ? ? vendorhdrdir = $(rubyhdrdir)/vendor_ruby
? ? ? ? ? ? ? sitehdrdir = $(rubyhdrdir)/site_ruby
? ? ? ? ? ? ? rubyhdrdir = $(includedir)/$(RUBY_VERSION_NAME)
? ? ? ? ? ? ? vendorarchdir = $(vendorlibdir)/$(sitearch)
? ? ? ? ? ? ? vendorlibdir = $(vendordir)/$(ruby_version)
? ? ? ? ? ? ? vendordir = $(rubylibprefix)/vendor_ruby
? ? ? ? ? ? ? -sitearchdir = $(DESTDIR)./.gem.20190203-76-1x18rur
? ? ? ? ? ? ? -sitelibdir = $(DESTDIR)./.gem.20190203-76-1x18rur
? ? ? ? ? ? ? +sitearchdir = $(DESTDIR)./.gem.20190203-76-3av0wa
? ? ? ? ? ? ? +sitelibdir = $(DESTDIR)./.gem.20190203-76-3av0wa

Can you have a look into it?

I have NOT reviewed anything else of that package.

Thank you,

Björn
C
C
Christopher Baines wrote on 8 Feb 2019 21:01
(name . Björn Höfling)(address . bjoern.hoefling@bjoernhoefling.de)(address . 30689@debbugs.gnu.org)
877eea59tk.fsf@cbaines.net
Björn Höfling <bjoern.hoefling@bjoernhoefling.de> writes:

Toggle quote (27 lines)
> On Mon, 28 Jan 2019 17:35:46 +0000
> Christopher Baines <mail@cbaines.net> wrote:
>
>> Required for the ruby-addressable tests.
>>
>> * gnu/packages/ruby.scm (ruby-idn-ruby): New variable.
>
> This package is NOT reproducible:
>
> ? ? ? ? ? ? ??? Makefile
> ? ? ? ? ? ? ? @@ -27,16 +27,16 @@
> ? ? ? ? ? ? ? rubyarchhdrdir = $(rubyhdrdir)/$(arch)
> ? ? ? ? ? ? ? vendorhdrdir = $(rubyhdrdir)/vendor_ruby
> ? ? ? ? ? ? ? sitehdrdir = $(rubyhdrdir)/site_ruby
> ? ? ? ? ? ? ? rubyhdrdir = $(includedir)/$(RUBY_VERSION_NAME)
> ? ? ? ? ? ? ? vendorarchdir = $(vendorlibdir)/$(sitearch)
> ? ? ? ? ? ? ? vendorlibdir = $(vendordir)/$(ruby_version)
> ? ? ? ? ? ? ? vendordir = $(rubylibprefix)/vendor_ruby
> ? ? ? ? ? ? ? -sitearchdir = $(DESTDIR)./.gem.20190203-76-1x18rur
> ? ? ? ? ? ? ? -sitelibdir = $(DESTDIR)./.gem.20190203-76-1x18rur
> ? ? ? ? ? ? ? +sitearchdir = $(DESTDIR)./.gem.20190203-76-3av0wa
> ? ? ? ? ? ? ? +sitelibdir = $(DESTDIR)./.gem.20190203-76-3av0wa
>
> Can you have a look into it?
>
> I have NOT reviewed anything else of that package.

Interesting, it seems that the ruby-build-system should remove some
unnecessary files, like this Makefile you mention, but the functionality
is not working.

I've pushed a patch [1] that fixes this to the bug I already have open
regarding the ruby-build-system [2].

1: [PATCH v2 3/3] guix: ruby-build-system: Fix removal of extension
related files.

Thanks,

Chris
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlxd4AdfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9XdppA/7BGdOJAOxKw3Bji82Q0O01qvEVVlH6Q6+wJ10V+YudBrq1Pe/K6+VYYFp
bP7k9Rhv/Is3fM+zt7VirI3CJjp6ht/zjVdWgvKC65swVv5y162GjKhl7d3y37QX
UyNEH0J9hZ6CS0ba0g86P02hVz0qtqaWGtBnCHFHD8S/DglbYhXXtoSRJnYG66Gh
B+upMOfDJzfc/yc8fW3/jGdjDMClJmQEhD57YqLHVqS5pm2aqPu2tkYD5ZrkC8mY
nOAqVuISxun4ZyimUdz+rmLdnpp1HwV7NAsjx/ndJAOcfn3KSzYlHKTBj6YX7Yh/
PWrLkqmh3zAh0Jt81nfemckmuqhFmhJbfMLKD84X1ridAcFIcvyWRKIU1bAfhw2J
tkkZIloJyfW1zeAKcekWKToZC3kf+dudBWbFoy9Hs+gmVitWAGOOXWtg1EL+Mf2L
Q8sJ2mCmNHDD6ko1DBjkIXEpz+Yqh6PCHNWveeQTihaZgItw6BuUTkV/tpHuWwXS
1+wb3zvbvd5My3NyLkbqJnGlUB+n/icbK3umy3A9BkS1I3n93KXZvriuQvY4ygQ/
flC3AEX4qhGbO65ngO95bniwcYb2rOgRyIs/CKna70CIflq0vnuLx6oxjk3BSwmA
6pqhDplDUX17InuggORBtC9mPf8WuErN7ktDllEB+jnRw+aHUWg=
=y7Gm
-----END PGP SIGNATURE-----

C
C
Christopher Baines wrote on 14 Feb 2019 22:57
Ruby on Rails
(name . Ben Woodcroft)(address . b.woodcroft@uq.edu.au)
87lg2it4m5.fsf@cbaines.net
So, I've merged 66 patches now which were tracked across these 3 bugs so
the master branch now contains the ruby-rails gem!

I think I've even done this without breaking anything, I believe all the
packages I added or changed build, and all of there dependencies as
reported by guix lint build too.

If anyone still has any comments on the patches, I'd still love to hear
them.

Thanks for everyone who's reviewed these patches so far, and thanks to
Ben for kicking this work off many months ago.

Chris
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlxl5GJfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9XcXeA/9Ew+h+HVMeipbeKaDjgK/pKrY7d7DegpisO/sRz8M82iH8nwUjjHkIykH
hmA13/8qkx9vximijJ8B0UZM6gTTakdz4yRMtKBnt9OVpySj393kwunsoEma3qnJ
7o6x+wJmNsxV0UeJpJfOOVySmFsxqw3rD5NG7f1RROHEa2DoR8CWJhGmNugSqm2u
OCFdEJgu4e2jJyBqI+Q/CqjcbSAFInQhnAELidgAYb4KEeyP/sMzHtV0b8A5RPMl
ZjWOTaDJPKr273h1qev1XbwYV14OSdBsYLi4WW+mUWMmQHXWYxGzQlO4ixWDcSgA
07rXbMgI9TG8JDaWTLUdCxQfzBGG/qitTRcROu5dVzNp0QxUiRHeZwT8Evi5EpQt
bg4iL3mjNZVVPUKnumdzrcQ8xr4jTuzXg0ZABjQBMzTOXQ0uxBzg4gDSHTmECS01
Nwnh0Pnmh5w0nwIrLWjSBfG+ypdkhDrGWNuC8v6eq0g2ozkY73t6CAymk7LdhysT
siCOqzQ8nScb8qNORCLnPRfr1VPtxQ/kZqBwFLEMHi6bzWqphW8mJ9uNJwVHIdTX
oOLN1FF500OSjLTAt1skxhc5r3OzXcM5Za3ujpVDF1P5gnj7bA1qM7g5PWBwIUg6
8wTAUBMs2pNE3/Lt/I+BlTOU/Jqv+NZIv7Tp3tCqomdnXfJojvA=
=BsXZ
-----END PGP SIGNATURE-----

Closed
?