guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Add ruby-net-ssh (and 12 other gems)


From: Ricardo Wurmus
Subject: [PATCH] Add ruby-net-ssh (and 12 other gems)
Date: Fri, 20 Nov 2015 12:23:12 +0100

Hi Guix,

I’ve finally packaged yet another top runtime dependency of buildr[1]
(which I hope we can use to build maven): ruby-net-ssh.

It depends on a number of gems, including the popular ruby-mocha and
ruby-redcarpet.

Here are the patches:

>From bd29492138ba93ae2c38f2ff5035259564cb4e4d Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Fri, 20 Nov 2015 12:09:12 +0100
Subject: [PATCH 01/13] gnu: Add ruby-power-assert.

* gnu/packages/ruby.scm (ruby-power-assert): 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 3193aea..dc73f38 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -946,6 +946,25 @@ using Net::HTTP, supporting reconnection and retry 
according to RFC 2616.")
     (home-page "https://github.com/drbrain/net-http-persistent";)
     (license license:expat)))
 
+(define-public ruby-power-assert
+  (package
+    (name "ruby-power-assert")
+    (version "0.2.6")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "power_assert" version))
+              (sha256
+               (base32
+                "0gbj379jhnff8rbb6m3kzdm282szjz1a021xzxa38d1bnswj2jx3"))))
+    (build-system ruby-build-system)
+    (native-inputs
+     `(("bundler" ,bundler)))
+    (synopsis "Assert library with descriptive assertion messages")
+    (description "Power-assert is an assertion library providing descriptive
+assertion messages for tests.")
+    (home-page "https://github.com/k-tsj/power_assert";)
+    (license (list license:bsd-2 license:ruby))))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
2.1.0

>From 40b6063c227c70fdf83c118dec8a79e9f1d02a22 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Fri, 20 Nov 2015 12:09:45 +0100
Subject: [PATCH 02/13] gnu: Add ruby-locale.

* gnu/packages/ruby.scm (ruby-locale): 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 dc73f38..326cae0 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -965,6 +965,31 @@ assertion messages for tests.")
     (home-page "https://github.com/k-tsj/power_assert";)
     (license (list license:bsd-2 license:ruby))))
 
+(define-public ruby-locale
+  (package
+    (name "ruby-locale")
+    (version "2.1.2")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "locale" version))
+              (sha256
+               (base32
+                "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x"))))
+    (build-system ruby-build-system)
+    ;; ruby-test-unit is required to run tests, but that needs ruby-packnga,
+    ;; which needs ruby-gettext, which needs ruby-locale.  To break the
+    ;; dependency cycle we disable tests.
+    (arguments `(#:tests? #f))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-yard" ,ruby-yard)))
+    (synopsis "Ruby library providing basic localization APIs")
+    (description
+     "Ruby-Locale is the pure ruby library which provides basic APIs for
+localization.")
+    (home-page "https://github.com/ruby-gettext/locale";)
+    (license (list license:lgpl3+ license:ruby))))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
2.1.0

>From 3daa972d71340b3e35b94d1c127d520e6216ec26 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Fri, 20 Nov 2015 12:10:22 +0100
Subject: [PATCH 03/13] gnu: Add ruby-text.

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

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 326cae0..0a31efb 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -990,6 +990,24 @@ localization.")
     (home-page "https://github.com/ruby-gettext/locale";)
     (license (list license:lgpl3+ license:ruby))))
 
+(define-public ruby-text
+  (package
+    (name "ruby-text")
+    (version "1.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "text" version))
+              (sha256
+               (base32
+                "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg"))))
+    (build-system ruby-build-system)
+    (synopsis "Collection of text algorithms for Ruby")
+    (description
+     "This package provides a collection of text algorithms: Levenshtein,
+Soundex, Metaphone, Double Metaphone, Porter Stemming.")
+    (home-page "http://github.com/threedaymonk/text";)
+    (license license:expat)))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
2.1.0

