;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;;
(define-public ruby-2.3
(package
(inherit ruby)
- (version "2.3.7")
+ (version "2.3.8")
(source
(origin
(method url-fetch)
"/ruby-" version ".tar.xz"))
(sha256
(base32
- "1nwfaifq5624p1ml56qq5dy5w38z37x22r0qgrbgbzrzklmqy7y6"))
+ "1zhxbjff08pvbnxvn58krns6q0p6g4977q6ykfn823gxhifn63wi"))
(modules '((guix build utils)))
(snippet `(begin
;; Remove bundled libffi
(("/bin/sh") (which "sh")))
#t)))))))
-(define-public ruby-concurrent
- (package
- (name "ruby-concurrent")
- (version "1.0.5")
- (source (origin
- (method url-fetch)
- (uri (rubygems-uri "concurrent-ruby" version))
- (sha256
- (base32
- "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf"))))
- (build-system ruby-build-system)
- (arguments `(#:tests? #f)); No rakefile
- (home-page "https://github.com/ruby-concurrency/concurrent-ruby")
- (synopsis "Concurrency tools for Ruby")
- (description "This gem provides concurrency tools for Ruby. It provides
-a library of common thread-safe types and data-structures as well as abstractions
-for concurrency and communication between threads.")
- (license license:expat)))
-
(define-public ruby-highline
(package
(name "ruby-highline")
#t))
(replace 'check
(lambda _
- (zero? (system* "ruby" "-Ilib" "test/test.rb")))))))
+ (invoke "ruby" "-Ilib" "test/test.rb"))))))
(synopsis "Library to perform operations with sequence permutations")
(description "This package provides a Ruby library to perform different
operations with permutations of sequences, such as strings and arrays.")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-tests
- (lambda _
- (substitute* "Rakefile"
- (("system \"shindo") "system \"./bin/shindo")
- ;; This test doesn't work, so we disable it.
- (("fail \"The build_error test should fail") "#"))
- #t)))))
+ (lambda _
+ (substitute* "tests/tests_helper.rb"
+ (("-rubygems") ""))
+ (substitute* "Rakefile"
+ (("system \"shindo") "system \"./bin/shindo")
+ ;; This test doesn't work, so we disable it.
+ (("fail \"The build_error test should fail") "#")
+ ((" -rubygems") ""))
+ #t)))))
(propagated-inputs
`(("ruby-formatador" ,ruby-formatador)))
(synopsis "Simple depth first Ruby testing")
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _ (zero? (system* "rspec" "spec/")))))))
+ (lambda _ (invoke "rspec" "spec/"))))))
(native-inputs
`(("bundler" ,bundler)
("ruby-rspec" ,ruby-rspec)))
(modify-phases %standard-phases
(replace 'check
(lambda _
- (zero? (system* "script/test")))))))
+ (invoke "script/test"))))))
(native-inputs
`(("bundler" ,bundler)
("ruby-turn" ,ruby-turn)))
(define-public ruby-multi-json
(package
(name "ruby-multi-json")
- (version "1.12.2")
+ (version "1.13.1")
(source
(origin
(method url-fetch)
- (uri (rubygems-uri "multi_json" version))
+ ;; Tests are not distributed at rubygems.org so download from GitHub
+ ;; instead.
+ (uri (string-append "https://github.com/intridea/multi_json/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x"))))
+ "1s64xqvrnrxmb59v6b2kchnisawg5ai9ky1w60dy6z6ws9la1xv4"))))
(build-system ruby-build-system)
(arguments
- '(#:tests? #f)) ;; No testsuite included in the gem.
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-signing-key-reference
+ (lambda _
+ (substitute* "multi_json.gemspec"
+ ((".*spec.signing_key.*") ""))
+ #t)))))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)
+ ("ruby-yard" ,ruby-yard)
+ ("ruby-json-pure" ,ruby-json-pure)
+ ("ruby-oj" ,ruby-oj)
+ ("ruby-yajl-ruby" ,ruby-yajl-ruby)))
(synopsis "Common interface to multiple JSON libraries for Ruby")
(description
"This package provides a common interface to multiple JSON libraries,
including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem,
NSJSONSerialization, gson.rb, JrJackson, and OkJson.")
- (home-page "http://github.com/intridea/multi_json")
+ (home-page "https://github.com/intridea/multi_json")
+ (license license:expat)))
+
+(define-public ruby-multi-test
+ (package
+ (name "ruby-multi-test")
+ (version "0.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "multi_test" version))
+ (sha256
+ (base32
+ "1sx356q81plr67hg16jfwz9hcqvnk03bd9n75pmdw8pfxjfy1yxd"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; Tests require different sets of specific gem versions to be available,
+ ;; and there is no gemfile that specifies the newest versions of
+ ;; dependencies to be tested.
+ #:tests? #f))
+ (synopsis
+ "Interface to testing libraries loaded into a running Ruby process")
+ (description
+ "@code{multi_test} provides a uniform interface onto whatever testing
+libraries that have been loaded into a running Ruby process to help control
+rogue test/unit/autorun requires.")
+ (home-page "https://github.com/cucumber/multi_test")
(license license:expat)))
(define-public ruby-arel
#t))
(replace 'build
(lambda _
- (zero? (system* "gem" "build" "guard.gemspec")))))))
+ (invoke "gem" "build" "guard.gemspec"))))))
(propagated-inputs
`(("ruby-formatador" ,ruby-formatador)
("ruby-listen" ,ruby-listen)
;; list of files.
(replace 'build
(lambda _
- (zero? (system* "gem" "build" "rb-inotify.gemspec")))))))
+ (invoke "gem" "build" "rb-inotify.gemspec"))))))
(propagated-inputs
`(("ruby-ffi" ,ruby-ffi)))
(native-inputs
;; causes an error.
(substitute* "tins.gemspec"
(("\"lib/spruz\", ") ""))
- (zero? (system* "gem" "build" "tins.gemspec")))))))
+ (invoke "gem" "build" "tins.gemspec"))))))
(synopsis "Assorted tools for Ruby")
(description "Tins is a Ruby library providing assorted tools.")
(home-page "https://github.com/flori/tins")
(modify-phases %standard-phases
(replace 'build
(lambda _
- (zero? (system* "gem" "build" "gem_hadar.gemspec")))))))
+ (invoke "gem" "build" "gem_hadar.gemspec"))))))
(propagated-inputs
`(("git" ,git)
("ruby-tins" ,ruby-tins)
(arguments
`(#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'fix-test
+ (lambda -
+ (substitute* "tests/hsl_triple_test.rb"
+ (("0\\\\\\.0%")
+ "0\\.?0?%"))))
(replace 'build
(lambda _
- (zero? (system* "gem" "build" "term-ansicolor.gemspec")))))))
+ (invoke "gem" "build" "term-ansicolor.gemspec"))))))
(propagated-inputs
`(("ruby-tins" ,ruby-tins)))
(native-inputs
(lambda _
;; Regenerate gemspec so loosened dependency constraints are
;; propagated.
- (zero? (system* "rake" "gemspec")))))))
+ (invoke "rake" "gemspec"))))))
(native-inputs
`(("bundler" ,bundler)
("ragel" ,ragel)
(modify-phases %standard-phases
(replace 'check
(lambda _
- ;; There is no tests, instead attempt to load the library.
- (zero? (system* "ruby" "-Ilib" "-r" "active_support")))))))
+ ;; There are no tests, instead attempt to load the library.
+ (invoke "ruby" "-Ilib" "-r" "active_support"))))))
(propagated-inputs
`(("ruby-concurrent" ,ruby-concurrent)
("ruby-i18n" ,ruby-i18n)
(home-page "https://github.com/rgrove/sanitize/")
(license license:expat)))
+(define-public ruby-oj
+ (package
+ (name "ruby-oj")
+ (version "3.6.7")
+ (source
+ (origin
+ (method url-fetch)
+ ;; Version on rubygems.org does not contain Rakefile, so download from
+ ;; GitHub instead.
+ (uri (string-append "https://github.com/ohler55/oj/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1x28ga72jxlnmsd8g8c0fw81vlh54r0qgagw2lxsd3x3la091g2h"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:test-target "test_all"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'disable-bundler
+ (lambda _
+ (substitute* "Rakefile"
+ (("Bundler\\.with_clean_env") "1.times")
+ (("bundle exec ") "")))))))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)
+ ("ruby-rake-compiler" ,ruby-rake-compiler)))
+ (synopsis "JSON parser for Ruby optimized for speed")
+ (description
+ "Oj is a JSON parser and generator for Ruby, where the encoding and
+decoding of JSON is implemented as a C extension to Ruby.")
+ (home-page "http://www.ohler.com/oj")
+ (license (list license:expat ; Ruby code
+ license:bsd-3)))) ; extension code
+
(define-public ruby-ox
(package
(name "ruby-ox")
;; existing gemspec.
(replace 'build
(lambda _
- (zero? (system* "gem" "build" "redcloth.gemspec")))))))
+ (invoke "gem" "build" "redcloth.gemspec"))))))
(native-inputs
`(("bundler" ,bundler)
("ruby-diff-lcs" ,ruby-diff-lcs)
;; There is no Rakefile and minitest can only run one file at once,
;; so we have to iterate over all test files.
(lambda _
- (and (map (lambda (file)
- (zero? (system* "ruby" "-Itest" file)))
- (find-files "./test" "test_.*\\.rb"))))))))
+ (map (lambda (file)
+ (invoke "ruby" "-Itest" file))
+ (find-files "./test" "test_.*\\.rb")))))))
(native-inputs
`(("ruby-minitest" ,ruby-minitest)))
(synopsis "Library to read and update netrc files")
`(#:phases
(modify-phases %standard-phases
(add-after 'build 'build-ext
- (lambda _ (zero? (system* "rake" "compile:unf_ext")))))))
+ (lambda _ (invoke "rake" "compile:unf_ext"))))))
(native-inputs
`(("bundler" ,bundler)
("ruby-rake-compiler" ,ruby-rake-compiler)
(define-public ruby-rack
(package
(name "ruby-rack")
- (version "2.0.5")
+ (version "2.0.6")
(source
(origin
(method url-fetch)
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1k1k4wk10l6bxx46pw58j2p3nmyzjqnr65hbjjqydd6517fmxgib"))
+ "0pb3g5ymvbf07xaxcn51dpqv3djlxavckp3qkxsjdxiqznb0d9p1"))
;; Ignore test which fails inside the build environment but works
;; outside.
(patches (search-patches "ruby-rack-ignore-failing-test.patch"))))
(home-page "https://github.com/pjotrp/bioruby-logger-plugin")
(license license:expat)))
+(define-public ruby-yajl-ruby
+ (package
+ (name "ruby-yajl-ruby")
+ (version "1.4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "yajl-ruby" version))
+ (sha256
+ (base32
+ "16v0w5749qjp13xhjgr2gcsvjv6mf35br7iqwycix1n2h7kfcckf"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:test-target "spec"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'patch-test-to-update-load-path
+ (lambda _
+ (substitute* "spec/parsing/large_number_spec.rb"
+ (("require \"yajl\"")
+ "$LOAD_PATH << 'lib'; require 'yajl'"))
+ #t)))))
+ (native-inputs
+ `(("ruby-rake-compiler" ,ruby-rake-compiler)
+ ("ruby-rspec" ,ruby-rspec)))
+ (synopsis "Streaming JSON parsing and encoding library for Ruby")
+ (description
+ "Ruby C bindings to the Yajl JSON stream-based parser library. The API
+is compatible with the JSON gem, so yajl-ruby can act as a drop in
+replacement.
+
+A modified copy of yajl is used, and included in the package.")
+ (home-page "https://github.com/brianmario/yajl-ruby")
+ (license (list license:expat ; Ruby code, yajl_ext.c and yajl_ext.h
+ license:bsd-3)))) ; Included, modified copy of yajl
+
(define-public ruby-yard
(package
(name "ruby-yard")
- (version "0.9.6")
+ (version "0.9.16")
(source
(origin
(method url-fetch)
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0rsz4bghgx7fryzyhlz8wlnd2m9xgyvf1xhrq58mnzfrrfm41bdg"))))
+ "0sqpbayy9sb406jh0zqg6qha1xds863qz9531dh6vp58hc00clfq"))))
(build-system ruby-build-system)
(arguments
`(#:phases
;; $HOME needs to be set to somewhere writeable for tests to run
(setenv "HOME" "/tmp")
;; Run tests without using 'rake' to avoid dependencies.
- (zero? (system* "rspec")))))))
+ (invoke "rspec"))))))
(native-inputs
`(("ruby-rspec" ,ruby-rspec)
("ruby-rack" ,ruby-rack)))
;; without issue.
(replace 'check
(lambda _
- (zero? (system* "ruby" "-Ilib" "bin/turn" "-h")))))))
+ (invoke "ruby" "-Ilib" "bin/turn" "-h"))))))
(propagated-inputs
`(("ruby-ansi" ,ruby-ansi)
("ruby-minitest" ,ruby-minitest-4)))
#t))
(add-before 'check 'add-gemtest-file
;; This file exists in the repository but is not distributed.
- (lambda _ (zero? (system* "touch" ".gemtest")))))))
+ (lambda _ (invoke "touch" ".gemtest"))))))
(inputs
`(("sqlite" ,sqlite)))
(native-inputs
(lambda _
;; Do not run tests to avoid circular dependence with rails.
;; Instead just import the library to test.
- (zero? (system* "ruby" "-Ilib" "-r" "shoulda-context")))))))
+ (invoke "ruby" "-Ilib" "-r" "shoulda-context"))))))
(synopsis "Test::Unit context framework extracted from Shoulda")
(description
"@code{shoulda-context} is the context framework extracted from Shoulda.
(lambda _
;; Do not run tests to avoid circular dependence with rails. Instead
;; just import the library to test.
- (zero? (system* "ruby" "-Ilib" "-r" "shoulda-matchers")))))))
+ (invoke "ruby" "-Ilib" "-r" "shoulda-matchers"))))))
(propagated-inputs
`(("ruby-activesupport" ,ruby-activesupport)))
(synopsis "Collection of testing matchers extracted from Shoulda")
(replace 'check
;; Don't run tests to avoid circular dependence with rails. Instead
;; just import the library to test.
- (lambda _ (zero? (system* "ruby" "-Ilib" "-r" "shoulda")))))))
+ (lambda _ (invoke "ruby" "-Ilib" "-r" "shoulda"))))))
(propagated-inputs
`(("ruby-shoulda-context" ,ruby-shoulda-context)
("ruby-shoulda-matchers" ,ruby-shoulda-matchers-2)))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(if tests?
- (zero?
- (system* "ruby"
- "-Ilib"
- "test/runner.rb"))
+ (invoke "ruby"
+ "-Ilib"
+ "test/runner.rb")
#t))))))
(native-inputs
`(("ruby-rack" ,ruby-rack)))
;; be require'd.
(replace 'check
(lambda _
- (zero? (system* "ruby" "-Ilib" "-r" "ansi"))))
+ (invoke "ruby" "-Ilib" "-r" "ansi")))
(add-before 'validate-runpath 'replace-broken-symlink
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
;; Run test without calling 'rake' so that jeweler is
;; not required as an input.
(lambda _
- (zero? (system* "rspec" "spec/bio-commandeer_spec.rb")))))))
+ (invoke "rspec" "spec/bio-commandeer_spec.rb"))))))
(propagated-inputs
`(("ruby-bio-logger" ,ruby-bio-logger)
("ruby-systemu" ,ruby-systemu)))
(modify-phases %standard-phases
(replace 'check
(lambda _
- (zero? (system* "ruby" "-Ilib" "-r" "rubytest")))))))
+ (invoke "ruby" "-Ilib" "-r" "rubytest"))))))
(propagated-inputs
`(("ruby-ansi" ,ruby-ansi)))
(synopsis "Universal test harness for Ruby")
(modify-phases %standard-phases
(replace 'check
(lambda _
- (zero? (system* "ruby" "-Ilib" "-r" "brass")))))))
+ (invoke "ruby" "-Ilib" "-r" "brass"))))))
(synopsis "Basic foundational assertions framework")
(description
"BRASS (Bare-Metal Ruby Assertion System Standard) is a basic
(modify-phases %standard-phases
(replace 'check
(lambda _
- (zero? (system* "ruby" "-Ilib" "bin/qed" "--copyright")))))))
+ (invoke "ruby" "-Ilib" "bin/qed" "--copyright"))))))
(propagated-inputs
`(("ruby-ansi" ,ruby-ansi)
("ruby-brass" ,ruby-brass)))
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _ (zero? (system* "qed"))))
+ (lambda _ (invoke "qed")))
(add-before 'validate-runpath 'replace-broken-symlink
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(arguments
`(#:phases
(modify-phases %standard-phases
- (replace 'check (lambda _ (zero? (system* "qed")))))))
+ (replace 'check (lambda _ (invoke "qed"))))))
(propagated-inputs
`(("ruby-ae" ,ruby-ae)
("ruby-ansi" ,ruby-ansi)
(modify-phases %standard-phases
(replace 'check
(lambda _
- (and (zero? (system* "qed"))
- (zero? (system* "rubytest" "-Ilib" "-Itest" "test/"))))))))
+ (invoke "qed")
+ (invoke "rubytest" "-Ilib" "-Itest" "test/"))))))
(native-inputs
`(("ruby-rubytest-cli" ,ruby-rubytest-cli)
("ruby-qed" ,ruby-qed)
(modify-phases %standard-phases
(replace 'check
(lambda _
- (zero? (system* "rspec" "spec/rc4_spec.rb")))))))
+ (invoke "rspec" "spec/rc4_spec.rb"))))))
(native-inputs
`(("ruby-rspec" ,ruby-rspec-2)))
(synopsis "Implementation of the RC4 algorithm")
(add-before 'check 'rake-compile
;; Fix the test error described at
;; https://github.com/ruby-concurrency/concurrent-ruby/pull/408
- (lambda _ (zero? (system* "rake" "compile"))))
+ (lambda _ (invoke "rake" "compile")))
(add-before 'check 'remove-timecop-dependency
;; Remove timecop-dependent tests as having timecop as a depedency
;; causes circular depedencies.
(home-page "https://github.com/mikel/mail")
(license license:expat)))
+(define-public ruby-mathn
+ (package
+ (name "ruby-mathn")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "mathn" version))
+ (sha256
+ (base32
+ "1wn812llln9jzgybz2d7536q39z3gi99i6fi0j1dapcpzvhgrr0p"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rake-compiler" ,ruby-rake-compiler)))
+ (synopsis "Extends math operations for increased precision")
+ (description
+ "This gem makes mathematical operations more precise in Ruby and
+integrates other mathematical standard libraries. Prior to Ruby 2.5,
+@code{mathn} was part of the Ruby standard library.")
+ (home-page "https://github.com/ruby/mathn")
+ (license license:bsd-2)))
+
(define-public ruby-code-statistics
(package
(name "ruby-code-statistics")
("ruby-diffy" ,ruby-diffy)
("ruby-terminfo" ,ruby-terminfo)))
(arguments
- ;; No Rakefile
- `(#:tests? #f))
+ `(;; This package contains tests for a sass implementation, and the to
+ ;; avoid any circular dependencies, the tests are not run here
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-test
+ (lambda _
+ (delete-file "spec/values/colors/alpha_hex-3.5/error")
+ (substitute* "spec/values/colors/alpha_hex-3.5/expected_output.css"
+ (("string") "color")))))))
(home-page "https://github.com/sass/sass-spec")
(synopsis "Test suite for Sass")
(description "Sass Spec is a test suite for Sass. Test cases are all in
(define-public ruby-sass
(package
(name "ruby-sass")
- (version "3.5.7")
+ (version "3.6.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "sass" version))
(sha256
(base32
- "1sy7xsbgpcy90j5ynbq967yplffp74pvph3r8ivn2sv2b44q6i61"))))
+ "18c6prbw9wl8bqhb2435pd9s0lzarl3g7xf8pmyla28zblvwxmyh"))))
(build-system ruby-build-system)
(propagated-inputs
`(("ruby-sass-listen" ,ruby-sass-listen)))
(native-inputs
- `(("ruby-sass-spec" ,ruby-sass-spec)))
+ `(("ruby-sass-spec" ,ruby-sass-spec)
+ ("ruby-mathn" ,ruby-mathn)))
(home-page "http://sass-lang.com/")
(synopsis "CSS extension language")
(description "Sass is a CSS extension language. It extends CSS with
functionality from Prawn.")
(license license:gpl3+)))
-(define-public ruby-yard
- (package
- (name "ruby-yard")
- (version "0.9.16")
- (source (origin
- (method url-fetch)
- (uri (rubygems-uri "yard" version))
- (sha256
- (base32
- "0lmmr1839qgbb3zxfa7jf5mzy17yjl1yirwlgzdhws4452gqhn67"))))
- (build-system ruby-build-system)
- (arguments `(#:test-target "spec"))
- (home-page "https://yardoc.org/")
- (synopsis "Ruby documentation tool")
- (description "YARD is a documentation generation tool for the Ruby
-programming language. It enables the user to generate consistent, usable
-documentation that can be exported to a number of formats very easily, and
-also supports extending for custom Ruby constructs such as custom class level
-definitions.")
- (license license:expat)))
-
(define-public ruby-prawn
(package
(name "ruby-prawn")
(synopsis "PDF generation for Ruby")
(description "Prawn is a pure Ruby PDF generation library.")
(license license:gpl3+)))
+
+(define-public ruby-prawn-table
+ (package
+ (name "ruby-prawn-table")
+ (version "0.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "prawn-table" version))
+ (sha256
+ (base32
+ "1nxd6qmxqwl850icp18wjh5k0s3amxcajdrkjyzpfgq0kvilcv9k"))))
+ (build-system ruby-build-system)
+ (arguments `(#:tests? #f)); No rakefile
+ (propagated-inputs
+ `(("ruby-prawn" ,ruby-prawn)))
+ (home-page "https://github.com/prawnpdf/prawn-table")
+ (synopsis "Tables support for Prawn")
+ (description "This gem provides tables support for Prawn.")
+ (license license:gpl3+)))
+
+(define-public ruby-kramdown
+ (package
+ (name "ruby-kramdown")
+ (version "1.17.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "kramdown" version))
+ (sha256
+ (base32
+ "1n1c4jmrh5ig8iv1rw81s4mw4xsp4v97hvf8zkigv4hn5h542qjq"))))
+ (build-system ruby-build-system)
+ (arguments `(#:tests? #f)); FIXME: some test failures
+ (native-inputs
+ `(("ruby-prawn" ,ruby-prawn)
+ ("ruby-prawn-table" ,ruby-prawn-table)))
+ (home-page "https://kramdown.gettalong.org/")
+ (synopsis "Markdown parsing and converting library")
+ (description "Kramdown is a library for parsing and converting a superset
+of Markdown. It is completely written in Ruby, supports standard Markdown
+(with some minor modifications) and various extensions that have been made
+popular by the PHP @code{Markdown Extra} package and @code{Maruku}.")
+ (license license:expat)))
+
+(define-public ruby-http-parser.rb
+ (package
+ (name "ruby-http-parser.rb")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "http_parser.rb" version))
+ (sha256
+ (base32
+ "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; No tests
+ `(#:tests? #f))
+ (native-inputs
+ `(("ruby-rake-compiler" ,ruby-rake-compiler)
+ ("ruby-rspec" ,ruby-rspec)))
+ (home-page "https://github.com/tmm1/http_parser.rb")
+ (synopsis "HTTP parser un Ruby")
+ (description "This gem is a simple callback-based HTTP request/response
+parser for writing http servers, clients and proxies.")
+ (license license:expat)))
+
+(define-public ruby-em-websocket
+ (package
+ (name "ruby-em-websocket")
+ (version "0.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "em-websocket" version))
+ (sha256
+ (base32
+ "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; No tests
+ `(#:tests? #f))
+ (propagated-inputs
+ `(("ruby-eventmachine" ,ruby-eventmachine)
+ ("ruby-http-parser.rb" ,ruby-http-parser.rb)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)))
+ (home-page "https://github.com/igrigorik/em-websocket")
+ (synopsis "EventMachine based WebSocket server")
+ (description "Em-websocket is an EventMachine based WebSocket server
+implementation.")
+ (license license:expat)))
+
+(define-public ruby-rouge
+ (package
+ (name "ruby-rouge")
+ (version "3.2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rouge" version))
+ (sha256
+ (base32
+ "0h79gn2wmn1wix2d27lgiaimccyj8gvizrllyym500pir408x62f"))))
+ (build-system ruby-build-system)
+ (arguments `(#:tests? #f)); No rakefile
+ (home-page "http://rouge.jneen.net/")
+ (synopsis "Code highlighter")
+ (description "Rouge is a code highlighter written in Ruby. It supports more
+than 100 languages and outputs HTML or ANSI 256-color text. Its HTML output
+is compatible with stylesheets designed for pygments.")
+ (license (list
+ ;; rouge is licensed under expat
+ license:expat
+ ;; pygments is licensed under bsd-2
+ license:bsd-2))))
+
+(define-public ruby-rouge-2
+ (package
+ (inherit ruby-rouge)
+ (version "2.2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rouge" version))
+ (sha256
+ (base32
+ "02kpahk5nkc33yxnn75649kzxaz073wvazr2zyg491nndykgnvcs"))))))
+
+(define-public ruby-hashie
+ (package
+ (name "ruby-hashie")
+ (version "3.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "hashie" version))
+ (sha256
+ (base32
+ "13bdzfp25c8k51ayzxqkbzag3wj5gc1jd8h7d985nsq6pn57g5xh"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("bundler" ,bundler)))
+ (arguments `(#:tests? #f)); FIXME: Could not locate Gemfile or .bundle/ directory
+ (home-page "https://github.com/intridea/hashie")
+ (synopsis "Extensions to Ruby Hashes")
+ (description "Hashie is a collection of classes and mixins that make Ruby
+hashes more powerful.")
+ (license license:expat)))
+
+(define-public ruby-heredoc-unindent
+ (package
+ (name "ruby-heredoc-unindent")
+ (version "1.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "heredoc_unindent" version))
+ (sha256
+ (base32
+ "14ijr2fsjwhrkjkcaz81d5xnfa4vvgvcflrff83avqw9klm011yw"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("ruby-hoe" ,ruby-hoe)))
+ (home-page "https://github.com/adrianomitre/heredoc_unindent")
+ (synopsis "Heredoc indentation cleaner")
+ (description "This gem removes common margin from indented strings, such
+as the ones produced by indented heredocs. In other words, it strips out
+leading whitespace chars at the beginning of each line, but only as much as
+the line with the smallest margin.
+
+It is acknowledged that many strings defined by heredocs are just code and
+fact is that most parsers are insensitive to indentation. If, however, the
+strings are to be used otherwise, be it for printing or testing, the extra
+indentation will probably be an issue and hence this gem.")
+ (license license:expat)))
+
+(define-public ruby-safe-yaml
+ (package
+ (name "ruby-safe-yaml")
+ (version "1.0.4")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "safe_yaml" version))
+ (sha256
+ (base32
+ "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("ruby-rspec" ,ruby-rspec)
+ ("ruby-hashie" ,ruby-hashie)
+ ("ruby-heredoc-unindent" ,ruby-heredoc-unindent)))
+ (arguments `(#:test-target "spec"
+ #:tests? #f));; FIXME: one failure
+ (home-page "https://github.com/dtao/safe_yaml")
+ (synopsis "YAML parser")
+ (description "The SafeYAML gem provides an alternative implementation of
+YAML.load suitable for accepting user input in Ruby applications.")
+ (license license:expat)))
+
+(define-public ruby-mercenary
+ (package
+ (name "ruby-mercenary")
+ (version "0.3.6")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "mercenary" version))
+ (sha256
+ (base32
+ "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a"))))
+ (build-system ruby-build-system)
+ (arguments `(#:test-target "spec"))
+ (native-inputs
+ `(("bundler" ,bundler)))
+ (home-page "https://github.com/jekyll/mercenary")
+ (synopsis "Command-line apps library in Ruby")
+ (description "Mercenary is a lightweight and flexible library for writing
+command-line apps in Ruby.")
+ (license license:expat)))
+
+(define-public ruby-liquid
+ (package
+ (name "ruby-liquid")
+ (version "4.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "liquid" version))
+ (sha256
+ (base32
+ "17fa0jgwm9a935fyvzy8bysz7j5n1vf1x2wzqkdfd5k08dbw3x2y"))))
+ (build-system ruby-build-system)
+ (arguments `(#:tests? #f)); No rakefile
+ (home-page "https://shopify.github.io/liquid/")
+ (synopsis "Template language")
+ (description "Liquid is a template language written in Ruby. It is used
+to load dynamic content on storefronts.")
+ (license license:expat)))
+
+(define-public ruby-forwardable-extended
+ (package
+ (name "ruby-forwardable-extended")
+ (version "2.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "forwardable-extended" version))
+ (sha256
+ (base32
+ "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v"))))
+ (build-system ruby-build-system)
+ (arguments `(#:tests? #f)); Cyclic dependency on luna-rspec-formatters
+ (home-page "https://github.com/envygeeks/forwardable-extended")
+ (synopsis "Delegation to hashes and instance variables in Forwardable")
+ (description "Forwardable Extended provides more @code{Forwardable}
+methods for your source as @code{Forwardable::Extended}.")
+ (license license:expat)))
+
+(define-public ruby-pathutil
+ (package
+ (name "ruby-pathutil")
+ (version "0.16.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "pathutil" version))
+ (sha256
+ (base32
+ "0wc18ms1rzi44lpjychyw2a96jcmgxqdvy2949r4vvb5f4p0lgvz"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-forwardable-extended" ,ruby-forwardable-extended)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)))
+ ;; Fails with: cannot load such file --
+ ;; /tmp/guix-build-ruby-pathutil-0.16.0.drv-0/gem/benchmark/support/task
+ (arguments `(#:tests? #f))
+ (home-page "https://github.com/envygeeks/pathutil")
+ (synopsis "Extended implementation of Pathname")
+ (description "Pathutil tries to be a faster pure Ruby implementation of
+Pathname.")
+ (license license:expat)))
+
+(define-public jekyll
+ (package
+ (name "jekyll")
+ (version "3.8.3")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "jekyll" version))
+ (sha256
+ (base32
+ "1iw90wihk9dscgmppf5v6lysg3kjmnx50mjyl4gghkdb4spw97xk"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; No rakefile, but a test subdirectory
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-i18n
+ (lambda _
+ (substitute* ".gemspec"
+ (("~> 0.7") ">= 0.7"))
+ #t)))))
+ (propagated-inputs
+ `(("ruby-addressable" ,ruby-addressable)
+ ("ruby-colorator" ,ruby-colorator)
+ ("ruby-em-websocket" ,ruby-em-websocket)
+ ("ruby-i18n" ,ruby-i18n)
+ ("ruby-jekyll-sass-converter" ,ruby-jekyll-sass-converter)
+ ("ruby-jekyll-watch" ,ruby-jekyll-watch)
+ ("ruby-kramdown" ,ruby-kramdown)
+ ("ruby-liquid" ,ruby-liquid)
+ ("ruby-mercenary" ,ruby-mercenary)
+ ("ruby-pathutil" ,ruby-pathutil)
+ ("ruby-rouge" ,ruby-rouge-2)
+ ("ruby-safe-yaml" ,ruby-safe-yaml)))
+ (home-page "https://jekyllrb.com/")
+ (synopsis "Static site generator")
+ (description "Jekyll is a simple, blog aware, static site generator.")
+ (license license:expat)))
+
+(define-public ruby-jekyll-paginate-v2
+ (package
+ (name "ruby-jekyll-paginate-v2")
+ (version "2.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "jekyll-paginate-v2" version))
+ (sha256
+ (base32
+ "154bfpyml6abxww9868hhyfvxasl8qhsc5zy2q30c7dxaj0igdib"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("jekyll" ,jekyll)))
+ (home-page "https://github.com/sverrirs/jekyll-paginate-v2")
+ (synopsis "Pagination Generator for Jekyll 3")
+ (description "The Pagination Generator forms the core of the pagination
+logic in Jekyll. It calculates and generates the pagination pages.")
+ (license license:expat)))