aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorBen Woodcroft <donttrustben@gmail.com>2018-02-05 11:41:28 +0100
committerChristopher Baines <mail@cbaines.net>2018-08-05 17:15:44 +0100
commita7892f35f5f07ae5915e4687ef6ee6dbf6861f74 (patch)
treef4f7e906d37a2855c1b35021de27fbac84e2ea63 /gnu
parentdc3d1824d572db874a8981f5c06961a2942d9dbe (diff)
downloadguix-a7892f35f5f07ae5915e4687ef6ee6dbf6861f74.tar
guix-a7892f35f5f07ae5915e4687ef6ee6dbf6861f74.tar.gz
gnu: Add ruby-cucumber and ruby-aruba.
These packages are mutually dependant.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/ruby.scm133
1 files changed, 133 insertions, 0 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 24c169e943..0dbde5491e 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -30,6 +30,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages base)
+ #:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages readline)
@@ -5323,3 +5324,135 @@ programs running in the background, in Ruby.")
(description "Dependency of ruby-cucumber")
(home-page "https://github.com/cucumber/cucumber-ruby-wire")
(license license:expat)))
+
+(define-public ruby-aruba
+ (package
+ (name "ruby-aruba")
+ (version "0.14.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "aruba" version))
+ (sha256
+ (base32
+ "11v7d4d3q1as3w5md22q3vilnmqw1icp7sg955ylfzmxjc07pdby"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:tests? #f ; There are 3 test failures to do with running commands, not
+ ; sure what the issue is.
+ #:test-target "spec"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'fix-gemfile
+ (lambda _
+ (substitute* "Gemfile"
+ ((".*byebug.*") "\n")
+ ((".*pry.*") "\n")
+ ((".*yaml.*") "\n")
+ ((".*bcat.*") "\n")
+ ((".*kramdown.*") "\n")
+ ((".*fuubar.*") "\n")
+ ((".*rubocop.*") "\n")
+ ((".*cucumber-pro.*") "\n")
+ ((".*license_finder.*") "\n")
+ ((".*relish.*") "\n")
+ )
+ (substitute* "spec/spec_helper.rb"
+ ((".*simplecov.*") "")
+ (("^SimpleCov.*") ""))
+ #t))
+ (add-before 'check 'set-home
+ (lambda _ (setenv "HOME" "/tmp") #t)))))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-simplecov" ,ruby-simplecov)
+ ("ruby-rspec" ,ruby-rspec)
+ ("ruby-fuubar" ,ruby-fuubar)))
+ (propagated-inputs
+ `(("ruby-childprocess" ,ruby-childprocess)
+ ("ruby-contracts" ,ruby-contracts)
+ ("ruby-cucumber" ,ruby-cucumber)
+ ("ruby-ffi" ,ruby-ffi)
+ ("ruby-rspec-expectations" ,ruby-rspec-expectations)
+ ("ruby-thor" ,ruby-thor)))
+ (synopsis
+ "Extension for popular TDD and BDD frameworks like \"Cucumber\", \"RSpec\" and \"Minitest\" to make testing commandline applications meaningful, easy and fun.")
+ (description
+ "Extension for popular TDD and BDD frameworks like \"Cucumber\", \"RSpec\" and \"Minitest\" to make testing commandline applications meaningful, easy and fun.")
+ (home-page "http://github.com/cucumber/aruba")
+ (license license:expat)))
+
+;; A version of ruby-aruba without tests run so that circular dependencies can
+;; be avoided.
+(define ruby-aruba-without-tests
+ (package (inherit ruby-aruba)
+ (arguments
+ `(#:tests? #f))
+ (propagated-inputs
+ (map (lambda (input)
+ (if (string=? (car input)
+ "ruby-cucumber")
+ `("ruby-cucumber" ,ruby-cucumber-without-tests)
+ input))
+ (package-propagated-inputs ruby-aruba)))
+ (native-inputs
+ `())))
+
+(define-public ruby-cucumber
+ (package
+ (name "ruby-cucumber")
+ (version "2.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "cucumber" version))
+ (sha256
+ (base32
+ "1k4j31a93r0zhvyq2mm2k8irppbvkzbsg44r3mf023959v18fzih"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:test-target "spec"
+ ;; TODO: Test failure as documented at
+ ;; https://github.com/cucumber/cucumber/issues/58
+ ;;
+ ;; Cucumber::Formatter::Html when writing the report to a file with a
+ ;; step that embeds a snapshot converts the snapshot path to a relative
+ ;; path
+ ;;
+ ;; Failure/Error: expect(@out).to
+ ;; receive(:respond_to?).with(:path).and_return(true)
+ ;;
+ ;; (#<StringIO:0x00005555570887a0>).respond_to?(:path)
+ ;; expected: 1 time with arguments: (:path)
+ ;; received: 3 times with arguments: (:path)
+ ;; # ./spec/cucumber/formatter/html_spec.rb:35
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-builder" ,ruby-builder)
+ ("ruby-cucumber-core" ,ruby-cucumber-core-1)
+ ("ruby-cucumber-wire" ,ruby-cucumber-wire)
+ ("ruby-diff-lcs" ,ruby-diff-lcs)
+ ("ruby-gherkin" ,ruby-gherkin)
+ ("ruby-multi-json" ,ruby-multi-json)
+ ("ruby-multi-test" ,ruby-multi-test)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ;; Use a untested version of aruba, to avoid a circular dependency, as
+ ;; ruby-aruba depends on ruby-cucumber.
+ ("ruby-aruba", ruby-aruba-without-tests)
+ ("ruby-rspec" ,ruby-rspec)
+ ("ruby-pry" ,ruby-pry)
+ ("ruby-nokogiri" ,ruby-nokogiri)))
+ (synopsis
+ "Behaviour Driven Development with elegance and joy")
+ (description
+ "Behaviour Driven Development with elegance and joy")
+ (home-page "http://cukes.info")
+ (license license:asl2.0)))
+
+(define ruby-cucumber-without-tests
+ (package (inherit ruby-cucumber)
+ (arguments
+ `(#:tests? #f))
+ (native-inputs
+ `())))