>From 379de3dabfdb23183379ac126f9c54046ecde3de Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Fri, 20 Nov 2015 12:10:49 +0100
Subject: [PATCH 04/13] gnu: Add ruby-gettext.

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

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 0a31efb..9aff0e9 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1008,6 +1008,35 @@ Soundex, Metaphone, Double Metaphone, Porter Stemming.")
     (home-page "http://github.com/threedaymonk/text";)
     (license license:expat)))
 
+(define-public ruby-gettext
+  (package
+    (name "ruby-gettext")
+    (version "3.1.7")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "gettext" version))
+              (sha256
+               (base32
+                "1hg9islkm324mb4sd4za1fgafj1hqnm3bdvzj3k4fqpnzqnbcfiq"))))
+    (build-system ruby-build-system)
+    ;; ruby-test-unit is required to run tests, but that needs ruby-packnga,
+    ;; which needs ruby-gettext.  To break the dependency cycle we disable
+    ;; tests.
+    (arguments `(#:tests? #f))
+    (propagated-inputs
+     `(("ruby-locale" ,ruby-locale)
+       ("ruby-text" ,ruby-text)))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-yard" ,ruby-yard)))
+    (synopsis "GNU gettext-like program for Ruby")
+    (description
+     "Gettext is a GNU gettext-like program for Ruby.  The catalog
+file (po-file) used is the same as that used by GNU gettext, allowing you to
+use GNU gettext tools for maintenance.")
+    (home-page "http://ruby-gettext.github.com/";)
+    (license (list license:lgpl3+ license:ruby))))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
2.1.0

>From a944582a203d53f5db7e51f4504c119422302c05 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Fri, 20 Nov 2015 12:11:16 +0100
Subject: [PATCH 05/13] gnu: Add ruby-packnga.

* gnu/packages/ruby.scm (ruby-packnga): 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 9aff0e9..a90526c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1037,6 +1037,31 @@ use GNU gettext tools for maintenance.")
     (home-page "http://ruby-gettext.github.com/";)
     (license (list license:lgpl3+ license:ruby))))
 
+(define-public ruby-packnga
+  (package
+    (name "ruby-packnga")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "packnga" version))
+              (sha256
+               (base32
+                "1i71yhvlkvi5fp3m8jl9317cnddkbnrcy0syrmiw4y1lrq0cbncj"))))
+    (build-system ruby-build-system)
+    ;; ruby-test-unit is required to run tests, but that needs ruby-packnga.
+    ;; To break the dependency cycle we disable tests.
+    (arguments `(#:tests? #f))
+    (propagated-inputs
+     `(("ruby-gettext" ,ruby-gettext)
+       ("ruby-yard" ,ruby-yard)))
+    (native-inputs
+     `(("bundler" ,bundler)))
+    (synopsis "Utility library to package internationalized libraries")
+    (description
+     "Packnga is a library to translate to many languages using YARD.")
+    (home-page "http://ranguba.org/packnga/";)
+    (license license:lgpl2.0+)))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
2.1.0

>From f3ae8dba9fcb2eedd6f2b7440bde02d0a4f61aae Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Fri, 20 Nov 2015 12:11:39 +0100
Subject: [PATCH 06/13] gnu: Add ruby-test-unit.

* gnu/packages/ruby.scm (ruby-test-unit): 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 a90526c..6753a2d 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1062,6 +1062,31 @@ use GNU gettext tools for maintenance.")
     (home-page "http://ranguba.org/packnga/";)
     (license license:lgpl2.0+)))
 
+(define-public ruby-test-unit
+  (package
+    (name "ruby-test-unit")
+    (version "3.1.5")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "test-unit" version))
+              (sha256
+               (base32
+                "0jxznjzwmrlp8wqjxsd06qbiddffn68pdhz6nrqpjbiln1z3af4w"))))
+    (build-system ruby-build-system)
+    (propagated-inputs
+     `(("ruby-power-assert" ,ruby-power-assert)))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-packnga" ,ruby-packnga)
+       ("ruby-yard" ,ruby-yard)))
+    (synopsis "Unit testing framework for Ruby")
+    (description "@code{Test::Unit} is unit testing framework for Ruby, based
+on xUnit principles.  These were originally designed by Kent Beck, creator of
+extreme programming software development methodology, for Smalltalk's SUnit.
+It allows writing tests, checking results and automated testing in Ruby.")
+    (home-page "http://test-unit.github.io/";)
+    (license (list license:psfl license:ruby))))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
2.1.0

