summary refs log tree commit diff
path: root/gnu/packages/ruby.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r--gnu/packages/ruby.scm233
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)))