From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: [PATCH] More Ruby gems: utils, guard, redcloth... Date: Wed, 25 Nov 2015 17:34:44 +0100 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:58973) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1d25-00018w-Nz for guix-devel@gnu.org; Wed, 25 Nov 2015 11:35:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a1d21-0002eP-0A for guix-devel@gnu.org; Wed, 25 Nov 2015 11:35:01 -0500 Received: from pegasus.bbbm.mdc-berlin.de ([141.80.25.20]:45704) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1d20-0002dk-4f for guix-devel@gnu.org; Wed, 25 Nov 2015 11:34:56 -0500 Received: from localhost (localhost [127.0.0.1]) by pegasus.bbbm.mdc-berlin.de (Postfix) with ESMTP id 61D653810AD for ; Wed, 25 Nov 2015 17:34:53 +0100 (CET) Received: from pegasus.bbbm.mdc-berlin.de ([127.0.0.1]) by localhost (pegasus.bbbm.mdc-berlin.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Kfd9f1LAQ4hI for ; Wed, 25 Nov 2015 17:34:45 +0100 (CET) Received: from HTCAONE.mdc-berlin.net (mab.citx.mdc-berlin.de [141.80.36.102]) by pegasus.bbbm.mdc-berlin.de (Postfix) with ESMTP for ; Wed, 25 Nov 2015 17:34:45 +0100 (CET) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel --=-=-= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Guix! Here are 23 patches for various Ruby gems and their dependencies. As we=E2=80=99re getting closer to having all dependencies for buildr packag= ed I=E2=80=99m beginning to wonder if maybe this was a stupid idea. I have to remind myself that I=E2=80=99m doing this to get =E2=80=9Cbuildr=E2=80=9D to be = able to build the dependencies for maven without maven. Maybe it would have been better to untangle the Java dependencies directly. Maybe we=E2=80=99ll still have to do this =E2=80=94 I don=E2=80= =99t even know if buildr is going to be sufficient to build the maven dependencies :) ~~ Ricardo PS: is it okay to inline all these patches or would you prefer to have each sent in a separate email in the future? I haven=E2=80=99t yet set u= p git sendmail, but if that=E2=80=99s more convenient I=E2=80=99ll do this next= . --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0001-gnu-Add-ruby-minitest-4.patch" >From d410e78c38b634f7f8b4d4763e0541db1dee5837 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:29:37 +0100 Subject: [PATCH 01/23] gnu: Add ruby-minitest-4. * gnu/packages/ruby.scm (ruby-minitest-4): New variable. --- gnu/packages/ruby.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index c51a5f0..e4880ca 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1432,6 +1432,25 @@ facilities supporting TDD, BDD, mocking, and benchmarking.") (home-page "https://github.com/seattlerb/minitest") (license license:expat))) +;; This is the last release of Minitest 4, which is used by some packages. +(define-public ruby-minitest-4 + (package (inherit ruby-minitest) + (version "4.7.5") + (source (origin + (method url-fetch) + (uri (rubygems-uri "minitest" version)) + (sha256 + (base32 + "03p6iban9gcpcflzp4z901s1hgj9369p6515h967ny6hlqhcf2iy")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-unsupported-method + (lambda _ + (substitute* "Rakefile" + (("self\\.rubyforge_name = .*") "")) + #t))))))) + (define-public ruby-minitest-sprint (package (name "ruby-minitest-sprint") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0002-gnu-Add-ruby-gem-hadar.patch" >From f42872ff4e69f89b38ba558b5b9b9d507f368922 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:30:40 +0100 Subject: [PATCH 02/23] gnu: Add ruby-gem-hadar. * gnu/packages/ruby.scm (ruby-gem-hadar): New variable. --- gnu/packages/ruby.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index e4880ca..58478e5 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1911,6 +1911,39 @@ documentation for Ruby code.") (home-page "https://github.com/flori/tins") (license license:expat))) +(define-public ruby-gem-hadar + (package + (name "ruby-gem-hadar") + (version "1.3.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "gem_hadar" version)) + (sha256 + (base32 + "1j8qri4m9wf8nbfv0kakrgsv2x8vg10914xgm6f69nw8zi3i39ws")))) + (build-system ruby-build-system) + ;; This gem needs itself at development time. We disable rebuilding of the + ;; gemspec to avoid this loop. + (arguments + `(#:tests? #f ; there are no tests + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (zero? (system* "gem" "build" "gem_hadar.gemspec"))))))) + (propagated-inputs + `(("git" ,git) + ("ruby-tins" ,ruby-tins) + ("ruby-sdoc" ,ruby-sdoc))) + (native-inputs + `(("bundler" ,bundler))) + (synopsis "Library for the development of Ruby gems") + (description + "This library contains some useful functionality to support the +development of Ruby gems.") + (home-page "https://github.com/flori/gem_hadar") + (license license:expat))) + (define-public ruby-json (package (name "ruby-json") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0003-gnu-Add-ruby-minitest-tu-shim.patch" >From 357fb2625ade186061cf6cfc72a79e0e81a62bf1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:31:09 +0100 Subject: [PATCH 03/23] gnu: Add ruby-minitest-tu-shim. * gnu/packages/ruby.scm (ruby-minitest-tu-shim): New variable. --- gnu/packages/ruby.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 58478e5..d3b3d39 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1944,6 +1944,51 @@ development of Ruby gems.") (home-page "https://github.com/flori/gem_hadar") (license license:expat))) +(define-public ruby-minitest-tu-shim + (package + (name "ruby-minitest-tu-shim") + (version "1.3.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "minitest_tu_shim" version)) + (sha256 + (base32 + "0xlyh94iirvssix157ng2akr9nqhdygdd0c6094hhv7dqcfrn9fn")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-test-include-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Rakefile" + (("Hoe\\.add_include_dirs .*") + (string-append "Hoe.add_include_dirs \"" + (assoc-ref inputs "ruby-minitest-4") + "/lib/ruby/gems/2.2.0/gems/minitest-" + ,(package-version ruby-minitest-4) + "/lib" "\""))))) + (add-before 'check 'fix-test-assumptions + (lambda _ + ;; The test output includes the file name, so a couple of tests + ;; fail. Changing the regular expressions slightly fixes this + ;; problem. + (substitute* "test/test_mini_test.rb" + (("output.sub!\\(.*, 'FILE:LINE'\\)") + "output.sub!(/\\/.+-[\\w\\/\\.]+:\\d+/, 'FILE:LINE')") + (("gsub\\(/.*, 'FILE:LINE'\\)") + "gsub(/\\/.+-[\\w\\/\\.]+:\\d+/, 'FILE:LINE')")) + #t))))) + (propagated-inputs + `(("ruby-minitest-4" ,ruby-minitest-4))) + (native-inputs + `(("ruby-hoe" ,ruby-hoe))) + (synopsis "Adapter library between minitest and test/unit") + (description + "This library bridges the gap between the small and fast minitest and +Ruby's large and slower test/unit.") + (home-page "https://rubygems.org/gems/minitest_tu_shim") + (license license:expat))) + (define-public ruby-json (package (name "ruby-json") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0004-gnu-Add-ruby-term-ansicolor.patch" >From 52d886b94a6e04079d48882152baa5b6c6e0b4fa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:34:09 +0100 Subject: [PATCH 04/23] gnu: Add ruby-term-ansicolor. * gnu/packages/ruby.scm (ruby-term-ansicolor): New variable. --- gnu/packages/ruby.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index d3b3d39..dec3e1e 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1989,6 +1989,38 @@ Ruby's large and slower test/unit.") (home-page "https://rubygems.org/gems/minitest_tu_shim") (license license:expat))) +(define-public ruby-term-ansicolor + (package + (name "ruby-term-ansicolor") + (version "1.3.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "term-ansicolor" version)) + (sha256 + (base32 + "0ydbbyjmk5p7fsi55ffnkq79jnfqx65c3nj8d9rpgl6sw85ahyys")))) + (build-system ruby-build-system) + ;; Rebuilding the gemspec seems to require git, even though this is not a + ;; git repository, so we just build the gem from the existing gemspec. + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (zero? (system* "gem" "build" "term-ansicolor.gemspec"))))))) + (propagated-inputs + `(("ruby-tins" ,ruby-tins))) + (native-inputs + `(("ruby-gem-hadar" ,ruby-gem-hadar) + ("ruby-minitest-tu-shim" ,ruby-minitest-tu-shim))) + (synopsis "Ruby library to control the attributes of terminal output") + (description + "This Ruby library uses ANSI escape sequences to control the attributes +of terminal output.") + (home-page "http://flori.github.io/term-ansicolor/") + ;; There is no mention of the "or later" clause. + (license license:gpl2))) + (define-public ruby-json (package (name "ruby-json") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0005-gnu-Add-ruby-pstree.patch" >From ac9a840be2672c68287ee4ff6e2418cc5924cd92 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:34:33 +0100 Subject: [PATCH 05/23] gnu: Add ruby-pstree. * gnu/packages/ruby.scm (ruby-pstree): New variable. --- gnu/packages/ruby.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index dec3e1e..0e4d1aa 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2021,6 +2021,28 @@ of terminal output.") ;; There is no mention of the "or later" clause. (license license:gpl2))) +(define-public ruby-pstree + (package + (name "ruby-pstree") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "pstree" version)) + (sha256 + (base32 + "1mig1sv5qx1cdyhjaipy8jlh9j8pnja04vprrzihyfr54x0215p1")))) + (build-system ruby-build-system) + (native-inputs + `(("ruby-gem-hadar" ,ruby-gem-hadar) + ("bundler" ,bundler))) + (synopsis "Create a process tree data structure") + (description + "This library uses the output of the @code{ps} command to create a +process tree data structure for the current host.") + (home-page "http://flori.github.com/pstree") + ;; There is no mention of the "or later" clause. + (license license:gpl2))) + (define-public ruby-json (package (name "ruby-json") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0006-gnu-Add-ruby-utils.patch" >From 1df541c1d2fb3f95b0665444a02064bc9c2b03ae Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:34:58 +0100 Subject: [PATCH 06/23] gnu: Add ruby-utils. * gnu/packages/ruby.scm (ruby-utils): New variable. --- gnu/packages/ruby.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 0e4d1aa..2f3e9f3 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2043,6 +2043,33 @@ process tree data structure for the current host.") ;; There is no mention of the "or later" clause. (license license:gpl2))) +(define-public ruby-utils + (package + (name "ruby-utils") + (version "0.2.4") + (source (origin + (method url-fetch) + (uri (rubygems-uri "utils" version)) + (sha256 + (base32 + "0vycgscxf3s1xn4yyfsq54zlh082581ga8azybmqgc4pij6iz2cd")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-tins" ,ruby-tins) + ("ruby-term-ansicolor" ,ruby-term-ansicolor) + ("ruby-pstree" ,ruby-pstree) + ("ruby-pry-editline" ,ruby-pry-editline))) + (native-inputs + `(("ruby-gem-hadar" ,ruby-gem-hadar) + ("bundler" ,bundler))) + (synopsis "Command line tools for working with Ruby") + (description + "This package provides assorted command line tools that may be useful +when working with Ruby code.") + (home-page "https://github.com/flori/utils") + ;; There is no mention of the "or later" clause. + (license license:gpl2))) + (define-public ruby-json (package (name "ruby-json") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0007-gnu-Add-ruby-json-pure.patch" >From 2b7e82e25b7bf1ac2e28c3d2a306dff5b7294d7f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:36:24 +0100 Subject: [PATCH 07/23] gnu: Add ruby-json-pure. * gnu/packages/ruby.scm (ruby-json-pure): New variable. --- gnu/packages/ruby.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 2f3e9f3..355bad6 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -30,6 +30,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages java) #:use-module (gnu packages libffi) + #:use-module (gnu packages ragel) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (guix packages) @@ -2089,6 +2090,54 @@ a native C extension.") (home-page "http://json-jruby.rubyforge.org/") (license (list license:ruby license:gpl2)))) ; GPL2 only +(define-public ruby-json-pure + (package + (name "ruby-json-pure") + (version "1.8.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "json_pure" version)) + (sha256 + (base32 + "025aykr360x6dr1jmg8pmsrx7gr30pws4p1q686vnb48zyw1sc94")))) + (build-system ruby-build-system) + (arguments + `(#:modules ((srfi srfi-1) + (ice-9 regex) + (rnrs io ports) + (guix build ruby-build-system) + (guix build utils)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'replace-git-ls-files + (lambda _ + ;; The existing gemspec file already contains a nice list of files + ;; that belong to the gem. We extract the list from the gemspec + ;; file and then replace the file list in the Rakefile to get rid + ;; of the call to "git ls-files". + (let* ((contents (call-with-input-file + "json.gemspec" get-string-all)) + ;; Guile is unhappy about the #\nul characters in comments. + (filtered (string-filter (lambda (char) + (not (equal? #\nul char))) + contents)) + (files (match:substring + (string-match " s\\.files = ([^]]+\\])" filtered) 1))) + (substitute* "Rakefile" + (("FileList\\[`git ls-files`\\.split\\(/\\\\n/\\)\\]") + (string-append "FileList" files)))) + #t))))) + (native-inputs + `(("ruby-permutation" ,ruby-permutation) + ("ruby-utils" ,ruby-utils) + ("ragel" ,ragel) + ("bundler" ,bundler))) + (synopsis "JSON implementation in pure Ruby") + (description + "This package provides a JSON implementation written in pure Ruby.") + (home-page "http://flori.github.com/json") + (license license:ruby))) + (define-public ruby-listen (package (name "ruby-listen") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0008-gnu-Add-ruby-saikuro-treemap.patch" >From c5a9b98f84d19eb31895a27fde980c0c8619fa75 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:36:58 +0100 Subject: [PATCH 08/23] gnu: Add ruby-saikuro-treemap. * gnu/packages/ruby.scm (ruby-saikuro-treemap): New variable. --- gnu/packages/ruby.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 355bad6..22d856e 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -572,6 +572,32 @@ format.") (home-page "https://github.com/nicksieger/ci_reporter") (license license:expat))) +(define-public ruby-saikuro-treemap + (package + (name "ruby-saikuro-treemap") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "saikuro_treemap" version)) + (sha256 + (base32 + "0w70nmh43mwfbpq20iindl61siqqr8acmf7p3m7n5ipd61c24950")))) + (build-system ruby-build-system) + ;; Some of the tests fail because the generated JSON has keys in a + ;; different order. This is a problem with the test suite rather than any + ;; of the involved libraries. + (arguments `(#:tests? #f)) + (propagated-inputs + `(("ruby-json-pure" ,ruby-json-pure) + ("ruby-atoulme-saikuro" ,ruby-atoulme-saikuro))) + (synopsis "Generate complexity treemap based on saikuro analysis") + (description + "This gem generates a treemap showing the complexity of Ruby code on +which it is run. It uses Saikuro under the covers to analyze Ruby code +complexity.") + (home-page "http://github.com/ThoughtWorksStudios/saikuro_treemap") + (license license:expat))) + (define-public ruby-orderedhash (package (name "ruby-orderedhash") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0009-gnu-Add-ruby-rb-fsevent.patch" >From 46e2ebc69b0c2ad39600407c5b9c0493dae6fa52 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:38:33 +0100 Subject: [PATCH 09/23] gnu: Add ruby-rb-fsevent. * gnu/packages/ruby.scm (ruby-rb-fsevent): New variable. --- gnu/packages/ruby.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 22d856e..9b8ce37 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2164,6 +2164,28 @@ a native C extension.") (home-page "http://flori.github.com/json") (license license:ruby))) +;; Even though this package only provides bindings for a Mac OSX API it is +;; required by "ruby-listen" at runtime. +(define-public ruby-rb-fsevent + (package + (name "ruby-rb-fsevent") + (version "0.9.6") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rb-fsevent" version)) + (sha256 + (base32 + "1hq57by28iv0ijz8pk9ynih0xdg7vnl1010xjcijfklrcv89a1j2")))) + (build-system ruby-build-system) + ;; Tests need "guard-rspec", which needs "guard". However, "guard" needs + ;; "listen", which needs "rb-fsevent" at runtime. + (arguments `(#:tests? #f)) + (synopsis "FSEvents API with signals catching") + (description + "This library provides Ruby bindings for the Mac OSX FSEvents API.") + (home-page "https://rubygems.org/gems/rb-fsevent") + (license license:expat))) + (define-public ruby-listen (package (name "ruby-listen") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0010-gnu-ruby-listen-Add-rb-fsevent-to-inputs.patch" >From 0f0803b8710c8dd8583bf50f4a629bd75573751e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:38:51 +0100 Subject: [PATCH 10/23] gnu: ruby-listen: Add rb-fsevent to inputs. * gnu/packages/ruby.scm (ruby-listen)[propagated-inputs]: Add "ruby-rb-fsevent". --- gnu/packages/ruby.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 9b8ce37..1783e4f 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2200,8 +2200,8 @@ a native C extension.") (build-system ruby-build-system) (arguments '(#:tests? #f)) ; no tests (propagated-inputs - ;; FIXME: omitting "ruby-rb-fsevent" which is only for MacOS. - `(("ruby-rb-inotify" ,ruby-rb-inotify))) + `(("ruby-rb-inotify" ,ruby-rb-inotify) + ("ruby-rb-fsevent" ,ruby-rb-fsevent))) (synopsis "Listen to file modifications") (description "The Listen gem listens to file modifications and notifies you about the changes.") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0011-gnu-Add-ruby-guard.patch" >From 80a21a4d7c107a2fbcbc9fc2f4fc1a9e7eab9afb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:40:13 +0100 Subject: [PATCH 11/23] gnu: Add ruby-guard. * gnu/packages/ruby.scm (ruby-guard): New variable. --- gnu/packages/ruby.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 1783e4f..f055930 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1782,6 +1782,54 @@ invocation, and source and documentation browsing.") (home-page "http://pryrepl.org") (license license:expat))) +(define-public ruby-guard + (package + (name "ruby-guard") + (version "2.13.0") + (source (origin + (method url-fetch) + ;; The gem does not include a Rakefile, nor does it contain a + ;; gemspec file, nor does it come with the tests. This is why + ;; we fetch the tarball from Github. + (uri (string-append "https://github.com/guard/guard/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1hwj0yi17k6f5axrm0k2bb7fq71dlp0zfywmd7pij9iimbppcca0")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; tests require cucumber + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-git-ls-files + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "guard.gemspec" + (("git ls-files -z") "find . -type f -print0")) + #t)) + (replace 'build + (lambda _ + (zero? (system* "gem" "build" "guard.gemspec"))))))) + (propagated-inputs + `(("ruby-formatador" ,ruby-formatador) + ("ruby-listen" ,ruby-listen) + ("ruby-lumberjack" ,ruby-lumberjack) + ("ruby-nenv" ,ruby-nenv) + ("ruby-notiffany" ,ruby-notiffany) + ("ruby-pry" ,ruby-pry) + ("ruby-shellany" ,ruby-shellany) + ("ruby-thor" ,ruby-thor))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec))) + (synopsis "Tool to handle events on file system modifications") + (description + "Guard is a command line tool to easily handle events on file system +modifications. Guard automates various tasks by running custom rules whenever +file or directories are modified.") + (home-page "http://guardgem.org/") + (license license:expat))) + (define-public ruby-thread-safe (package (name "ruby-thread-safe") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0012-gnu-Add-ruby-netrc.patch" >From a7173da6aae3346abf97c481f35db1645edd7ed7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:43:10 +0100 Subject: [PATCH 12/23] gnu: Add ruby-netrc. * gnu/packages/ruby.scm (ruby-netrc): New variable. --- gnu/packages/ruby.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index f055930..f2e5d4a 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2355,6 +2355,34 @@ other things and it comes with a command line interface.") (home-page "http://github.com/deivid-rodriguez/byebug") (license license:bsd-2))) +(define-public ruby-netrc + (package + (name "ruby-netrc") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "netrc" version)) + (sha256 + (base32 + "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "ruby" "-e" + "'Dir.glob \"./test/**/test_*.rb\", \ +&method(:require)'"))))))) + (native-inputs + `(("ruby-minitest" ,ruby-minitest))) + (synopsis "Library to read and update netrc files") + (description + "This library can read and update netrc files, preserving formatting +including comments and whitespace.") + (home-page "https://github.com/geemus/netrc") + (license license:expat))) + (define-public ruby-rack (package (name "ruby-rack") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0013-gnu-Add-ruby-unf-ext.patch" >From 0f965692f5f6e6234cf531e1d85a0e75b3b2ed75 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:43:41 +0100 Subject: [PATCH 13/23] gnu: Add ruby-unf-ext. * gnu/packages/ruby.scm (ruby-unf-ext): New variable. --- gnu/packages/ruby.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index f2e5d4a..8301f39 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2383,6 +2383,27 @@ including comments and whitespace.") (home-page "https://github.com/geemus/netrc") (license license:expat))) +(define-public ruby-unf-ext + (package + (name "ruby-unf-ext") + (version "0.0.7.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "unf_ext" version)) + (sha256 + (base32 + "0ly2ms6c3irmbr1575ldyh52bz2v0lzzr2gagf0p526k12ld2n5b")))) + (build-system ruby-build-system) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rake-compiler" ,ruby-rake-compiler) + ("ruby-test-unit" ,ruby-test-unit))) + (synopsis "Unicode normalization form support library") + (description + "This package provides unicode normalization form support for Ruby.") + (home-page "https://github.com/knu/ruby-unf_ext") + (license license:expat))) + (define-public ruby-rack (package (name "ruby-rack") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0014-gnu-Add-ruby-tdiff.patch" >From 0d06d2c181d1de4347cc314730ff317d04f15a22 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:44:17 +0100 Subject: [PATCH 14/23] gnu: Add ruby-tdiff. * gnu/packages/ruby.scm (ruby-tdiff): New variable. --- gnu/packages/ruby.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 8301f39..d77c2f7 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2404,6 +2404,28 @@ including comments and whitespace.") (home-page "https://github.com/knu/ruby-unf_ext") (license license:expat))) +(define-public ruby-tdiff + (package + (name "ruby-tdiff") + (version "0.3.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "tdiff" version)) + (sha256 + (base32 + "0k41jbvn8qq4mgrixnhlk742b971d136i8wpbcv2cczvi22xpc86")))) + (build-system ruby-build-system) + (native-inputs + `(("ruby-rspec-2" ,ruby-rspec-2) + ("ruby-yard" ,ruby-yard) + ("ruby-rubygems-tasks" ,ruby-rubygems-tasks))) + (synopsis "Calculate the differences between two tree-like structures") + (description + "This library provides functions to calculate the differences between two +tree-like structures. It is similar to Ruby's built-in @code{TSort} module.") + (home-page "https://github.com/postmodern/tdiff") + (license license:expat))) + (define-public ruby-rack (package (name "ruby-rack") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0015-gnu-Add-ruby-nokogiri-diff.patch" >From 4ceba945e6042b20d551e039ebde3025e7b00fe5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:44:35 +0100 Subject: [PATCH 15/23] gnu: Add ruby-nokogiri-diff. * gnu/packages/ruby.scm (ruby-nokogiri-diff): New variable. --- gnu/packages/ruby.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index d77c2f7..95e188b 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2426,6 +2426,31 @@ tree-like structures. It is similar to Ruby's built-in @code{TSort} module.") (home-page "https://github.com/postmodern/tdiff") (license license:expat))) +(define-public ruby-nokogiri-diff + (package + (name "ruby-nokogiri-diff") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "nokogiri-diff" version)) + (sha256 + (base32 + "0njr1s42war0bj1axb2psjvk49l74a8wzr799wckqqdcb6n51lc1")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-tdiff" ,ruby-tdiff) + ("ruby-nokogiri" ,ruby-nokogiri))) + (native-inputs + `(("ruby-rspec-2" ,ruby-rspec-2) + ("ruby-yard" ,ruby-yard) + ("ruby-rubygems-tasks" ,ruby-rubygems-tasks))) + (synopsis "Calculate the differences between two XML/HTML documents") + (description + "@code{Nokogiri::Diff} adds the ability to calculate the +differences (added or removed nodes) between two XML/HTML documents.") + (home-page "https://github.com/postmodern/nokogiri-diff") + (license license:expat))) + (define-public ruby-rack (package (name "ruby-rack") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0016-gnu-Add-ruby-crass.patch" >From 8870efd2d2f4d44cc2369da04bd2e8adc563a72a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:45:15 +0100 Subject: [PATCH 16/23] gnu: Add ruby-crass. * gnu/packages/ruby.scm (ruby-crass): New variable. --- gnu/packages/ruby.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 95e188b..d93423f 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2283,6 +2283,26 @@ multibyte strings, internationalization, time zones, and testing.") (home-page "http://www.rubyonrails.org") (license license:expat))) +(define-public ruby-crass + (package + (name "ruby-crass") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "crass" version)) + (sha256 + (base32 + "1c377r8g7m58y22803iyjgqkkvnnii0pymskda1pardxrzaighj9")))) + (build-system ruby-build-system) + (native-inputs + `(("bundler" ,bundler) + ("ruby-minitest" ,ruby-minitest))) + (synopsis "Pure Ruby CSS parser") + (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-ox (package (name "ruby-ox") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0017-gnu-Add-Gumbo-Parser.patch" >From 3c50262671198bd3f9e0c146cf7ab2a01b7d952d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:56:56 +0100 Subject: [PATCH 17/23] gnu: Add Gumbo Parser. * gnu/packages/web.scm (gumbo-parser): New variable. --- gnu/packages/web.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 6c3329f..e6659ec 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -3003,3 +3003,34 @@ the package implements a framework for performing fully customized requests where data can be processed either in memory, on disk, or streaming via the callback or connection interfaces.") (license l:expat))) + +(define-public gumbo-parser + (package + (name "gumbo-parser") + (version "0.10.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/google/" + "gumbo-parser/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1bgg2kbj311pqdzw2v33za7k66g1rv44kkvvnz2gnpaasi9k0ii8")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; tests require bundling googletest sources + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ (zero? (system* "sh" "autogen.sh"))))))) + ;; The release tarball lacks the generated files. + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (home-page "https://github.com/google/gumbo-parser") + (synopsis "HTML5 parsing library") + (description + "Gumbo is an implementation of the HTML5 parsing algorithm implemented as +a pure C99 library.") + (license l:asl2.0))) -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0018-gnu-Add-ruby-nokogumbo.patch" >From c740f24b036f8066d9485140e289c0826a15a3f8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 15:57:37 +0100 Subject: [PATCH 18/23] gnu: Add ruby-nokogumbo. * gnu/packages/ruby.scm (ruby-nokogumbo): New variable. --- gnu/packages/ruby.scm | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index d93423f..2c09db5 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -39,6 +39,7 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (gnu packages xml) + #:use-module (gnu packages web) #:use-module (guix build-system ruby)) (define-public ruby @@ -2303,6 +2304,69 @@ multibyte strings, internationalization, time zones, and testing.") (home-page "https://github.com/rgrove/crass/") (license license:expat))) +(define-public ruby-nokogumbo + (package + (name "ruby-nokogumbo") + (version "1.4.6") + (source (origin + ;; We use the git reference, because there's no Rakefile in the + ;; published gem and the tarball on Github is outdated. + (method git-fetch) + (uri (git-reference + (url "https://github.com/rubys/nokogumbo.git") + (commit "d56f954d20a"))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0bnppjy96xiadrsrc9dp8y6wvdwnkfa930n7acrp0mqm4qywl2wl")))) + (build-system ruby-build-system) + (arguments + `(#:modules ((guix build ruby-build-system) + (guix build utils) + (ice-9 rdelim)) + #:phases + (modify-phases %standard-phases + (add-before 'build 'build-gemspec + (lambda _ + (substitute* "Rakefile" + ;; Build Makefile even without a copy of gumbo-parser sources + (("'gumbo-parser/src',") "") + ;; We don't bundle gumbo-parser sources + (("'gumbo-parser/src/\\*',") "") + (("'gumbo-parser/visualc/include/\\*',") "") + ;; The definition of SOURCES will be cut in gemspec, and + ;; "FileList" will be undefined. + (("SOURCES \\+ FileList\\[") + "['ext/nokogumboc/extconf.rb', 'ext/nokogumboc/nokogumbo.c', ")) + + ;; Copy the Rakefile and cut out the gemspec. + (copy-file "Rakefile" ".gemspec") + (with-atomic-file-replacement ".gemspec" + (lambda (in out) + (let loop ((line (read-line in 'concat)) + (skipping? #t)) + (if (eof-object? line) + #t + (let ((skip-next? (if skipping? + (not (string-prefix? "SPEC =" line)) + (string-prefix? "end" line)))) + (when (or (not skipping?) + (and skipping? (not skip-next?))) + (format #t "~a" line) + (display line out)) + (loop (read-line in 'concat) skip-next?)))))) + #t))))) + (inputs + `(("gumbo-parser" ,gumbo-parser))) + (propagated-inputs + `(("ruby-nokogiri" ,ruby-nokogiri))) + (synopsis "Ruby bindings to the Gumbo HTML5 parser") + (description + "Nokogumbo allows a Ruby program to invoke the Gumbo HTML5 parser and +access the result as a Nokogiri parsed document.") + (home-page "https://github.com/rubys/nokogumbo/") + (license license:asl2.0))) + (define-public ruby-ox (package (name "ruby-ox") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0019-gnu-Add-ruby-clap.patch" >From 036f6db6b0b63426503739175d6521282363f30a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 16:58:26 +0100 Subject: [PATCH 19/23] gnu: Add ruby-clap. * gnu/packages/ruby.scm (ruby-clap): New variable. --- gnu/packages/ruby.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 2c09db5..0957449 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2703,6 +2703,26 @@ extending for custom Ruby constructs such as custom class level definitions.") (home-page "http://yardoc.org") (license license:expat))) +(define-public ruby-clap + (package + (name "ruby-clap") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "clap" version)) + (sha256 + (base32 + "190m05k3pca72c1h8k0fnvby15m303zi0lpb9c478ad19wqawa5q")))) + (build-system ruby-build-system) + ;; Clap needs cutest for running tests, but cutest needs clap. + (arguments `(#:tests? #f)) + (synopsis "Command line argument parsing for simple applications") + (description + "Clap provides command line argument parsing features. It covers the +simple case of executing code based on the flags or parameters passed.") + (home-page "https://github.com/djanowski/cutest") + (license license:expat))) + (define-public ruby-eventmachine (package (name "ruby-eventmachine") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0020-gnu-Add-ruby-cutest.patch" >From 31a6ed3b19ac6716cac8379fa80e8d8552d765bc Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 16:58:41 +0100 Subject: [PATCH 20/23] gnu: Add ruby-cutest. * gnu/packages/ruby.scm (ruby-cutest): New variable. --- gnu/packages/ruby.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 0957449..f536bb4 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2723,6 +2723,25 @@ simple case of executing code based on the flags or parameters passed.") (home-page "https://github.com/djanowski/cutest") (license license:expat))) +(define-public ruby-cutest + (package + (name "ruby-cutest") + (version "1.2.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "cutest" version)) + (sha256 + (base32 + "1mldhjn62g53vx4gq2qdqg2lgjvyrqxa8d0khf8347bbfgi16d32")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-clap" ,ruby-clap))) + (synopsis "Run tests in separate processes") + (description + "Cutest runs tests in separate processes to avoid shared state.") + (home-page "https://github.com/djanowski/cutest") + (license license:expat))) + (define-public ruby-eventmachine (package (name "ruby-eventmachine") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0021-gnu-Add-ruby-pygmentize.patch" >From 39c9ef487c91e0726998e6b111b431b569e859c2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 16:59:05 +0100 Subject: [PATCH 21/23] gnu: Add ruby-pygmentize. * gnu/packages/ruby.scm (ruby-pygmentize): New variable. --- gnu/packages/ruby.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index f536bb4..f347e17 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -30,6 +30,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages java) #:use-module (gnu packages libffi) + #:use-module (gnu packages python) #:use-module (gnu packages ragel) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) @@ -2742,6 +2743,46 @@ simple case of executing code based on the flags or parameters passed.") (home-page "https://github.com/djanowski/cutest") (license license:expat))) +(define-public ruby-pygmentize + (package + (name "ruby-pygmentize") + (version "0.0.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "pygmentize" version)) + (sha256 + (base32 + "1pxryhkiwvsz6xzda3bvqwz5z8ggzl1cdglf8qbcf4bb7akirdpb")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-pygmentize-path + (lambda _ + (substitute* "lib/pygmentize.rb" + (("\"/usr/bin/env python.*") + (string-append "\"" (which "pygmentize") "\"\n"))) + #t)) + (add-after 'build 'do-not-use-vendor-directory + (lambda _ + ;; Remove bundled pygments sources + ;; FIXME: ruby-build-system does not support snippets. + (delete-file-recursively "vendor") + (substitute* "pygmentize.gemspec" + (("\"vendor/\\*\\*/\\*\",") "")) + #t))))) + (inputs + `(("pygments" ,python-pygments))) + (native-inputs + `(("ruby-cutest" ,ruby-cutest) + ("ruby-nokogiri" ,ruby-nokogiri))) + (synopsis "Thin Ruby wrapper around pygmentize") + (description + "Pygmentize provides a simple way to call pygmentize from within a Ruby +application.") + (home-page "https://github.com/djanowski/pygmentize") + (license license:expat))) + (define-public ruby-eventmachine (package (name "ruby-eventmachine") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0022-gnu-Add-ruby-sanitize.patch" >From 7033b5bfe76995179564de9bfbdf950ee0a3f549 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 17:11:14 +0100 Subject: [PATCH 22/23] gnu: Add ruby-sanitize. * gnu/packages/ruby.scm (ruby-sanitize): New variable. --- gnu/packages/ruby.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index f347e17..aa3c5cd 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2368,6 +2368,38 @@ access the result as a Nokogiri parsed document.") (home-page "https://github.com/rubys/nokogumbo/") (license license:asl2.0))) +(define-public ruby-sanitize + (package + (name "ruby-sanitize") + (version "4.0.0") + (source (origin + (method url-fetch) + ;; The gem does not include the Rakefile, so we download the + ;; release tarball from Github. + (uri (string-append "https://github.com/rgrove/" + "sanitize/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "055xnj38l60gxnnng76kpy2l2jbrp0byjdyq17jw79w7l4b40znr")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-crass" ,ruby-crass) + ("ruby-nokogiri" ,ruby-nokogiri) + ("ruby-nokogumbo" ,ruby-nokogumbo))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-minitest" ,ruby-minitest) + ("ruby-redcarpet" ,ruby-redcarpet) + ("ruby-yard" ,ruby-yard))) + (synopsis "Whitelist-based HTML and CSS sanitizer") + (description + "Sanitize is a whitelist-based HTML and CSS sanitizer. Given a list of +acceptable elements, attributes, and CSS properties, Sanitize will remove all +unacceptable HTML and/or CSS from a string.") + (home-page "https://github.com/rgrove/sanitize/") + (license license:expat))) + (define-public ruby-ox (package (name "ruby-ox") -- 2.1.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0023-gnu-Add-ruby-redcloth.patch" >From 25c05682f533a3186c5a4515637812d9ea1ae558 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 25 Nov 2015 17:25:22 +0100 Subject: [PATCH 23/23] gnu: Add ruby-redcloth. * gnu/packages/ruby.scm (ruby-redcloth): New variable. --- gnu/packages/ruby.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index aa3c5cd..f565971 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2423,6 +2423,43 @@ alternative to Marshal for Object serialization. ") (home-page "http://www.ohler.com/ox") (license license:expat))) +(define-public ruby-redcloth + (package + (name "ruby-redcloth") + (version "4.2.9") + (source (origin + (method url-fetch) + (uri (rubygems-uri "RedCloth" version)) + (sha256 + (base32 + "06pahxyrckhgb7alsxwhhlx1ib2xsx33793finj01jk8i054bkxl")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + ;; Redcloth has complicated rake tasks to build various versions for + ;; multiple targets using RVM. We don't want this so we just use the + ;; existing gemspec. + (replace 'build + (lambda _ + (zero? (system* "gem" "build" "redcloth.gemspec")))) + (add-after 'install 'wrap-bin-redcloth + (lambda* (#:key outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") + "/bin/redcloth") + `("GEM_HOME" ":" prefix (,(getenv "GEM_HOME")))) + #t))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-diff-lcs" ,ruby-diff-lcs) + ("ruby-rspec-2" ,ruby-rspec-2))) + (synopsis "Textile markup language parser for Ruby") + (description + "RedCloth is a Ruby parser for the Textile markup language.") + (home-page "http://redcloth.org") + (license license:expat))) + (define-public ruby-pg (package (name "ruby-pg") -- 2.1.0 --=-=-=--