>From 7f60bc248ad37a4f91a09054352e31aae66d09b1 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Fri, 20 Nov 2015 12:12:02 +0100
Subject: [PATCH 07/13] gnu: Add ruby-metaclass.

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

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 6753a2d..9d7c464 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1087,6 +1087,40 @@ It allows writing tests, checking results and automated 
testing in Ruby.")
     (home-page "http://test-unit.github.io/";)
     (license (list license:psfl license:ruby))))
 
+(define-public ruby-metaclass
+  (package
+    (name "ruby-metaclass")
+    (version "0.0.4")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "metaclass" version))
+              (sha256
+               (base32
+                "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'add-test-unit-to-search-path
+          (lambda* (#:key inputs #:allow-other-keys)
+            (substitute* "Rakefile"
+              (("t\\.libs << \"test\"" line)
+               (string-append line "; t.libs << \""
+                              (assoc-ref inputs "ruby-test-unit")
+                              "/lib/ruby/gems/2.2.0/gems/test-unit-"
+                              ,(package-version ruby-test-unit)
+                              "/lib\"")))
+            #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-test-unit" ,ruby-test-unit)))
+    (synopsis "Ruby library adding metaclass method to all objects")
+    (description
+     "Metaclass is a Ruby library adding a @code{metaclass} method to all Ruby
+objects.")
+    (home-page "http://github.com/floehopper/metaclass";)
+    (license license:expat)))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
2.1.0

>From 32b8e4a65f260ba95b803fd8b49e417665c6ae27 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Fri, 20 Nov 2015 12:12:25 +0100
Subject: [PATCH 08/13] gnu: Add ruby-blankslate.

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

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 9d7c464..7090fc0 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1121,6 +1121,36 @@ objects.")
     (home-page "http://github.com/floehopper/metaclass";)
     (license license:expat)))
 
+(define-public ruby-blankslate
+  (package
+    (name "ruby-blankslate")
+    (version "3.1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "blankslate" version))
+              (sha256
+               (base32
+                "0fwkb4d1j9gc7vdwn2nxvwgy2g5wlag4c4bp7bl85jvq0kgp6cyx"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+          (lambda _
+            (zero? (system* "rspec" "spec/"))
+            #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec)))
+    (synopsis "Abstract base class with no predefined methods")
+    (description
+     "BlankSlate provides an abstract base class with no predefined
+methods (except for @code{__send__} and @code{__id__}).  BlankSlate is useful
+as a base class when writing classes that depend upon
address@hidden (e.g. dynamic proxies).")
+    (home-page "http://github.com/masover/blankslate";)
+    (license license:expat)))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
2.1.0

>From 65878a05d934942c82a083e978a3d7abb85888e9 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Fri, 20 Nov 2015 12:12:47 +0100
Subject: [PATCH 09/13] gnu: Add ruby-instantiator.

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

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 7090fc0..ece8a8e 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1151,6 +1151,42 @@ as a base class when writing classes that depend upon
     (home-page "http://github.com/masover/blankslate";)
     (license license:expat)))
 
+(define-public ruby-instantiator
+  (package
+    (name "ruby-instantiator")
+    (version "0.0.6")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "instantiator" version))
+              (sha256
+               (base32
+                "0mfmqhg9xrv9i8i1kmphf15ywddhivyh2z3ccl0xjw8qy54zr21i"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'add-test-unit-to-search-path
+          (lambda* (#:key inputs #:allow-other-keys)
+            (substitute* "Rakefile"
+              (("t\\.libs << \"test\"" line)
+               (string-append line "; t.libs << \""
+                              (assoc-ref inputs "ruby-test-unit")
+                              "/lib/ruby/gems/2.2.0/gems/test-unit-"
+                              ,(package-version ruby-test-unit)
+                              "/lib\"")))
+            #t)))))
+    (propagated-inputs
+     `(("ruby-blankslate" ,ruby-blankslate)))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-test-unit" ,ruby-test-unit)))
+    (synopsis "Instantiate an arbitrary Ruby class")
+    (description
+     "Instantiator lets you instantiate an arbitrary Ruby class without
+knowing anything about the constructor.")
+    (home-page "https://github.com/floehopper/instantiator";)
+    (license license:expat)))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
2.1.0

>From 6d5ae746ca7dab1d7621409898d0f1d4414f2c55 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Fri, 20 Nov 2015 12:13:09 +0100
Subject: [PATCH 10/13] gnu: Add ruby-introspection.

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

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ece8a8e..c0d3fd7 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1187,6 +1187,44 @@ knowing anything about the constructor.")
     (home-page "https://github.com/floehopper/instantiator";)
     (license license:expat)))
 
+(define-public ruby-introspection
+  (package
+    (name "ruby-introspection")
+    (version "0.0.3")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "introspection" version))
+              (sha256
+               (base32
+                "0g1j71sqfxbqk32wj7d0bkd3dlayfqzprfq3dbr0rq107xbxjcrr"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'add-test-unit-to-search-path
+          (lambda* (#:key inputs #:allow-other-keys)
+            (substitute* "Rakefile"
+              (("t\\.libs << \"test\"" line)
+               (string-append line "; t.libs << \""
+                              (assoc-ref inputs "ruby-test-unit")
+                              "/lib/ruby/gems/2.2.0/gems/test-unit-"
+                              ,(package-version ruby-test-unit)
+                              "/lib\"")))
+            #t)))))
+    (propagated-inputs
+     `(("ruby-instantiator" ,ruby-instantiator)
+       ("ruby-metaclass" ,ruby-metaclass)))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-blankslate" ,ruby-blankslate)
+       ("ruby-test-unit" ,ruby-test-unit)))
+    (synopsis "Dynamic inspection of the method hierarchy on a Ruby object")
+    (description
+     "Introspection provides tools to inspect the hierarchy of method
+definitions on a Ruby object.")
+    (home-page "https://github.com/floehopper/introspection";)
+    (license license:expat)))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
2.1.0

>From bfb98308f2ead0b6026867bc5ca929f38d365881 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Fri, 20 Nov 2015 12:13:33 +0100
Subject: [PATCH 11/13] gnu: Add ruby-redcarpet.

* gnu/packages/ruby.scm (ruby-redcarpet): 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 c0d3fd7..e867be4 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1225,6 +1225,38 @@ definitions on a Ruby object.")
     (home-page "https://github.com/floehopper/introspection";)
     (license license:expat)))
 
+(define-public ruby-redcarpet
+  (package
+    (name "ruby-redcarpet")
+    (version "3.3.3")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "redcarpet" version))
+              (sha256
+               (base32
+                "14i3wypp97bpk20679d1csy88q4hsgfqbnqw6mryl77m2g0d09pk"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; The gem archive does not include the conformance tests.
+         (add-after 'unpack 'disable-conformance-tests
+          (lambda _
+            (substitute* "Rakefile"
+              (("task :test => %w\\[test:unit test:conformance\\]")
+               "task :test => %w[test:unit]"))
+            #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-test-unit" ,ruby-test-unit)
+       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+    (synopsis "Extensible Markdown to (X)HTML converter")
+    (description
+     "Redcarpet is an extensible Ruby library for Markdown processing and
+conversion to (X)HTML.")
+    (home-page "http://github.com/vmg/redcarpet";)
+    (license license:expat)))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
2.1.0

>From d52effc82e9839e9d74d3bb292b2b4ff48508345 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Fri, 20 Nov 2015 12:13:56 +0100
Subject: [PATCH 12/13] gnu: Add ruby-mocha.

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

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index e867be4..c820ce5 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1257,6 +1257,62 @@ conversion to (X)HTML.")
     (home-page "http://github.com/vmg/redcarpet";)
     (license license:expat)))
 
+(define-public ruby-mocha
+  (package
+    (name "ruby-mocha")
+    (version "1.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "mocha" version))
+              (sha256
+               (base32
+                "107nmnngbv8lq2g7hbjpn5kplb4v2c8gs9lxrg6vs8gdbddkilzi"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'add-test-unit-to-search-path
+          (lambda* (#:key inputs #:allow-other-keys)
+            (substitute* "Rakefile"
+              (("t\\.libs << 'test'" line)
+               (string-append line "; t.libs << \""
+                              (assoc-ref inputs "ruby-test-unit")
+                              "/lib/ruby/gems/2.2.0/gems/test-unit-"
+                              ,(package-version ruby-test-unit)
+                              "/lib\"")))
+            #t))
+         (add-before 'check 'use-latest-redcarpet
+          (lambda _
+            (substitute* "mocha.gemspec"
+              (("<redcarpet>, \\[\"~> 1\"\\]")
+               "<redcarpet>, [\">= 3\"]"))
+            #t))
+         (add-before 'check 'hardcode-version
+          (lambda _
+            ;; Mocha is undefined at build time
+            (substitute* "Rakefile"
+              (("#\\{Mocha::VERSION\\}") ,version))
+            #t))
+         (add-before 'check 'remove-failing-test
+          ;; FIXME: This test fails for reasons unrelated to Guix packaging.
+          (lambda _
+            (delete-file "test/acceptance/stubbing_nil_test.rb")
+            #t)))))
+    (propagated-inputs
+     `(("ruby-metaclass" ,ruby-metaclass)))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-yard" ,ruby-yard)
+       ("ruby-introspection" ,ruby-introspection)
+       ("ruby-test-unit" ,ruby-test-unit)
+       ("ruby-redcarpet" ,ruby-redcarpet)))
+    (synopsis "Mocking and stubbing library for Ruby")
+    (description
+     "Mocha is a mocking and stubbing library with JMock/SchMock syntax, which
+allows mocking and stubbing of methods on real (non-mock) classes.")
+    (home-page "http://gofreerange.com/mocha/docs";)
+    (license license:expat)))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
2.1.0

>From 3cc8463626f7274bbfdcc21a9c435208ee3dc283 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Fri, 20 Nov 2015 12:14:56 +0100
Subject: [PATCH 13/13] gnu: Add ruby-net-ssh.

* gnu/packages/ruby.scm (ruby-net-ssh): 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 c820ce5..678a0f6 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1313,6 +1313,27 @@ allows mocking and stubbing of methods on real 
(non-mock) classes.")
     (home-page "http://gofreerange.com/mocha/docs";)
     (license license:expat)))
 
+(define-public ruby-net-ssh
+  (package
+    (name "ruby-net-ssh")
+    (version "3.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "net-ssh" version))
+              (sha256
+               (base32
+                "1dzqkgwi9xm6mbfk1rkk17rzmz8m5xakqi21w1b97ybng6kkw0hf"))))
+    (build-system ruby-build-system)
+    (native-inputs
+     `(("ruby-mocha" ,ruby-mocha)
+       ("ruby-test-unit" ,ruby-test-unit)))
+    (synopsis "Ruby implementation of the SSH2 client protocol")
+    (description "@code{Net::SSH} is a pure-Ruby implementation of the SSH2
+client protocol.  It allows you to write programs that invoke and interact
+with processes on remote servers, via SSH2.")
+    (home-page "https://github.com/net-ssh/net-ssh";)
+    (license license:expat)))
+
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-- 
2.1.0

~~ Ricardo

[1]: https://rubygems.org/gems/buildr

reply via email to

[Prev in Thread] Current Thread [Next in Thread]