guix-commits
[Top][All Lists]
Advanced

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

05/12: gnu: ruby-listen: Enable running the tests.


From: guix-commits
Subject: 05/12: gnu: ruby-listen: Enable running the tests.
Date: Sat, 23 Mar 2019 05:57:31 -0400 (EDT)

cbaines pushed a commit to branch master
in repository guix.

commit 35602819afac38182a3f0b1028f588803d94e7f6
Author: Christopher Baines <address@hidden>
Date:   Sun Feb 17 17:21:56 2019 +0000

    gnu: ruby-listen: Enable running the tests.
    
    * gnu/packages/ruby.scm (ruby-listen)[source]: Switch to the Git repository,
    as this includes the tests.
    [arguments]: Set #:test-target and tweak the Rakefile to avoid requiring
    Rubocop unnecessarily.
    [native-inputs]: Add bundler and ruby-rspec for running the test suite.
    [inputs]: Add ruby-thor, as this is used for bin/listen.
    [propagated-inputs]: Add ruby-dep, as this is listed as a runtime dependency
    in the gemspec.
---
 gnu/packages/ruby.scm | 40 ++++++++++++++++++++++++++++++++++------
 1 file changed, 34 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 6812275..3e656e2 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4483,16 +4483,44 @@ a native C extension.")
     (version "3.1.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (rubygems-uri "listen" version))
+       ;; The gem does not include a Rakefile, so fetch from the Git
+       ;; repository.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/guard/listen.git";)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx"))))
+         "1hqmkfa9f2xb5jlvqbafdxjd5ax75jm8gqj5nh3k22xq0kacsvgg"))))
     (build-system ruby-build-system)
-    (arguments '(#:tests? #f)) ; no tests
+    (arguments
+     `(#:test-target "spec"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-files-in-gemspec
+           (lambda _
+             (substitute* "listen.gemspec"
+               (("`git ls-files -z`") "`find . -type f -printf '%P\\\\0' |sort 
-z`"))
+             #t))
+         (add-before 'check 'remove-unnecessary-dependencies'
+           (lambda _
+             (substitute* "Rakefile"
+               ;; Rubocop is for code linting, and is unnecessary for running
+               ;; the tests.
+               ((".*rubocop.*") ""))
+             #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec)))
+    (inputs
+     `(;; ruby-thor is used for the command line interface, and is referenced
+       ;; in the wrapper, and therefore just needs to be an input.
+       ("ruby-thor" ,ruby-thor)))
     (propagated-inputs
-     `(("ruby-rb-inotify" ,ruby-rb-inotify)
-       ("ruby-rb-fsevent" ,ruby-rb-fsevent)))
+     `(("ruby-rb-fsevent" ,ruby-rb-fsevent)
+       ("ruby-rb-inotify" ,ruby-rb-inotify)
+       ("ruby-dep" ,ruby-dep)))
     (synopsis "Listen to file modifications")
     (description "The Listen gem listens to file modifications and notifies
 you about the changes.")



reply via email to

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