summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-02-17 17:21:56 +0000
committerChristopher Baines <christopher.baines@digital.cabinet-office.gov.uk>2019-02-24 20:33:55 +0000
commit23dd8a07abc38168b0adccd872c45e152d443d92 (patch)
tree01c024f4470fa58e5d89bfd04e618f83c7943d21
parent015d4037c496542d25b4a12cd1181f24c31cd77a (diff)
downloadgnu-guix-23dd8a07abc38168b0adccd872c45e152d443d92.tar
gnu-guix-23dd8a07abc38168b0adccd872c45e152d443d92.tar.gz
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.
-rw-r--r--gnu/packages/ruby.scm40
1 files changed, 34 insertions, 6 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 9baf6ef400..d8fc06e3c7 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4423,16 +4423,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.")