diff options
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r-- | gnu/packages/ruby.scm | 233 |
1 files changed, 225 insertions, 8 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 1b70f842ae..7d736c7c27 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -15,6 +15,9 @@ ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com> +;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org> +;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> +;;; Copyright © 2019 Collin J. Doering <collin@rekahsoft.ca> ;;; ;;; This file is part of GNU Guix. ;;; @@ -668,6 +671,35 @@ RSpec tests.") (home-page "https://github.com/dblock/rspec-rerun") (license license:expat))) +(define-public ruby-rspec-wait + (package + (name "ruby-rspec-wait") + (version "0.0.9") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rspec-wait" version)) + (sha256 + (base32 + "0gvj1bp5ccx001dyvcgk2j49s5sl6vs9fdaqqb08z3bd1554hsww")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "rake" "spec")))))) + (native-inputs + `(("bundler" ,bundler))) + (propagated-inputs + `(("ruby-rspec" ,ruby-rspec))) + (home-page "https://github.com/laserlemon/rspec-wait") + (synopsis "Wait for conditions in RSpec") + (description + "RSpec::Wait strives to make it easier to test asynchronous or slow +interactions.") + (license license:expat))) + (define-public ruby-rspec (package (name "ruby-rspec") @@ -2034,13 +2066,13 @@ the SimpleCov code coverage tool for Ruby version 1.9 and above.") (define-public ruby-simplecov (package (name "ruby-simplecov") - (version "0.12.0") + (version "0.17.0") (source (origin (method url-fetch) (uri (rubygems-uri "simplecov" version)) (sha256 (base32 - "0ffhyrfnq2zm2mc1742a4hqy475g3qa1zf6yfldwg1ldh5sn3qbx")))) + "0dq0nkaxvbsnl70hkimy35g4yjfs3blx4s7nbpzbvgqx72hxgv5v")))) (build-system ruby-build-system) ;; Simplecov depends on rubocop for code style checking at build time. ;; Rubocop needs simplecov at build time. @@ -3637,24 +3669,24 @@ to reproduce user environments.") (define-public ruby-mini-portile-2 (package (inherit ruby-mini-portile) - (version "2.2.0") + (version "2.4.0") (source (origin (method url-fetch) (uri (rubygems-uri "mini_portile2" version)) (sha256 (base32 - "0g5bpgy08q0nc0anisg3yvwc1gc3inl854fcrg48wvg7glqd6dpm")))))) + "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy")))))) (define-public ruby-nokogiri (package (name "ruby-nokogiri") - (version "1.8.0") + (version "1.10.4") (source (origin (method url-fetch) (uri (rubygems-uri "nokogiri" version)) (sha256 (base32 - "1nffsyx1xjg6v5n9rrbi8y1arrcx2i5f21cp6clgh9iwiqkr7rnn")))) + "0nmdrqqz1gs0fwkgzxjl4wr554gr8dc1fkrqjc2jpsvwgm41rygv")))) (build-system ruby-build-system) (arguments ;; Tests fail because Nokogiri can only test with an installed extension, @@ -8453,14 +8485,14 @@ interface over different adapters.") (define-public ruby-nio4r (package (name "ruby-nio4r") - (version "2.3.1") + (version "2.4.0") (source (origin (method url-fetch) (uri (rubygems-uri "nio4r" version)) (sha256 (base32 - "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr")))) + "0v2cpqmw6dmysa91ffzl736kgjjzmnf4xlgz6g16fk4yqhn71340")))) (build-system ruby-build-system) (arguments '(#:phases @@ -8570,6 +8602,33 @@ characteristics.") (home-page "https://github.com/sinatra/mustermann") (license license:expat))) +(define-public ruby-htmlentities + (package + (name "ruby-htmlentities") + (version "4.3.4") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "htmlentities" version)) + (sha256 + (base32 + "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (map (lambda (file) + (invoke "ruby" "-Itest" file)) + (find-files "./test" ".*_test\\.rb"))))))) + (synopsis "Encode and decode (X)HTML entities") + (description + "This package provides a module for encoding and decoding (X)HTML +entities.") + (home-page "https://github.com/threedaymonk/htmlentities") + (license license:expat))) + (define-public ruby-sinatra (package (name "ruby-sinatra") @@ -8737,3 +8796,161 @@ then check out http://127.0.0.1:1080 to see the mail.") "This package provides a pure Ruby library for event-driven IO.") (home-page "https://github.com/castwide/backport") (license license:expat))) + +(define-public ruby-json-schema + (package + (name "ruby-json-schema") + (version "2.8.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "json-schema" version)) + (sha256 + (base32 + "1yv5lfmr2nzd14af498xqd5p89f3g080q8wk0klr3vxgypsikkb5")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (invoke "gem" "build" ".gemspec")))))) + (propagated-inputs + `(("ruby-addressable" ,ruby-addressable))) + (synopsis "Ruby JSON Schema Validator") + (description "This library provides Ruby with an interface for validating +JSON objects against a JSON schema conforming to JSON Schema Draft 4. Legacy +support for JSON Schema Draft 3, JSON Schema Draft 2, and JSON Schema Draft 1 +is also included.") + (home-page "https://github.com/ruby-json-schema/json-schema") + (license license:expat))) + +(define-public swagger-diff + (package + (name "swagger-diff") + (version "1.1.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "swagger-diff" version)) + (sha256 + (base32 + "1hxx50nga1bqn254iqjcdwkc9c72364ks9lyjyw10ajz0l0ly7sn")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "spec" + #:phases + (modify-phases %standard-phases + ;; Don't run or require rubocop, the code linting tool, as this is a + ;; bit unnecessary. + (add-after 'unpack 'dont-run-rubocop + (lambda _ + (substitute* "Rakefile" + ((".*rubocop.*") "") + ((".*RuboCop.*") "")) + #t))))) + (propagated-inputs + `(("ruby-json-schema" ,ruby-json-schema))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec-core" ,ruby-rspec-core) + ("ruby-rspec-expectations" ,ruby-rspec-expectations))) + (synopsis + "Compare Open API Initiative specification files") + (description + "Swagger::Diff is a utility for comparing two different Open API +Initiative (OAI) specifications (formerly known as Swagger specifications). +It is intended to determine whether a newer API specification is +backwards-compatible with an older API specification.") + (home-page "https://github.com/civisanalytics/swagger-diff") + (license license:bsd-3))) + +(define-public ruby-reverse-markdown + (package + (name "ruby-reverse-markdown") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "reverse_markdown" version)) + (sha256 + (base32 + "0w7y5n74daajvl9gixr91nh8670d7mkgspkk3ql71m8azq3nffbg")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-nokogiri" ,ruby-nokogiri))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec) + ("ruby-kramdown" ,ruby-kramdown) + ("ruby-simplecov" ,ruby-simplecov))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "rspec")) + #t))))) + (synopsis "Convert HTML into Markdown") + (description + "This Ruby module allows you to map simple HTML back into +Markdown---e.g., if you want to import existing HTML data in your +application.") + (home-page "https://github.com/xijo/reverse_markdown") + (license license:wtfpl2))) + +(define-public ruby-solargraph + (package + (name "ruby-solargraph") + (version "0.36.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "solargraph" version)) + (sha256 + (base32 + "0b93xzkgd1h06da9gdnwivj1mzbil8lc072y2838dy6i7bxgpy9i")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-backport" ,ruby-backport) + ("bundler" ,bundler) + ("ruby-htmlentities" ,ruby-htmlentities) + ("ruby-jaro-winkler" ,ruby-jaro-winkler) + ("ruby-maruku" ,ruby-maruku) + ("ruby-nokogiri" ,ruby-nokogiri) + ("ruby-parser" ,ruby-parser) + ("ruby-reverse-markdown" ,ruby-reverse-markdown) + ("ruby-rubocop" ,ruby-rubocop) + ("ruby-thor" ,ruby-thor) + ("ruby-tilt" ,ruby-tilt) + ("ruby-yard" ,ruby-yard))) + (native-inputs + `(("ruby-rspec" ,ruby-rspec) + ("ruby-pry" ,ruby-pry) + ("ruby-simplecov" ,ruby-simplecov) + ("ruby-webmock" ,ruby-webmock-2))) + ;; FIXME: can't figure out how to run the tests properly: + + ;; An error occurred while loading spec_helper. + ;; Failure/Error: return gem_original_require(path) + ;; LoadError: + ;; cannot load such file -- spec_helper + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "rspec")) + #t))))) + (synopsis + "IDE tools for code completion, inline documentation, and static analysis") + (description + "Solargraph provides a comprehensive suite of tools for Ruby +programming: intellisense, diagnostics, inline documentation, and type +checking.") + (home-page "https://solargraph.org/") + (license license:expat))) |