@@ -2,6 +2,7 @@
((guix licenses) #:prefix license:)
(guix packages)
(guix download)
+ (guix gexp)
(guix git-download)
(guix build-system ruby)
(guix build-system copy)
@@ -12,6 +13,99 @@
(ice-9 rdelim)
(ice-9 popen))
+(define-public ruby-multipart-parser
+ (package
+ (name "ruby-multipart-parser")
+ (version "0.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "multipart-parser" version))
+ (sha256
+ (base32
+ "0xb4p475yrfm883h9kn80a021myn17dvs50wpa1djzcmlq7p0882"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'skip-failing-test
+ ;; One test fails for unknown reasons (see:
+ ;; https://github.com/danabr/multipart-parser/issues/7).
+ (lambda _
+ (substitute* "test/multipart_parser/reader_test.rb"
+ (("def test_long" all)
+ (string-append all "\n return true"))))))))
+ (synopsis "Parser for multipart MIME messages")
+ (description "@code{multipart-parser} is a simple parser for multipart
+MIME messages, written in Ruby, based on felixge/node-formidable's parser. It
+has the following characteristics:
+@itemize
+@item Pure Ruby
+@item Event-driven API
+@item Only supports one level of multipart parsing
+@item Does not perform I/O
+@item Does not depend on any other library.
+@end itemize")
+ (home-page "https://github.com/danabr/multipart-parser")
+ (license license:expat)))
+
+(define-public ruby-ruby2-keywords
+ (package
+ (name "ruby-ruby2-keywords")
+ (version "0.0.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ruby/ruby2_keywords")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1jhqb152zfr2yrxj6j8rzakkwdkg5viggwnnqrrfxwwy63msdi97"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'delete-extraneous-rake-files
+ (lambda _
+ (for-each delete-file '("rakelib/changelogs.rake"
+ "rakelib/epoch.rake"
+ "rakelib/version.rake"))))
+ (add-after 'extract-gemspec 'adjust-files
+ (lambda _
+ (substitute* "ruby2_keywords.gemspec"
+ ;; This file is not present in the git checkout.
+ ((".*\"ChangeLog\",.*") "")))))))
+ (synopsis "Shim library for Module#ruby2_keywords")
+ (description "Provides empty @code{Module#ruby2_keywords} method, for the
+forward source-level compatibility against @command{ruby2.7} and
+@command{ruby3}.")
+ (home-page "https://github.com/ruby/ruby2_keywords")
+ (license license:bsd-2)))
+
+(define-public ruby-faraday-multipart
+ (package
+ (name "ruby-faraday-multipart")
+ (version "1.0.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lostisland/faraday-multipart")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0ywxhff40a688n50lxrn4d8y096l8sbrwp1jfz4zd3kdiiygclka"))))
+ (build-system ruby-build-system)
+ (arguments (list #:tests? #f #:test-target "spec"))
+ (native-inputs (list ruby-multipart-parser ruby-rspec))
+ (propagated-inputs (list ruby-multipart-post))
+ (synopsis "Multipart-post requests extension for Faraday")
+ (description "This Ruby gem extends Faraday to perform multipart-post
+requests.")
+ (home-page "https://github.com/lostisland/faraday-multipart")
+ (license license:expat)))
+
(define-public ruby-eventmachine-openssl
(package
(inherit ruby-eventmachine)
@@ -74,7 +168,7 @@
("ruby-yard" ,ruby-yard)
("ruby-countdownlatch" ,ruby-countdownlatch)
("ruby-rb-fsevent" ,ruby-rb-fsevent)
- ("ruby-mocha" ,ruby-mocha-1)))
+ ("ruby-mocha" ,ruby-mocha)))
(synopsis
"An XMPP DSL for Ruby written on top of EventMachine and Nokogiri")
(description
@@ -122,6 +216,7 @@
(build-system ruby-build-system)
(arguments
`(#:test-target "test:unit"
+ #:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'less-strict-dependencies
@@ -267,14 +362,14 @@
(define-public ruby-lazy-object
(package
(name "ruby-lazy-object")
- (version "0.1.0")
+ (version "0.0.3") ; move to 0.1.0 for ruby3
(source
(origin
(method url-fetch)
(uri (rubygems-uri "lazy_object" version))
(sha256
(base32
- "1kwmbdzqyzq2kkmx5gk7z90bz71lr4p1x0iknnjvwyd1z98m1n31"))))
+ "08px15lahc28ik9smvw1hgamf792gd6gq0s4k94yq1h7jq25wjn8"))))
(build-system ruby-build-system)
(arguments
'(#:test-target "spec"))
@@ -475,7 +570,7 @@
(propagated-inputs `(("ruby-money" ,ruby-money)))
(native-inputs
`(("ruby-minitest" ,ruby-minitest)
- ("ruby-mocha" ,ruby-mocha-1)
+ ("ruby-mocha" ,ruby-mocha)
("ruby-timecop" ,ruby-timecop)
("ruby-webmock" ,ruby-webmock)
("ruby-monetize" ,ruby-monetize)