aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/ruby.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-02-17 17:21:56 +0000
committerChristopher Baines <mail@cbaines.net>2019-03-23 09:56:36 +0000
commit35602819afac38182a3f0b1028f588803d94e7f6 (patch)
treede2a94decf58ed527518f03da2e0885dbc8548f3 /gnu/packages/ruby.scm
parentc47e141deb607714e52c9f7646878f371c17d004 (diff)
downloadguix-35602819afac38182a3f0b1028f588803d94e7f6.tar
guix-35602819afac38182a3f0b1028f588803d94e7f6.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.
Diffstat (limited to 'gnu/packages/ruby.scm')
-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 6812275457..3e656e2cb3 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.")