summaryrefslogtreecommitdiff
path: root/gnu/packages/ruby-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ruby-xyz.scm')
-rw-r--r--gnu/packages/ruby-xyz.scm65
1 files changed, 65 insertions, 0 deletions
diff --git a/gnu/packages/ruby-xyz.scm b/gnu/packages/ruby-xyz.scm
index 213742e39fe..ff27b185ffe 100644
--- a/gnu/packages/ruby-xyz.scm
+++ b/gnu/packages/ruby-xyz.scm
@@ -71,6 +71,7 @@
71 #:use-module (gnu packages c) 71 #:use-module (gnu packages c)
72 #:use-module (gnu packages check) 72 #:use-module (gnu packages check)
73 #:use-module (gnu packages compression) 73 #:use-module (gnu packages compression)
74 #:use-module (gnu packages compiler-tools)
74 #:use-module (gnu packages crypto) 75 #:use-module (gnu packages crypto)
75 #:use-module (gnu packages curl) 76 #:use-module (gnu packages curl)
76 #:use-module (gnu packages databases) 77 #:use-module (gnu packages databases)
@@ -3724,6 +3725,70 @@ high-level toolkit for building cryptographic systems and protocols.")
3724 (home-page "https://github.com/RubyCrypto/rbnacl") 3725 (home-page "https://github.com/RubyCrypto/rbnacl")
3725 (license license:expat))) 3726 (license license:expat)))
3726 3727
3728(define-public ruby-rbs
3729 (package
3730 (name "ruby-rbs")
3731 (version "4.1.3")
3732 (source
3733 (origin
3734 (method git-fetch) ;for tests and templates
3735 (uri (git-reference
3736 (url "https://github.com/ruby/rbs")
3737 (commit (string-append "v" version))))
3738 (file-name (git-file-name name version))
3739 (sha256
3740 (base32 "06v0yxbqiib9fwii6j5qyzyfpyla1rm6vrh1mn33fyx91b84zrpk"))
3741 (modules '((guix build utils)
3742 (ice-9 regex)))
3743 (snippet
3744 '(begin
3745 ;; These are generated files or unrunnable tests.
3746 (for-each delete-file
3747 (cons* "src/lexer.c"
3748 ;; RDoc requires RBS as a runtime library.
3749 "test/rbs/annotate/rdoc_annotator_test.rb"
3750 "test/rbs/annotate/rdoc_source_test.rb"
3751 ;; These requires network connections.
3752 "test/rbs/cli_test.rb"
3753 "test/rbs/collection/config_test.rb"
3754 "test/rbs/collection/installer_test.rb"
3755 "test/rbs/collection/sources/git_test.rb"
3756 "test/rbs/environment_loader_test.rb"
3757 "test/rbs/test/runtime_test_test.rb"
3758 (map (lambda (file)
3759 (let ((matched (string-match
3760 "templates/(.+)\\.erb" file)))
3761 (match:substring matched 1)))
3762 (find-files "templates" "\\.erb"))))
3763 ;; Remove unnecessary usages of LLVM tools.
3764 (substitute* "Rakefile"
3765 (("sh \"clang-format .* src/lexer.c\"")
3766 "")
3767 (("Rake::Task\\[\"format:c\"\\]\\.invoke")
3768 "")
3769 (("compile_task\\.prerequisites\\.unshift\\(:setup_extconf_compile_commands_json\\)")
3770 ""))))))
3771 (build-system ruby-build-system)
3772 (arguments
3773 (list
3774 #:phases
3775 #~(modify-phases %standard-phases
3776 (add-before 'build 'compile
3777 (lambda _
3778 (invoke "rake" "lexer" "templates")
3779 (invoke "rake" "compile")))
3780 (add-before 'check 'set-home
3781 (lambda _
3782 (setenv "HOME" "/tmp"))))))
3783 (native-inputs (list ruby-rake-compiler re2c ruby-json-schema ruby-rspec))
3784 (propagated-inputs (list ruby-logger ruby-prism ruby-tsort))
3785 (synopsis "Type signatures for Ruby")
3786 (description
3787 "RBS is the language for type signatures for Ruby and standard library
3788definitions.")
3789 (home-page "https://github.com/ruby/rbs")
3790 (license (list license:ruby license:bsd-2))))
3791
3727(define-public ruby-rbtree 3792(define-public ruby-rbtree
3728 (package 3793 (package
3729 (name "ruby-rbtree") 3794 (name "ruby-rbtree")