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.
This commit is contained in:
Christopher Baines 2019-02-17 17:21:56 +00:00
parent c47e141deb
commit 35602819af
No known key found for this signature in database
GPG Key ID: 5E28A33B0B84F577
1 changed files with 34 additions and 6 deletions

View File

@ -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.")