aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/ruby.scm46
1 files changed, 46 insertions, 0 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 40b82b8a43..3ff7a773c3 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6370,6 +6370,52 @@ framework that leverages the expressive @code{Gherkin} language to help you
define executable specifications of your code.")
(license license:expat)))
+(define-public ruby-timers
+ (package
+ (name "ruby-timers")
+ (version "4.3.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/socketry/timers")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1vvahlhk6i1xks1bsha6s64pjjxhagmzvvf1q9h6z3lpcba43rpx"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'prune-gems.rb
+ (lambda _
+ (substitute* "gems.rb"
+ ;; These are only required for maintenance.
+ ((".*gem \"bake-modernize\".*") "")
+ ((".*gem \"bake-gem\".*") "")
+ ;; Not actually required by the tests.
+ ((".*gem 'benchmark-ips'.*") "")
+ ((".*gem \"ruby-prof\".*") ""))))
+ (add-before 'build 'remove-missing-signing-key
+ (lambda _
+ ;; Otherwise, the build fails with ENOENT.
+ (substitute* "timers.gemspec"
+ ((".*spec.signing_key.*") ""))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "bake" "test")))))))
+ (native-inputs
+ (list ruby-covered
+ ruby-bake-test
+ ruby-bake-test-external
+ ruby-sus))
+ (synopsis "Collection of Ruby timer classes")
+ (description "Timers offers a collections of one-shot and periodic timers,
+intended for use with event loops such as async.")
+ (home-page "https://github.com/socketry/timers")
+ (license license:expat)))
+
(define-public ruby-tilt
(package
(name "ruby-tilt")