summaryrefslogtreecommitdiff
path: root/gnu/packages/ruby.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r--gnu/packages/ruby.scm188
1 files changed, 161 insertions, 27 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 300726764e..8db5bd9158 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017, 2018, 2019 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
@@ -27,6 +27,7 @@
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2021 EuAndreh <eu@euandre.org>
;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
+;;; Copyright © 2021 Giovanni Biscuolo <g@xelera.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -46,6 +47,7 @@
(define-module (gnu packages ruby)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
+ #:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages c)
#:use-module (gnu packages check)
@@ -152,21 +154,16 @@ a focus on simplicity and productivity.")
(define-public ruby-2.7
(package
(inherit ruby)
- (version "2.7.2")
+ (version "2.7.4")
(source
(origin
- (method url-fetch)
+ (inherit (package-source ruby))
(uri (string-append "https://cache.ruby-lang.org/pub/ruby/"
(version-major+minor version)
"/ruby-" version ".tar.gz"))
(sha256
(base32
- "1m63461mxi3fg4y3bspbgmb0ckbbb1ldgf9xi0piwkpfsk80cmvf"))
- (modules '((guix build utils)))
- (snippet `(begin
- ;; Remove bundled libffi
- (delete-file-recursively "ext/fiddle/libffi-3.2.1")
- #t))))
+ "0nxwkxh7snmjqf787qsp4i33mxd1rbf9yzyfiky5k230i680jhrh"))))
(arguments
`(#:test-target "test"
#:configure-flags '("--enable-shared") ; dynamic linking
@@ -195,7 +192,7 @@ a focus on simplicity and productivity.")
(define-public ruby-3.0
(package
(inherit ruby-2.7)
- (version "3.0.0")
+ (version "3.0.2")
(source
(origin
(method url-fetch)
@@ -204,12 +201,12 @@ a focus on simplicity and productivity.")
"/ruby-" version ".tar.xz"))
(sha256
(base32
- "1cbcixwnr0y8q0lg67wjgplp06kjd6p6hjjh680csv3v0bpsxgv8"))))))
+ "0h2w2ms4gx2s96v3lzdr3add94bd2qqkhdjzaycmaqhg21rpf3jp"))))))
(define-public ruby-2.5
(package
(inherit ruby)
- (version "2.5.8")
+ (version "2.5.9")
(source
(origin
(method url-fetch)
@@ -218,12 +215,7 @@ a focus on simplicity and productivity.")
"/ruby-" version ".tar.xz"))
(sha256
(base32
- "0vad5ah1lrdhxsyqr5iqc8c7r7qczpmm76cz8rsf4crimpzv5483"))
- (modules '((guix build utils)))
- (snippet `(begin
- ;; Remove bundled libffi
- (delete-file-recursively "ext/fiddle/libffi-3.2.1")
- #t))))))
+ "1w2qncacm7h3f3il1whghdabwnv9fvwmz9f1a9vcg32006ljyzx8"))))))
(define-public ruby-2.4
(package
@@ -2835,6 +2827,33 @@ high-level toolkit for building cryptographic systems and protocols.")
(home-page "https://github.com/crypto-rb/rbnacl")
(license license:expat)))
+(define-public ruby-hkdf
+ (package
+ (name "ruby-hkdf")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jtdowney/hkdf")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1xqwdmxfnhagivwgb5v9ilwpb4jxlsqwj7pnj43d65zzg5m8p9r5"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:test-target "default"))
+ (native-inputs
+ `(("ruby-rspec" ,ruby-rspec)))
+ (synopsis "HMAC-based Key Derivation Function")
+ (description
+ "This package provides a Ruby implementation of RFC5869: @acronym{HKDF,
+HMAC-based Extract-and-Expand Key Derivation Function}. The goal of HKDF is to
+take some source key material and generate suitable cryptographic keys from it.")
+ (home-page "https://github.com/jtdowney/hkdf")
+ (license license:expat)))
+
(define-public ruby-nenv
(package
(name "ruby-nenv")
@@ -6094,13 +6113,13 @@ Ruby's large and slower test/unit.")
(define-public ruby-term-ansicolor
(package
(name "ruby-term-ansicolor")
- (version "1.6.0")
+ (version "1.7.1")
(source (origin
(method url-fetch)
(uri (rubygems-uri "term-ansicolor" version))
(sha256
(base32
- "1b1wq9ljh7v3qyxkk8vik2fqx2qzwh5lval5f92llmldkw7r7k7b"))))
+ "1xq5kci9215skdh27npyd3y55p812v4qb4x2hv3xsjvwqzz9ycwj"))))
(build-system ruby-build-system)
;; Rebuilding the gemspec seems to require git, even though this is not a
;; git repository, so we just build the gem from the existing gemspec.
@@ -7691,15 +7710,26 @@ navigation capabilities to @code{pry}, using @code{byebug}.")
(define-public ruby-stackprof
(package
(name "ruby-stackprof")
- (version "0.2.16")
+ (version "0.2.17")
(source
- (origin
- (method url-fetch)
- (uri (rubygems-uri "stackprof" version))
- (sha256
- (base32
- "147rb66p3n062vc433afqhkd99iazvkrqnghxgh871r62yhha93f"))))
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "stackprof" version))
+ (sha256
+ (base32 "06lz70k8c0r7fyxk1nc3idh14x7nvsr21ydm1bsmbj00jyhmfzsn"))))
(build-system ruby-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'skip-dubious-test
+ ;; This unreliable test can fail with "Expected 0 to be >= 1."
+ (lambda _
+ (substitute* "test/test_stackprof.rb"
+ (("def test_(cputime)" _ name)
+ (string-append "def skip_" name)))))
+ (add-before 'check 'build-tests
+ (lambda _
+ (invoke "rake" "compile"))))))
(native-inputs
`(("ruby-mocha" ,ruby-mocha)
("ruby-rake-compiler" ,ruby-rake-compiler)))
@@ -10156,6 +10186,24 @@ are doing, you can fiddle with every last bit of your email directly.")
(home-page "https://github.com/mikel/mail")
(license license:expat)))
+(define-public ruby-email-reply-trimmer
+ (package
+ (name "ruby-email-reply-trimmer")
+ (version "0.1.13")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "email_reply_trimmer" version))
+ (sha256
+ (base32
+ "1jgcxifm48xq5dz9k47q43pqm5bfnf14l62l3bqhmv8f6z8dw4ki"))))
+ (build-system ruby-build-system)
+ (synopsis "Trim replies from plain text email")
+ (description "EmailReplyTrimmer is a Ruby small library to trim replies
+from plain text email.")
+ (home-page "https://github.com/discourse/email_reply_trimmer")
+ (license license:expat)))
+
(define-public ruby-mathn
(package
(name "ruby-mathn")
@@ -11294,6 +11342,40 @@ indentation will probably be an issue and hence this gem.")
YAML.load suitable for accepting user input in Ruby applications.")
(license license:expat)))
+(define-public ruby-yaml-lint
+ (package
+ (name "ruby-yaml-lint")
+ (version "0.0.10")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Pryz/yaml-lint")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1jz26mxjkdyjbgqp7f9isnzd1i6vkizsswyj1v639nmq31hwfh0d"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec"))
+ #t)))))
+ (native-inputs
+ `(("ruby-coveralls" ,ruby-coveralls)
+ ("ruby-rspec" ,ruby-rspec)
+ ("ruby-simplecov" ,ruby-simplecov)))
+ (synopsis "Simple YAML check tool")
+ (description
+ "@code{yaml-lint} will simply try to load the YAML file with the built-in
+Ruby yaml library.")
+ (home-page "https://github.com/Pryz/yaml-lint")
+ (license license:expat)))
+
(define-public ruby-mercenary
(package
(name "ruby-mercenary")
@@ -12354,3 +12436,55 @@ and social networks to better index and display your site's content.")
(home-page
"https://github.com/jekyll/jekyll-seo-tag")
(license license:expat)))
+
+(define-public ruby-taskjuggler
+ (package
+ (name "ruby-taskjuggler")
+ (version "3.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "taskjuggler" version))
+ (sha256
+ (base32
+ "1jrsajzhzpnfa8hj6lbf7adn8hls56dz3yw1gvzgz9y4zkka3k9v"))))
+ (build-system ruby-build-system)
+ (native-inputs `(("tzdata" ,tzdata-for-tests)))
+ (propagated-inputs
+ `(("ruby-mail" ,ruby-mail)
+ ("ruby-term-ansicolor" ,ruby-term-ansicolor)))
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'replace-git-ls-files
+ (lambda _
+ (substitute* "tasks/rdoc.rake"
+ (("`git ls-files -- lib`")
+ "`find lib/ -type f |sort`"))
+ #t))
+ (add-before 'check 'tzdir-setup
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "TZDIR"
+ (string-append (assoc-ref inputs "tzdata")
+ "/share/zoneinfo"))
+ #t))
+ (add-before 'check 'delete-test-BatchProcessor
+ ;; test_BatchProcessor fails with exeption:
+ ;; run> terminated with exception (report_on_exception is true)
+ (lambda _
+ (delete-file "test/test_BatchProcessor.rb")
+ #t)))))
+ (synopsis
+ "Project management command line tool with a domain specific language")
+ (description
+ "TaskJuggler (tj3) is a project management tool for project planning and
+tracking using a domain specific language; projects are plain text files
+written using your favourite text editor. It includes reporting in HTML, CSV
+or iCalendar format and an email based status tracking system to send and
+receive time sheets from collaborators.
+
+It covers the complete spectrum of project management tasks from the first
+idea to the completion of the project. It assists you during project scoping,
+resource assignment, cost and revenue planning, risk and communication
+management, status tracking and reporting.")
+ (home-page "https://taskjuggler.org")
+ (license license:gpl2)))