1(use-modules
2 ((guix licenses) #:prefix license:)
3 (guix packages)
4 (guix download)
5 (guix gexp)
6 (guix git-download)
7 (guix build-system ruby)
8 (guix build-system copy)
9 (gnu packages rails)
10 (gnu packages ruby)
11 (gnu packages tls)
12 (gnu packages databases)
13 (ice-9 rdelim)
14 (ice-9 popen))
15
16(define-public ruby-addressable
17 (package
18 (name "ruby-addressable")
19 (version "2.8.8")
20 (source
21 (origin
22 (method url-fetch)
23 (uri (rubygems-uri "addressable" version))
24 (sha256
25 (base32 "0mxhjgihzsx45l9wh2n0ywl9w0c6k70igm5r0d63dxkcagwvh4vw"))))
26 (build-system ruby-build-system)
27 (arguments
28 `(#:tests? #f))
29 (propagated-inputs (list ruby-public-suffix))
30 (synopsis
31 "Addressable is an alternative implementation to the URI implementation that is
32part of Ruby's standard library. It is flexible, offers heuristic parsing, and
33additionally provides extensive support for IRIs and URI templates.
34")
35 (description
36 "Addressable is an alternative implementation to the URI implementation that is
37part of Ruby's standard library. It is flexible, offers heuristic parsing, and
38additionally provides extensive support for IRIs and URI templates.")
39 (home-page "https://github.com/sporkmonger/addressable")
40 (license #f)))
41
42(define-public ruby-multipart-parser
43 (package
44 (name "ruby-multipart-parser")
45 (version "0.1.1")
46 (source (origin
47 (method url-fetch)
48 (uri (rubygems-uri "multipart-parser" version))
49 (sha256
50 (base32
51 "0xb4p475yrfm883h9kn80a021myn17dvs50wpa1djzcmlq7p0882"))))
52 (build-system ruby-build-system)
53 (arguments
54 (list
55 #:phases #~(modify-phases %standard-phases
56 (add-after 'unpack 'skip-failing-test
57 ;; One test fails for unknown reasons (see:
58 ;; https://github.com/danabr/multipart-parser/issues/7).
59 (lambda _
60 (substitute* "test/multipart_parser/reader_test.rb"
61 (("def test_long" all)
62 (string-append all "\n return true"))))))))
63 (synopsis "Parser for multipart MIME messages")
64 (description "@code{multipart-parser} is a simple parser for multipart
65MIME messages, written in Ruby, based on felixge/node-formidable's parser. It
66has the following characteristics:
67@itemize
68@item Pure Ruby
69@item Event-driven API
70@item Only supports one level of multipart parsing
71@item Does not perform I/O
72@item Does not depend on any other library.
73@end itemize")
74 (home-page "https://github.com/danabr/multipart-parser")
75 (license license:expat)))
76
77(define-public ruby-ruby2-keywords
78 (package
79 (name "ruby-ruby2-keywords")
80 (version "0.0.5")
81 (source (origin
82 (method git-fetch)
83 (uri (git-reference
84 (url "https://github.com/ruby/ruby2_keywords")
85 (commit (string-append "v" version))))
86 (file-name (git-file-name name version))
87 (sha256
88 (base32
89 "1jhqb152zfr2yrxj6j8rzakkwdkg5viggwnnqrrfxwwy63msdi97"))))
90 (build-system ruby-build-system)
91 (arguments
92 (list
93 #:phases
94 #~(modify-phases %standard-phases
95 (add-after 'unpack 'delete-extraneous-rake-files
96 (lambda _
97 (for-each delete-file '("rakelib/changelogs.rake"
98 "rakelib/epoch.rake"
99 "rakelib/version.rake"))))
100 (add-after 'extract-gemspec 'adjust-files
101 (lambda _
102 (substitute* "ruby2_keywords.gemspec"
103 ;; This file is not present in the git checkout.
104 ((".*\"ChangeLog\",.*") "")))))))
105 (synopsis "Shim library for Module#ruby2_keywords")
106 (description "Provides empty @code{Module#ruby2_keywords} method, for the
107forward source-level compatibility against @command{ruby2.7} and
108@command{ruby3}.")
109 (home-page "https://github.com/ruby/ruby2_keywords")
110 (license license:bsd-2)))
111
112(define-public ruby-faraday-multipart
113 (package
114 (name "ruby-faraday-multipart")
115 (version "1.0.4")
116 (source (origin
117 (method git-fetch)
118 (uri (git-reference
119 (url "https://github.com/lostisland/faraday-multipart")
120 (commit (string-append "v" version))))
121 (file-name (git-file-name name version))
122 (sha256
123 (base32
124 "0ywxhff40a688n50lxrn4d8y096l8sbrwp1jfz4zd3kdiiygclka"))))
125 (build-system ruby-build-system)
126 (arguments (list #:tests? #f #:test-target "spec"))
127 (native-inputs (list ruby-multipart-parser ruby-rspec))
128 (propagated-inputs (list ruby-multipart-post))
129 (synopsis "Multipart-post requests extension for Faraday")
130 (description "This Ruby gem extends Faraday to perform multipart-post
131requests.")
132 (home-page "https://github.com/lostisland/faraday-multipart")
133 (license license:expat)))
134
135(define-public ruby-eventmachine-openssl
136 (package
137 (inherit ruby-eventmachine)
138 (inputs `(("openssl" ,openssl)))))
139
140(define-public ruby-countdownlatch
141 (package
142 (name "ruby-countdownlatch")
143 (version "1.0.0")
144 (source
145 (origin
146 (method url-fetch)
147 (uri (rubygems-uri "countdownlatch" version))
148 (sha256
149 (base32
150 "1v6pbay6z07fp7yvnba1hmyacbicvmjndd8rn2h1b5rmpcb5s0j3"))))
151 (build-system ruby-build-system)
152 (synopsis
153 "A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes")
154 (description
155 "This package provides a synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes")
156 (home-page
157 "https://github.com/benlangfeld/countdownlatch")
158 (license license:expat)))
159
160(define-public ruby-blather
161 (package
162 (name "ruby-blather")
163 (version "926da56cbb36ec63fe8fb74d1eafbb60a6c3cc91")
164 (source
165 (origin
166 (method git-fetch)
167 ;; Download from GitHub because the rubygems version requires old
168 ;; version of bundler Rakefile.
169 (uri (git-reference
170 (url "https://github.com/singpolyma/blather")
171 (commit version)))
172 (file-name (git-file-name name version))
173 (sha256
174 (base32
175 "0m3vvlhjaixi79fnp00jl7g69vd5kp40d3h83xvzamzdq1hfya03"))))
176 (build-system ruby-build-system)
177 (arguments
178 `(#:tests? #f #:phases
179 (modify-phases %standard-phases
180 (add-after 'extract-gemspec 'less-strict-dependencies
181 (lambda _
182 (substitute* "blather.gemspec"
183 ((".*guard-rspec.*") "\n")
184 ((".*bluecloth.*") "\n"))
185 #t)))))
186 (propagated-inputs
187 `(("ruby-activesupport" ,ruby-activesupport)
188 ("ruby-eventmachine" ,ruby-eventmachine)
189 ("ruby-niceogiri" ,ruby-niceogiri)
190 ("ruby-nokogiri" ,ruby-nokogiri)
191 ("ruby-sucker-punch" ,ruby-sucker-punch)))
192 (native-inputs
193 `(("ruby-rspec" ,ruby-rspec)
194 ("ruby-yard" ,ruby-yard)
195 ("ruby-countdownlatch" ,ruby-countdownlatch)
196 ("ruby-rb-fsevent" ,ruby-rb-fsevent)
197 ("ruby-mocha" ,ruby-mocha)))
198 (synopsis
199 "An XMPP DSL for Ruby written on top of EventMachine and Nokogiri")
200 (description
201 "An XMPP DSL for Ruby written on top of EventMachine and Nokogiri")
202 (home-page "http://adhearsion.com/blather")
203 (license license:expat)))
204
205(define-public ruby-rspec-junit-formatter
206 (package
207 (name "ruby-rspec-junit-formatter")
208 (version "0.6.0")
209 (source (origin
210 (method url-fetch)
211 (uri (rubygems-uri "rspec_junit_formatter" version))
212 (sha256
213 (base32
214 "059bnq1gcwl9g93cqf13zpz38zk7jxaa43anzz06qkmfwrsfdpa0"))))
215 (build-system ruby-build-system)
216 (arguments
217 `(#:tests? #f))
218 (propagated-inputs (list ruby-rspec-core))
219 (synopsis
220 "RSpec results that your continuous integration service can read.")
221 (description
222 "RSpec results that your continuous integration service can read.")
223 (home-page "https://github.com/sj26/rspec_junit_formatter")
224 (license license:expat)))
225
226(define-public ruby-braintree
227 (package
228 (name "ruby-braintree")
229 (version "4.12.0")
230 (source
231 (origin
232 (method git-fetch)
233 ;; Download from GitHub because the rubygems version does not contain
234 ;; Rakefile.
235 (uri (git-reference
236 (url "https://github.com/braintree/braintree_ruby")
237 (commit version)))
238 (file-name (git-file-name name version))
239 (sha256
240 (base32
241 "0gfgkymy3655drwgs42bj9ap9qib1l30sajxmypmp6s75m9w3gsh"))))
242 (build-system ruby-build-system)
243 (arguments
244 `(#:test-target "test:unit"
245 #:tests? #f
246 #:phases
247 (modify-phases %standard-phases
248 (add-after 'unpack 'less-strict-dependencies
249 (lambda _
250 (substitute* "Gemfile"
251 (("gem \"libxml-ruby\", \"3.2.0\"") "gem \"libxml-ruby\", \"~> 3.0.0\"")
252 (("gem \"rubocop\".*") "")
253 (("gem \"rake\", \"13.0.1\"") "gem \"rake\", \"~> 13.0.6\"")
254 (("gem \"rspec\", \"3.9.0\"") "gem \"rspec\", \"~> 3.12.0\"")
255 (("gem \"pry\", \"0.13.1\"") "gem \"pry\", \"~> 0.14.2\""))
256 (substitute* "Rakefile"
257 (("sh \"rubocop\"") "")))))))
258 (propagated-inputs
259 `(("ruby-builder" ,ruby-builder)
260 ("ruby-rexml" ,ruby-rexml)))
261 (native-inputs
262 (list
263 ruby-rspec
264 ruby-libxml
265 ruby-pry
266 ruby-rake
267 ruby-webrick
268 ruby-rspec-junit-formatter))
269 (synopsis
270 "Resources and tools for developers to integrate Braintree's global payments platform.")
271 (description
272 "Resources and tools for developers to integrate Braintree's global payments platform.")
273 (home-page "https://www.braintreepayments.com/")
274 (license license:expat)))
275
276(define-public ruby-value-semantics
277 (package
278 (name "ruby-value-semantics")
279 (version "a164e22449740775ed522c553999f7c04aa6ae85")
280 (source
281 (origin
282 (method git-fetch)
283 (uri (git-reference
284 (url "https://github.com/singpolyma/value_semantics")
285 (commit version)))
286 (file-name (git-file-name name version))
287 (sha256
288 (base32
289 "19fj4p6irmdiphp0z1r60b98d6j2gpfm84gawbc10bzm0zimlxns"))))
290 (build-system ruby-build-system)
291 (arguments
292 `(#:tests? #f))
293 (native-inputs
294 `(("ruby-rspec" ,ruby-rspec)))
295 (synopsis
296 "
297 Generates modules that provide conventional value semantics for a given set of attributes.
298 The behaviour is similar to an immutable `Struct` class,
299 plus extensible, lightweight validation and coercion.
300 ")
301 (description
302 "
303 Generates modules that provide conventional value semantics for a given set of attributes.
304 The behaviour is similar to an immutable `Struct` class,
305 plus extensible, lightweight validation and coercion.
306 ")
307 (home-page
308 "https://github.com/tomdalling/value_semantics")
309 (license license:expat)))
310
311(define-public ruby-promise.rb
312 (package
313 (name "ruby-promise.rb")
314 (version "0.7.4")
315 (source
316 (origin
317 (method url-fetch)
318 (uri (rubygems-uri "promise.rb" version))
319 (sha256
320 (base32
321 "0a819sikcqvhi8hck1y10d1nv2qkjvmmm553626fmrh51h2i089d"))))
322 (build-system ruby-build-system)
323 (arguments
324 `(#:test-target "spec"
325 #:phases
326 (modify-phases %standard-phases
327 (add-after 'extract-gemspec 'less-strict-dependencies
328 (lambda _
329 (substitute* "Rakefile"
330 (("if Gem.ruby_version.*") "if false\n"))
331 (substitute* "spec/spec_helper.rb"
332 ((".*devtools/spec_helper.*") "\n"))
333 #t)))))
334 (native-inputs
335 `(("ruby-rspec" ,ruby-rspec)
336 ("ruby-rspec-its" ,ruby-rspec-its)
337 ("ruby-awesome-print" ,ruby-awesome-print)
338 ("ruby-fuubar" ,ruby-fuubar)))
339 (synopsis "Promises/A+ for Ruby")
340 (description "Promises/A+ for Ruby")
341 (home-page "https://github.com/lgierth/promise")
342 (license license:unlicense)))
343
344(define-public ruby-multicodecs
345 (package
346 (name "ruby-multicodecs")
347 (version "0.2.1")
348 (source
349 (origin
350 (method url-fetch)
351 (uri (rubygems-uri "multicodecs" version))
352 (sha256
353 (base32
354 "0drq267di57l9zqw6zvqqimilz42rbc8z7392dwkk8wslq30s7v8"))))
355 (build-system ruby-build-system)
356 (synopsis
357 "This gem provides a PORO of the multicodec table for use with other
358 multiformat ruby gems.")
359 (description
360 "This gem provides a PORO of the multicodec table for use with other
361 multiformat ruby gems.")
362 (home-page
363 "https://github.com/SleeplessByte/ruby-multicodec")
364 (license license:expat)))
365
366(define-public ruby-multihashes
367 (package
368 (name "ruby-multihashes")
369 (version "0.2.0")
370 (source
371 (origin
372 (method url-fetch)
373 (uri (rubygems-uri "multihashes" version))
374 (sha256
375 (base32
376 "17wiyy3fiv8rpgdv9ca01yncsmaaf8yg15bg18wc7m9frss1vgqg"))))
377 (build-system ruby-build-system)
378 (propagated-inputs
379 `(("ruby-multicodecs" ,ruby-multicodecs)))
380 (synopsis
381 "A simple, low-level multihash (https://github.com/jbenet/multihash) implementation for ruby.")
382 (description
383 "This package provides a simple, low-level multihash (https://github.com/jbenet/multihash) implementation for ruby.")
384 (home-page
385 "https://github.com/neocities/ruby-multihashes")
386 (license license:expat)))
387
388(define-public ruby-lazy-object
389 (package
390 (name "ruby-lazy-object")
391 (version "0.0.3") ; move to 0.1.0 for ruby3
392 (source
393 (origin
394 (method url-fetch)
395 (uri (rubygems-uri "lazy_object" version))
396 (sha256
397 (base32
398 "08px15lahc28ik9smvw1hgamf792gd6gq0s4k94yq1h7jq25wjn8"))))
399 (build-system ruby-build-system)
400 (arguments
401 '(#:test-target "spec"))
402 (synopsis
403 "It's an object wrapper that forwards all calls to the reference object. This object is not created until the first method dispatch.")
404 (description
405 "It's an object wrapper that forwards all calls to the reference object. This object is not created until the first method dispatch.")
406 (home-page "")
407 (license license:expat)))
408
409(define-public ruby-citrus
410 (package
411 (name "ruby-citrus")
412 (version "3.0.2")
413 (source
414 (origin
415 (method git-fetch)
416 ;; Download from GitHub because the rubygems version does not contain
417 ;; files needed for tests
418 (uri (git-reference
419 (url "https://github.com/mjackson/citrus")
420 (commit (string-append "v" version))))
421 (file-name (git-file-name name version))
422 (sha256
423 (base32
424 "197wrgqrddgm1xs3yvjvd8vkvil4h4mdrcp16jmd4b57rxrrr769"))))
425 (build-system ruby-build-system)
426 (synopsis "Parsing Expressions for Ruby")
427 (description "Parsing Expressions for Ruby")
428 (home-page "http://mjackson.github.io/citrus")
429 (license license:expat)))
430
431(define-public ruby-cbor
432 (package
433 (name "ruby-cbor")
434 (version "0.5.9.6")
435 (source
436 (origin
437 (method url-fetch)
438 (uri (rubygems-uri "cbor" version))
439 (sha256
440 (base32
441 "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3"))))
442 (build-system ruby-build-system)
443 (arguments
444 '(#:test-target "spec"))
445 (native-inputs
446 `(("ruby-rspec" ,ruby-rspec)
447 ("ruby-rake-compiler" ,ruby-rake-compiler)
448 ("ruby-yard" ,ruby-yard)))
449 (synopsis
450 "CBOR is a library for the CBOR binary object representation format, based on Sadayuki Furuhashi's MessagePack library.")
451 (description
452 "CBOR is a library for the CBOR binary object representation format, based on Sadayuki Furuhashi's MessagePack library.")
453 (home-page "http://cbor.io/")
454 (license license:asl2.0)))
455
456(define-public ruby-gem-release
457 (package
458 (name "ruby-gem-release")
459 (version "2.2.2")
460 (source
461 (origin
462 (method url-fetch)
463 (uri (rubygems-uri "gem-release" version))
464 (sha256
465 (base32
466 "108rrfaiayi14zrqbb6z0cbwcxh8n15am5ry2a86v7c8c3niysq9"))))
467 (build-system ruby-build-system)
468 (arguments
469 ;; No rakefile
470 `(#:tests? #f))
471 (synopsis
472 "Release your ruby gems with ease. (What a bold statement for such a tiny plugin ...)")
473 (description
474 "Release your ruby gems with ease. (What a bold statement for such a tiny plugin ...)")
475 (home-page
476 "https://github.com/svenfuchs/gem-release")
477 (license license:expat)))
478
479(define-public ruby-base32
480 (package
481 (name "ruby-base32")
482 (version "0.3.4")
483 (source
484 (origin
485 (method url-fetch)
486 (uri (rubygems-uri "base32" version))
487 (sha256
488 (base32
489 "1fjs0l3c5g9qxwp43kcnhc45slx29yjb6m6jxbb2x1krgjmi166b"))))
490 (build-system ruby-build-system)
491 (native-inputs
492 `(("ruby-gem-release" ,ruby-gem-release)))
493 (synopsis
494 "Ruby extension for base32 encoding and decoding")
495 (description
496 "Ruby extension for base32 encoding and decoding")
497 (home-page "https://github.com/stesla/base32")
498 (license license:expat)))
499
500(define-public ruby-dhall
501 (package
502 (name "ruby-dhall")
503 (version "0.5.7")
504 (source
505 (origin
506 (method url-fetch)
507 (uri (rubygems-uri "dhall" version))
508 (sha256
509 (base32
510 "1fmd4jfd66sdyihqigc2vgdjzjy7gi513gjmwz07rds7f7x70fsq"))))
511 (build-system ruby-build-system)
512 (arguments
513 ;; No test in gem archive
514 `(#:tests? #f))
515 (propagated-inputs
516 `(("ruby-base32" ,ruby-base32)
517 ("ruby-cbor" ,ruby-cbor)
518 ("ruby-citrus" ,ruby-citrus)
519 ("ruby-lazy-object" ,ruby-lazy-object)
520 ("ruby-multihashes" ,ruby-multihashes)
521 ("ruby-promise.rb" ,ruby-promise.rb)
522 ("ruby-value-semantics" ,ruby-value-semantics)))
523 (synopsis
524 "This is a Ruby implementation of the Dhall configuration language. Dhall is a powerful, but safe and non-Turing-complete configuration language. For more information, see: https://dhall-lang.org")
525 (description
526 "This is a Ruby implementation of the Dhall configuration language. Dhall is a powerful, but safe and non-Turing-complete configuration language. For more information, see: https://dhall-lang.org")
527 (home-page
528 "https://git.sr.ht/~singpolyma/dhall-ruby")
529 (license license:gpl3)))
530
531(define-public ruby-money
532 (package
533 (name "ruby-money")
534 (version "6.16.0")
535 (source
536 (origin
537 (method url-fetch)
538 (uri (rubygems-uri "money" version))
539 (sha256
540 (base32
541 "0jkmsj5ymadik7bvl670bqwmvhsdyv7hjr8gq9z293hq35gnyiyg"))))
542 (build-system ruby-build-system)
543 (arguments
544 ;; No rakefile
545 `(#:tests? #f))
546 (propagated-inputs `(("ruby-i18n" ,ruby-i18n)))
547 (synopsis
548 "A Ruby Library for dealing with money and currency conversion.")
549 (description
550 "This package provides a Ruby Library for dealing with money and currency conversion.")
551 (home-page "https://rubymoney.github.io/money")
552 (license license:expat)))
553
554(define-public ruby-monetize
555 (package
556 (name "ruby-monetize")
557 (version "1.11.0")
558 (source
559 (origin
560 (method url-fetch)
561 (uri (rubygems-uri "monetize" version))
562 (sha256
563 (base32
564 "0cna2myxdbwfq0gn6k2hgrh368dq7wld3jklm96443ysykd0difn"))))
565 (build-system ruby-build-system)
566 (arguments
567 '(#:test-target "spec"))
568 (native-inputs
569 `(("ruby-rspec" ,ruby-rspec)))
570 (propagated-inputs `(("ruby-money" ,ruby-money)))
571 (synopsis
572 "A library for converting various objects into `Money` objects.")
573 (description
574 "This package provides a library for converting various objects into `Money` objects.")
575 (home-page
576 "https://github.com/RubyMoney/monetize")
577 (license license:expat)))
578
579(define-public ruby-money-open-exchange-rates
580 (package
581 (name "ruby-money-open-exchange-rates")
582 (version "1.4.0")
583 (source
584 (origin
585 (method git-fetch)
586 ;; Download from GitHub because the rubygems version does not contain
587 ;; Rakefile.
588 (uri (git-reference
589 (url "https://github.com/spk/money-open-exchange-rates")
590 (commit (string-append "v" version))))
591 (file-name (git-file-name name version))
592 (sha256
593 (base32
594 "11xwqli8snr19k48yh8h77sal5vxd4snzq9gxg08v61f0574m3gw"))))
595 (build-system ruby-build-system)
596 (propagated-inputs `(("ruby-money" ,ruby-money)))
597 (native-inputs
598 `(("ruby-minitest" ,ruby-minitest)
599 ("ruby-mocha" ,ruby-mocha)
600 ("ruby-timecop" ,ruby-timecop)
601 ("ruby-webmock" ,ruby-webmock)
602 ("ruby-monetize" ,ruby-monetize)
603 ("ruby-rake" ,ruby-rake)
604 ("ruby-rubocop" ,ruby-rubocop)))
605 (synopsis
606 "A gem that calculates the exchange rate using published rates from open-exchange-rates. Compatible with the money gem.")
607 (description
608 "This package provides a gem that calculates the exchange rate using published rates from open-exchange-rates. Compatible with the money gem.")
609 (home-page
610 "http://github.com/spk/money-open-exchange-rates")
611 (license license:expat)))
612
613(define-public ruby-roda
614 (package
615 (name "ruby-roda")
616 (version "3.47.0")
617 (source
618 (origin
619 (method url-fetch)
620 (uri (rubygems-uri "roda" version))
621 (sha256
622 (base32
623 "1g3zs4bk8hqii15ci1hsykcsya88vr2qv63gp1qbcx4bm14l8lkl"))))
624 (build-system ruby-build-system)
625 (arguments
626 ;; No rakefile
627 `(#:tests? #f))
628 (propagated-inputs `(("ruby-rack" ,ruby-rack)))
629 (synopsis "Routing tree web toolkit")
630 (description "Routing tree web toolkit")
631 (home-page "http://roda.jeremyevans.net")
632 (license license:expat)))
633
634(define-public ruby-nori
635 (package
636 (name "ruby-nori")
637 (version "2.6.0")
638 (source
639 (origin
640 (method url-fetch)
641 (uri (rubygems-uri "nori" version))
642 (sha256
643 (base32
644 "066wc774a2zp4vrq3k7k8p0fhv30ymqmxma1jj7yg5735zls8agn"))))
645 (build-system ruby-build-system)
646 (arguments
647 ;; Tests require too old version of rspec
648 `(#:tests? #f))
649 (native-inputs
650 `(("ruby-rspec" ,ruby-rspec)
651 ("ruby-rake" ,ruby-rake)
652 ("ruby-nokogiri" ,ruby-nokogiri)))
653 (synopsis "XML to Hash translator")
654 (description "XML to Hash translator")
655 (home-page "https://github.com/savonrb/nori")
656 (license license:expat)))
657
658(define-public ruby-faraday-middleware
659 (package
660 (name "ruby-faraday-middleware")
661 (version "1.1.0")
662 (source
663 (origin
664 (method url-fetch)
665 (uri (rubygems-uri "faraday_middleware" version))
666 (sha256
667 (base32
668 "0kgcphf7n74l3wlcvxafcp6a4l18b1bf4qslvz5dqj6v3gc8h8j4"))))
669 (build-system ruby-build-system)
670 (arguments
671 ;; No rakefile
672 `(#:tests? #f))
673 (propagated-inputs
674 `(("ruby-faraday" ,ruby-faraday)))
675 (synopsis "Various middleware for Faraday")
676 (description "Various middleware for Faraday")
677 (home-page
678 "https://github.com/lostisland/faraday_middleware")
679 (license license:expat)))
680
681(define-public ruby-bandwidth-iris
682 (package
683 (name "ruby-bandwidth-iris")
684 (version "v7.0.0")
685 (source
686 (origin
687 (method git-fetch)
688 (uri (git-reference
689 (url "https://github.com/Bandwidth/ruby-bandwidth-iris")
690 (commit version)))
691 (sha256
692 (base32
693 "0w6plk7n807fw9w29c4za7hf0g01m06ldm553lg3fl6c10kydj7q"))))
694 (build-system ruby-build-system)
695 (arguments
696 ; Tests don't require helper for some reason, so all fail...
697 '(#:tests? #f))
698 (propagated-inputs
699 `(("ruby-activesupport" ,ruby-activesupport)
700 ("ruby-builder" ,ruby-builder)
701 ("ruby-faraday" ,ruby-faraday)
702 ("ruby-faraday-middleware"
703 ,ruby-faraday-middleware)
704 ("ruby-nori" ,ruby-nori)))
705 (native-inputs
706 `(("ruby-rspec" ,ruby-rspec)
707 ("ruby-yard" ,ruby-yard)))
708 (synopsis
709 "Gem for integrating to Bandwidth's Iris API")
710 (description
711 "Gem for integrating to Bandwidth's Iris API")
712 (home-page
713 "https://github.com/bandwidthcom/ruby-bandwidth-iris")
714 (license license:expat)))
715
716(define-public ruby-sentry-core
717 (package
718 (name "ruby-sentry-core")
719 (version "4.3.1")
720 (source
721 (origin
722 (method url-fetch)
723 (uri (rubygems-uri "sentry-ruby-core" version))
724 (sha256
725 (base32
726 "13z35s9mflh3v775a0scsnqhscz9q46kaak38y7zmx32z7sg2a3a"))))
727 (build-system ruby-build-system)
728 (arguments
729 ; No rakefile in gem
730 '(#:tests? #f))
731 (propagated-inputs
732 `(("ruby-concurrent" ,ruby-concurrent)
733 ("ruby-faraday" ,ruby-faraday)))
734 (synopsis
735 "A gem that provides a client interface for the Sentry error logger")
736 (description
737 "This package provides a gem that provides a client interface for the Sentry error logger")
738 (home-page
739 "https://github.com/getsentry/sentry-ruby")
740 (license license:expat)))
741
742(define-public ruby-sentry
743 (package
744 (name "ruby-sentry")
745 (version "4.3.1")
746 (source
747 (origin
748 (method url-fetch)
749 (uri (rubygems-uri "sentry-ruby" version))
750 (sha256
751 (base32
752 "101q3141xfkmh7vi8h4sjqqmxcx90xhyq51lmfnhfiwgii7cn9k8"))))
753 (build-system ruby-build-system)
754 (arguments
755 ; No rakefile in gem
756 '(#:tests? #f))
757 (propagated-inputs
758 `(("ruby-concurrent" ,ruby-concurrent)
759 ("ruby-faraday" ,ruby-faraday)
760 ("ruby-sentry-core" ,ruby-sentry-core)))
761 (synopsis
762 "A gem that provides a client interface for the Sentry error logger")
763 (description
764 "This package provides a gem that provides a client interface for the Sentry error logger")
765 (home-page
766 "https://github.com/getsentry/sentry-ruby")
767 (license license:expat)))
768
769(define-public ruby-webrick
770 (package
771 (name "ruby-webrick")
772 (version "1.7.0")
773 (source
774 (origin
775 (method url-fetch)
776 (uri (rubygems-uri "webrick" version))
777 (sha256
778 (base32
779 "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7"))))
780 (build-system ruby-build-system)
781 (synopsis
782 "WEBrick is an HTTP server toolkit that can be configured as an HTTPS server, a proxy server, and a virtual-host server.")
783 (description
784 "WEBrick is an HTTP server toolkit that can be configured as an HTTPS server, a proxy server, and a virtual-host server.")
785 (home-page "https://github.com/ruby/webrick")
786 (license #f)))
787
788(define-public ruby-interception
789 (package
790 (name "ruby-interception")
791 (version "0.5")
792 (source
793 (origin
794 (method url-fetch)
795 (uri (rubygems-uri "interception" version))
796 (sha256
797 (base32
798 "01vrkn28psdx1ysh5js3hn17nfp1nvvv46wc1pwqsakm6vb1hf55"))))
799 (build-system ruby-build-system)
800 (native-inputs
801 `(("ruby-rspec" ,ruby-rspec)))
802 (synopsis
803 "Provides a cross-platform ability to intercept all exceptions as they are raised.")
804 (description
805 "This package provides a cross-platform ability to intercept all exceptions as they are raised.")
806 (home-page
807 "http://github.com/ConradIrwin/interception")
808 (license license:expat)))
809
810(define-public ruby-pry-rescue
811 (package
812 (name "ruby-pry-rescue")
813 (version "1.5.2")
814 (source
815 (origin
816 (method url-fetch)
817 (uri (rubygems-uri "pry-rescue" version))
818 (sha256
819 (base32
820 "1wn72y8y3d3g0ng350ld92nyjln012432q2z2iy9lhwzjc4dwi65"))))
821 (build-system ruby-build-system)
822 (arguments
823 `(#:phases
824 (modify-phases %standard-phases
825 (add-after 'unpack 'nuke-bad-test
826 (lambda _
827 (substitute* "spec/source_location_spec.rb"
828 (("time = Time.now") "skip"))
829 #t)))))
830 (propagated-inputs
831 `(("ruby-interception" ,ruby-interception)
832 ("ruby-pry" ,ruby-pry)))
833 (native-inputs
834 `(("ruby-rspec" ,ruby-rspec)
835 ("ruby-pry-stack-explorer" ,ruby-pry-stack-explorer)))
836 (synopsis
837 "Allows you to wrap code in Pry::rescue{ } to open a pry session at any unhandled exceptions")
838 (description
839 "Allows you to wrap code in Pry::rescue{ } to open a pry session at any unhandled exceptions")
840 (home-page
841 "https://github.com/ConradIrwin/pry-rescue")
842 (license license:expat)))
843
844(define-public ruby-rantly
845 (package
846 (name "ruby-rantly")
847 (version "2.0.0")
848 (source
849 (origin
850 (method url-fetch)
851 (uri (rubygems-uri "rantly" version))
852 (sha256
853 (base32
854 "11407cg0dzz83jsschnrpi9cqwz8b04q6bj6qj3m70ay52y222ix"))))
855 (build-system ruby-build-system)
856 (native-inputs
857 `(("ruby-rubocop" ,ruby-rubocop)
858 ("ruby-simplecov" ,ruby-simplecov)))
859 (synopsis
860 "Ruby Imperative Random Data Generator and Quickcheck")
861 (description
862 "Ruby Imperative Random Data Generator and Quickcheck")
863 (home-page "https://github.com/rantly-rb/rantly")
864 (license license:expat)))
865
866(define-public ruby-em-promise.rb
867 (package
868 (name "ruby-em-promise.rb")
869 (version "0.0.5")
870 (source (origin
871 (method url-fetch)
872 (uri (rubygems-uri "em_promise.rb" version))
873 (sha256
874 (base32
875 "00rkmacyf6i2gq0giaxzwr24ygrwwzndrq7kkbpqcq9glk01w692"))))
876 (build-system ruby-build-system)
877 (arguments
878 ;; No rakefile
879 `(#:tests? #f))
880 (propagated-inputs (list ruby-eventmachine ruby-promise.rb))
881 (synopsis "A subclass of promise.rb Promise for EventMachine.")
882 (description
883 "This package provides a subclass of promise.rb Promise for EventMachine.")
884 (home-page "https://git.singpolyma.net/em_promise.rb")
885 (license #f)))
886
887(define-public ruby-em-socksify
888 (package
889 (name "ruby-em-socksify")
890 (version "0.3.2")
891 (source (origin
892 (method url-fetch)
893 (uri (rubygems-uri "em-socksify" version))
894 (sha256
895 (base32
896 "0rk43ywaanfrd8180d98287xv2pxyl7llj291cwy87g1s735d5nk"))))
897 (build-system ruby-build-system)
898 (arguments
899 ;; Tests are broken
900 `(#:tests? #f))
901 (propagated-inputs (list ruby-eventmachine))
902 (synopsis "Transparent proxy support for any EventMachine protocol")
903 (description "Transparent proxy support for any EventMachine protocol")
904 (home-page "https://github.com/igrigorik/em-socksify")
905 (license license:expat)))
906
907(define-public ruby-rspec-collection-matchers
908 (package
909 (name "ruby-rspec-collection-matchers")
910 (version "1.2.0")
911 (source (origin
912 (method url-fetch)
913 (uri (rubygems-uri "rspec-collection_matchers" version))
914 (sha256
915 (base32
916 "1864xlxl7mi6mvjyp85a0gc10cyvpf6bj8lc86sf8737wlzn12ks"))))
917 (build-system ruby-build-system)
918 (arguments
919 ;; No rakefile
920 `(#:tests? #f))
921 (propagated-inputs (list ruby-rspec-expectations))
922 (synopsis
923 "Collection cardinality matchers, extracted from rspec-expectations")
924 (description
925 "Collection cardinality matchers, extracted from rspec-expectations")
926 (home-page "https://github.com/rspec/rspec-collection_matchers")
927 (license license:expat)))
928
929(define-public ruby-cookiejar
930 (package
931 (name "ruby-cookiejar")
932 (version "0.3.3")
933 (source (origin
934 (method url-fetch)
935 (uri (rubygems-uri "cookiejar" version))
936 (sha256
937 (base32
938 "0q0kmbks9l3hl0wdq744hzy97ssq9dvlzywyqv9k9y1p3qc9va2a"))))
939 (build-system ruby-build-system)
940 (native-inputs
941 `(("ruby-rspec" ,ruby-rspec)
942 ("ruby-rspec-collection-matchers" ,ruby-rspec-collection-matchers)
943 ("ruby-yard" ,ruby-yard)))
944 (synopsis
945 "Allows for parsing and returning cookies in Ruby HTTP client code")
946 (description
947 "Allows for parsing and returning cookies in Ruby HTTP client code")
948 (home-page "http://alkaline-solutions.com")
949 (license #f)))
950
951(define-public ruby-em-http-request
952 (package
953 (name "ruby-em-http-request")
954 (version "b51f48fafa6443ad48c89930716c5c427561abd8")
955 (source
956 (origin
957 (method git-fetch)
958 (uri (git-reference
959 (url "https://github.com/singpolyma/em-http-request")
960 (commit version)))
961 (file-name (git-file-name name version))
962 (sha256
963 (base32
964 "1kbaghj1gqz1dpl2hikpa4xggfmavma2y442yzsgqk27gmfp9iqq"))))
965 (build-system ruby-build-system)
966 (arguments
967 ;; Tests need a whole other set of dependencies
968 `(#:tests? #f))
969 (propagated-inputs (list ruby-addressable ruby-cookiejar ruby-em-socksify
970 ruby-eventmachine ruby-http-parser.rb))
971 (synopsis "EventMachine based, async HTTP Request client")
972 (description "EventMachine based, async HTTP Request client")
973 (home-page "http://github.com/igrigorik/em-http-request")
974 (license license:expat)))
975
976(define-public ruby-em-synchrony
977 (package
978 (name "ruby-em-synchrony")
979 (version "1.0.6")
980 (source (origin
981 (method url-fetch)
982 (uri (rubygems-uri "em-synchrony" version))
983 (sha256
984 (base32
985 "1jh6ygbcvapmarqiap79i6yl05bicldr2lnmc46w1fyrhjk70x3f"))))
986 (build-system ruby-build-system)
987 (arguments
988 ;; Tests need a whole other set of dependencies
989 `(#:tests? #f))
990 (propagated-inputs (list ruby-eventmachine))
991 (synopsis "Fiber aware EventMachine libraries")
992 (description "Fiber aware EventMachine libraries")
993 (home-page "http://github.com/igrigorik/em-synchrony")
994 (license license:expat)))
995
996(define-public ruby-amazing-print
997 (package
998 (name "ruby-amazing-print")
999 (version "1.5.0")
1000 (source
1001 (origin
1002 (method url-fetch)
1003 (uri (rubygems-uri "amazing_print" version))
1004 (sha256
1005 (base32 "0qik1igcs0ylw5b5dwx9npqac5r21d9fcv611h7klcspfari3x7r"))))
1006 (build-system ruby-build-system)
1007 (arguments
1008 `(#:tests? #f))
1009 (synopsis
1010 "Great Ruby debugging companion: pretty print Ruby objects to visualize their structure. Supports custom object formatting via plugins")
1011 (description
1012 "Great Ruby debugging companion: pretty print Ruby objects to visualize their
1013structure. Supports custom object formatting via plugins")
1014 (home-page "https://github.com/amazing-print/amazing_print")
1015 (license license:expat)))
1016
1017(define-public ruby-little-plugger
1018 (package
1019 (name "ruby-little-plugger")
1020 (version "1.1.4")
1021 (source
1022 (origin
1023 (method url-fetch)
1024 (uri (rubygems-uri "little-plugger" version))
1025 (sha256
1026 (base32 "1frilv82dyxnlg8k1jhrvyd73l6k17mxc5vwxx080r4x1p04gwym"))))
1027 (build-system ruby-build-system)
1028 (arguments
1029 `(#:tests? #f))
1030 (synopsis
1031 "LittlePlugger is a module that provides Gem based plugin management.
1032By extending your own class or module with LittlePlugger you can easily
1033manage the loading and initializing of plugins provided by other gems.")
1034 (description
1035 "@code{LittlePlugger} is a module that provides Gem based plugin management. By
1036extending your own class or module with @code{LittlePlugger} you can easily
1037manage the loading and initializing of plugins provided by other gems.")
1038 (home-page "http://gemcutter.org/gems/little-plugger")
1039 (license #f)))
1040
1041(define-public ruby-logging
1042 (package
1043 (name "ruby-logging")
1044 (version "2.3.1")
1045 (source
1046 (origin
1047 (method url-fetch)
1048 (uri (rubygems-uri "logging" version))
1049 (sha256
1050 (base32 "1zflchpx4g8c110gjdcs540bk5a336nq6nmx379rdg56xw0pjd02"))))
1051 (build-system ruby-build-system)
1052 (arguments
1053 `(#:tests? #f))
1054 (propagated-inputs (list ruby-little-plugger ruby-multi-json))
1055 (synopsis
1056 "**Logging** is a flexible logging library for use in Ruby programs based on the
1057design of Java's log4j library. It features a hierarchical logging system,
1058custom level names, multiple output destinations per log event, custom
1059formatting, and more.")
1060 (description
1061 "**Logging** is a flexible logging library for use in Ruby programs based on the
1062design of Java's log4j library. It features a hierarchical logging system,
1063custom level names, multiple output destinations per log event, custom
1064formatting, and more.")
1065 (home-page "http://rubygems.org/gems/logging")
1066 (license #f)))
1067
1068(define-public ruby-faraday-http-cache
1069 (package
1070 (name "ruby-faraday-http-cache")
1071 (version "2.5.1")
1072 (source
1073 (origin
1074 (method url-fetch)
1075 (uri (rubygems-uri "faraday-http-cache" version))
1076 (sha256
1077 (base32 "10wld3vk3i8zsr3pa9zyjiyi2zlyyln872812f08bbg1hnd15z6b"))))
1078 (build-system ruby-build-system)
1079 (arguments
1080 `(#:tests? #f))
1081 (propagated-inputs (list ruby-faraday))
1082 (synopsis "Middleware to handle HTTP caching")
1083 (description "Middleware to handle HTTP caching")
1084 (home-page "https://github.com/sourcelevel/faraday-http-cache")
1085 (license #f)))
1086
1087(define-public ruby-certifi
1088 (package
1089 (name "ruby-certifi")
1090 (version "2018.01.18")
1091 (source
1092 (origin
1093 (method url-fetch)
1094 (uri (rubygems-uri "certifi" version))
1095 (sha256
1096 (base32 "1qz95jaw1c2n61dnfxx70hncrhadjxm4j8wqhaj5alh44x5g1bym"))))
1097 (build-system ruby-build-system)
1098 (arguments
1099 `(#:tests? #f))
1100 (synopsis "Rubygem for providing Mozilla's CA Bundle")
1101 (description "Rubygem for providing Mozilla's CA Bundle")
1102 (home-page "http://certifi.io/")
1103 (license #f)))
1104
1105(define-public ruby-bandwidth-sdk
1106 (package
1107 (name "ruby-bandwidth-sdk")
1108 (version "6.1.0")
1109 (source
1110 (origin
1111 (method url-fetch)
1112 (uri (rubygems-uri "bandwidth-sdk" version))
1113 (sha256
1114 (base32 "050dfpwx5hf02cja3kr1j4mqrqdl9cwwghbng0q82gg6dnh572ww"))))
1115 (build-system ruby-build-system)
1116 (arguments
1117 `(#:tests? #f))
1118 (propagated-inputs (list ruby-builder
1119 ruby-certifi
1120 ruby-faraday
1121 ruby-faraday-http-cache
1122 ruby-faraday-middleware
1123 ruby-logging))
1124 (synopsis "Bandwidth's set of APIs")
1125 (description "Bandwidth's set of APIs")
1126 (home-page "https://github.com/Bandwidth/ruby-sdk")
1127 (license license:expat)))
1128
1129(define-public ruby-unaccent
1130 (package
1131 (name "ruby-unaccent")
1132 (version "0.4.0")
1133 (source
1134 (origin
1135 (method url-fetch)
1136 (uri (rubygems-uri "unaccent" version))
1137 (sha256
1138 (base32 "0cvk3vhs95123r4faa60vqknishx3r6fiy2kq0bm7p3f04q849yr"))))
1139 (build-system ruby-build-system)
1140 (arguments
1141 `(#:tests? #f))
1142 (synopsis "Replace accented characters with unaccented characters.")
1143 (description "Replace accented characters with unaccented characters.")
1144 (home-page "https://github.com/hardpixel/unaccent")
1145 (license license:expat)))
1146
1147(define-public ruby-countries
1148 (package
1149 (name "ruby-countries")
1150 (version "5.7.1")
1151 (source
1152 (origin
1153 (method url-fetch)
1154 (uri (rubygems-uri "countries" version))
1155 (sha256
1156 (base32 "0wwjvwfbfbkhablr45k7aaib7jx5j1k6ii3wi6p3x0fq9f903q88"))))
1157 (build-system ruby-build-system)
1158 (arguments
1159 `(#:tests? #f))
1160 (propagated-inputs (list ruby-unaccent))
1161 (synopsis
1162 "All sorts of useful information about every country packaged as pretty little country objects. It includes data from ISO 3166")
1163 (description
1164 "All sorts of useful information about every country packaged as pretty little
1165country objects. It includes data from ISO 3166")
1166 (home-page "https://github.com/countries/countries")
1167 (license license:expat)))
1168
1169(define-public ruby-em-hiredis
1170 (package
1171 (name "ruby-em-hiredis")
1172 (version "0.3.1")
1173 (source
1174 (origin
1175 (method url-fetch)
1176 (uri (rubygems-uri "em-hiredis" version))
1177 (sha256
1178 (base32 "0lh276x6wngq9xy75fzzvciinmdlys93db7chy968i18japghk6z"))))
1179 (build-system ruby-build-system)
1180 (arguments
1181 `(#:tests? #f))
1182 (propagated-inputs (list ruby-eventmachine ruby-hiredis))
1183 (synopsis "Eventmachine redis client using hiredis native parser")
1184 (description "Eventmachine redis client using hiredis native parser")
1185 (home-page "http://github.com/mloughran/em-hiredis")
1186 (license #f)))
1187
1188(define-public ruby-em-pg-client
1189 (package
1190 (name "ruby-em-pg-client")
1191 (version "a32daf9c25ac9c44e73e843e80125e0fb4c2a8f1")
1192 (source
1193 (origin
1194 (method git-fetch)
1195 (uri (git-reference
1196 (url "https://github.com/singpolyma/ruby-em-pg-client")
1197 (commit version)))
1198 (file-name (git-file-name name version))
1199 (sha256
1200 (base32
1201 "0c3vxy5cv5xiaxbbv9b1kdasbh6h865f6fl269fi327x0fdnyk15"))))
1202 (build-system ruby-build-system)
1203 (arguments
1204 `(#:tests? #f))
1205 (propagated-inputs (list ruby-eventmachine ruby-pg))
1206 (synopsis
1207 "PostgreSQL asynchronous EventMachine client, based on pg interface (PG::Connection)")
1208 (description
1209 "@code{PostgreSQL} asynchronous @code{EventMachine} client, based on pg interface
1210(PG::Connection)")
1211 (home-page "http://github.com/royaltm/ruby-em-pg-client")
1212 (license license:expat)))
1213
1214(define-public ruby-faraday-em-http
1215 (package
1216 (name "ruby-faraday-em-http")
1217 (version "52104d59129fed5056a0aa8395a7c67506fc5b88")
1218 (source
1219 (origin
1220 (method git-fetch)
1221 (uri (git-reference
1222 (url "https://github.com/singpolyma/faraday-em_http")
1223 (commit version)))
1224 (file-name (git-file-name name version))
1225 (sha256
1226 (base32
1227 "1gs3hs0mpzl9b4z490zhsak4mwxc9mvhzq76kih16pvmzyjjwl27"))))
1228 (build-system ruby-build-system)
1229 (arguments
1230 `(#:tests? #f))
1231 (synopsis "Faraday adapter for Em::Http")
1232 (description "Faraday adapter for Em::Http")
1233 (home-page "https://github.com/lostisland/faraday-em_http")
1234 (license license:expat)))
1235
1236(define-public ruby-faraday-retry
1237 (package
1238 (name "ruby-faraday-retry")
1239 (version "1.0.3")
1240 (source
1241 (origin
1242 (method url-fetch)
1243 (uri (rubygems-uri "faraday-retry" version))
1244 (sha256
1245 (base32 "153i967yrwnswqgvnnajgwp981k9p50ys1h80yz3q94rygs59ldd"))))
1246 (build-system ruby-build-system)
1247 (arguments
1248 `(#:tests? #f))
1249 (synopsis
1250 "Catches exceptions and retries each request a limited number of times.
1251")
1252 (description
1253 "Catches exceptions and retries each request a limited number of times.")
1254 (home-page "https://github.com/lostisland/faraday-retry")
1255 (license license:expat)))
1256
1257(define-public ruby-faraday-rack
1258 (package
1259 (name "ruby-faraday-rack")
1260 (version "1.0.0")
1261 (source
1262 (origin
1263 (method url-fetch)
1264 (uri (rubygems-uri "faraday-rack" version))
1265 (sha256
1266 (base32 "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g"))))
1267 (build-system ruby-build-system)
1268 (arguments
1269 `(#:tests? #f))
1270 (synopsis "Faraday adapter for Rack")
1271 (description "Faraday adapter for Rack")
1272 (home-page "https://github.com/lostisland/faraday-rack")
1273 (license license:expat)))
1274
1275(define-public ruby-faraday-patron
1276 (package
1277 (name "ruby-faraday-patron")
1278 (version "1.0.0")
1279 (source
1280 (origin
1281 (method url-fetch)
1282 (uri (rubygems-uri "faraday-patron" version))
1283 (sha256
1284 (base32 "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w"))))
1285 (build-system ruby-build-system)
1286 (arguments
1287 `(#:tests? #f))
1288 (propagated-inputs (list ruby-patron))
1289 (synopsis "Faraday adapter for Patron")
1290 (description "Faraday adapter for Patron")
1291 (home-page "https://github.com/lostisland/faraday-patron")
1292 (license license:expat)))
1293
1294(define-public ruby-faraday-net-http
1295 (package
1296 (name "ruby-faraday-net-http")
1297 (version "1.0.1")
1298 (source
1299 (origin
1300 (method url-fetch)
1301 (uri (rubygems-uri "faraday-net_http" version))
1302 (sha256
1303 (base32 "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j"))))
1304 (build-system ruby-build-system)
1305 (arguments
1306 `(#:tests? #f))
1307 (synopsis "Faraday adapter for Net::HTTP")
1308 (description "Faraday adapter for Net::HTTP")
1309 (home-page "https://github.com/lostisland/faraday-net_http")
1310 (license license:expat)))
1311
1312(define-public ruby-faraday-net-http-persistent
1313 (package
1314 (name "ruby-faraday-net-http-persistent")
1315 (version "1.2.0")
1316 (source
1317 (origin
1318 (method url-fetch)
1319 (uri (rubygems-uri "faraday-net_http_persistent" version))
1320 (sha256
1321 (base32 "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b"))))
1322 (build-system ruby-build-system)
1323 (arguments
1324 `(#:tests? #f))
1325 (propagated-inputs (list ruby-net-http-persistent))
1326 (synopsis "Faraday adapter for NetHttpPersistent")
1327 (description "Faraday adapter for @code{NetHttpPersistent}")
1328 (home-page "https://github.com/lostisland/faraday-net_http_persistent")
1329 (license license:expat)))
1330
1331(define-public ruby-faraday-httpclient
1332 (package
1333 (name "ruby-faraday-httpclient")
1334 (version "1.0.1")
1335 (source
1336 (origin
1337 (method url-fetch)
1338 (uri (rubygems-uri "faraday-httpclient" version))
1339 (sha256
1340 (base32 "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc"))))
1341 (build-system ruby-build-system)
1342 (arguments
1343 `(#:tests? #f))
1344 (propagated-inputs (list ruby-httpclient))
1345 (synopsis "Faraday adapter for HTTPClient")
1346 (description "Faraday adapter for HTTPClient")
1347 (home-page "https://github.com/lostisland/faraday-httpclient")
1348 (license license:expat)))
1349
1350(define-public ruby-excon
1351 (package
1352 (name "ruby-excon")
1353 (version "0.109.0")
1354 (source
1355 (origin
1356 (method url-fetch)
1357 (uri (rubygems-uri "excon" version))
1358 (sha256
1359 (base32 "1kmmwgjzlrnc3nnrdnw1z67c95nbw0hv54a73yj8jw6pcvl9585x"))))
1360 (build-system ruby-build-system)
1361 (arguments
1362 `(#:tests? #f))
1363 (synopsis "EXtended http(s) CONnections")
1364 (description "EXtended http(s) CONnections")
1365 (home-page "https://github.com/excon/excon")
1366 (license license:expat)))
1367
1368(define-public ruby-faraday-excon
1369 (package
1370 (name "ruby-faraday-excon")
1371 (version "1.1.0")
1372 (source
1373 (origin
1374 (method url-fetch)
1375 (uri (rubygems-uri "faraday-excon" version))
1376 (sha256
1377 (base32 "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh"))))
1378 (build-system ruby-build-system)
1379 (arguments
1380 `(#:tests? #f))
1381 (propagated-inputs (list ruby-excon))
1382 (synopsis "Faraday adapter for Excon")
1383 (description "Faraday adapter for Excon")
1384 (home-page "https://github.com/lostisland/faraday-excon")
1385 (license license:expat)))
1386
1387(define-public ruby-faraday-em-synchrony
1388 (package
1389 (name "ruby-faraday-em-synchrony")
1390 (version "1.0.0")
1391 (source
1392 (origin
1393 (method url-fetch)
1394 (uri (rubygems-uri "faraday-em_synchrony" version))
1395 (sha256
1396 (base32 "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6"))))
1397 (build-system ruby-build-system)
1398 (arguments
1399 `(#:tests? #f))
1400 (synopsis "Faraday adapter for EM::Synchrony")
1401 (description "Faraday adapter for EM::Synchrony")
1402 (home-page "https://github.com/lostisland/faraday-em_synchrony")
1403 (license license:expat)))
1404
1405(define-public ruby-faraday
1406 (package
1407 (name "ruby-faraday")
1408 (version "1.10.1")
1409 (source
1410 (origin
1411 (method url-fetch)
1412 (uri (rubygems-uri "faraday" version))
1413 (sha256
1414 (base32 "037w5kg3y9jrwgg7izfn1pmzngy0hdhcr7slmxwqa3mdb4rx9r9q"))))
1415 (build-system ruby-build-system)
1416 (arguments
1417 `(#:tests? #f))
1418 (propagated-inputs (list ruby-faraday-em-http
1419 ruby-faraday-em-synchrony
1420 ruby-faraday-excon
1421 ruby-faraday-httpclient
1422 ruby-faraday-multipart
1423 ruby-faraday-net-http
1424 ruby-faraday-net-http-persistent
1425 ruby-faraday-patron
1426 ruby-faraday-rack
1427 ruby-faraday-retry
1428 ruby-ruby2-keywords))
1429 (synopsis "HTTP/REST API client library.")
1430 (description "HTTP/REST API client library.")
1431 (home-page "https://lostisland.github.io/faraday")
1432 (license license:expat)))
1433
1434(define-public ruby-link-header-parser
1435 (package
1436 (name "ruby-link-header-parser")
1437 (version "7.0.1")
1438 (source
1439 (origin
1440 (method url-fetch)
1441 (uri (rubygems-uri "link-header-parser" version))
1442 (sha256
1443 (base32 "0ayfijl4804pcxikc2znfdyq4lhxga9rf0v2xhr3zynlgfciz66h"))))
1444 (build-system ruby-build-system)
1445 (arguments
1446 `(#:tests? #f))
1447 (synopsis "Parse HTTP Link headers.")
1448 (description "Parse HTTP Link headers.")
1449 (home-page "https://github.com/jgarber623/link-header-parser-ruby")
1450 (license license:expat)))
1451
1452(define-public ruby-multibases
1453 (package
1454 (name "ruby-multibases")
1455 (version "0.3.2")
1456 (source
1457 (origin
1458 (method url-fetch)
1459 (uri (rubygems-uri "multibases" version))
1460 (sha256
1461 (base32 "0jsdwi3c3y9nnsivah0pxkbij8vkj949kb7bvrm161pawn6cvgzz"))))
1462 (build-system ruby-build-system)
1463 (synopsis
1464 "This is a low-level library, but high level implementations are provided.
1465 You can also bring your own encoder/decoder. This gem can be used _both_ for
1466 encoding into or decoding from multibase packed strings, as well as serve as
1467 a _general purpose_ library to do `BaseX` encoding and decoding _without_
1468 adding the prefix.")
1469 (description
1470 "This is a low-level library, but high level implementations are provided. You
1471can also bring your own encoder/decoder. This gem can be used _both_ for
1472encoding into or decoding from multibase packed strings, as well as serve as a
1473_general purpose_ library to do `@code{BaseX`} encoding and decoding _without_
1474adding the prefix.")
1475 (home-page "https://github.com/SleeplessByte/ruby-multibase")
1476 (license license:expat)))
1477
1478(define-public ruby-ougai
1479 (package
1480 (name "ruby-ougai")
1481 (version "2.0.0")
1482 (source
1483 (origin
1484 (method url-fetch)
1485 (uri (rubygems-uri "ougai" version))
1486 (sha256
1487 (base32 "0zmngsm3lrliscry7ljw7x5gnf3m4cn4kdgnxccaidhwj0mm539f"))))
1488 (build-system ruby-build-system)
1489 (arguments
1490 `(#:tests? #f))
1491 (propagated-inputs (list ruby-oj))
1492 (synopsis
1493 " A structured logging system is capable of handling a message, custom data or an exception easily.
1494 It has JSON formatters compatible with Bunyan or pino for Node.js and human readable formatter with Amazing Print for console.
1495")
1496 (description
1497 "This package provides a structured logging system is capable of handling a
1498message, custom data or an exception easily. It has JSON formatters compatible
1499with Bunyan or pino for Node.js and human readable formatter with Amazing Print
1500for console.")
1501 (home-page "https://github.com/tilfin/ougai")
1502 (license license:expat)))
1503
1504(define-public ruby-relative-time
1505 (package
1506 (name "ruby-relative-time")
1507 (version "1.1.0")
1508 (source
1509 (origin
1510 (method url-fetch)
1511 (uri (rubygems-uri "relative_time" version))
1512 (sha256
1513 (base32 "0x520r0vgcwjyknmgllblp997qii73vzk4r411c4xbwnlxh5fl99"))))
1514 (build-system ruby-build-system)
1515 (arguments
1516 `(#:tests? #f))
1517 (synopsis
1518 "Relative Time ago gem is used to calulate the relative time instead of using naive ruby time_ago_in_words helper method.
1519")
1520 (description
1521 "Relative Time ago gem is used to calulate the relative time instead of using
1522naive ruby time_ago_in_words helper method.")
1523 (home-page "https://github.com/lalithr95/Relative-Time-ago")
1524 (license license:expat)))
1525
1526(define-public ruby-statsd-instrument
1527 (package
1528 (name "ruby-statsd-instrument")
1529 (version "09b5fe1c6e51704ec40221cd5fdb6bb688f0f40b")
1530 (source
1531 (origin
1532 (method git-fetch)
1533 (uri (git-reference
1534 (url "https://github.com/singpolyma/statsd-instrument")
1535 (commit version)))
1536 (file-name (git-file-name name version))
1537 (sha256
1538 (base32
1539 "1pj87difhx2vkdxv75q7yskla2wg4g0h2528xsxxd27qa4bscf40"))))
1540 (build-system ruby-build-system)
1541 (arguments
1542 `(#:tests? #f))
1543 (synopsis
1544 "A StatsD client for Ruby apps. Provides metaprogramming methods to inject StatsD instrumentation into your code.")
1545 (description
1546 "This package provides a @code{StatsD} client for Ruby apps. Provides
1547metaprogramming methods to inject @code{StatsD} instrumentation into your code.")
1548 (home-page "https://github.com/Shopify/statsd-instrument")
1549 (license license:expat)))
1550
1551(define-public ruby-hiredis
1552 (package
1553 (name "ruby-hiredis")
1554 (version "0.6.3")
1555 (source
1556 (origin
1557 (method url-fetch)
1558 (uri (rubygems-uri "hiredis" version))
1559 (sha256
1560 (base32 "04jj8k7lxqxw24sp0jiravigdkgsyrpprxpxm71ba93x1wr2w1bz"))))
1561 (build-system ruby-build-system)
1562 (arguments
1563 `(#:tests? #f
1564 #:phases
1565 (modify-phases %standard-phases
1566 (add-after 'extract-gemspec 'set-cc
1567 (lambda _
1568 (putenv "CC=gcc"))))))
1569 (native-inputs (list ruby-rake-compiler))
1570 (synopsis
1571 "Ruby wrapper for hiredis (protocol serialization/deserialization and blocking I/O)")
1572 (description
1573 "Ruby wrapper for hiredis (protocol serialization/deserialization and blocking
1574I/O)")
1575 (home-page "http://github.com/redis/hiredis-rb")
1576 (license #f)))
1577
1578;;;;
1579
1580(define %source-dir (dirname (current-filename)))
1581(define %git-dir (string-append %source-dir "/.git"))
1582
1583; Bake a template by eval'ing the leaves
1584(define-public (bake tmpl)
1585 (list
1586 (car tmpl)
1587 (cons (caadr tmpl) (map
1588 (lambda (x) (list (car x) (eval (cadr x) (current-module))))
1589 (cdadr tmpl)))))
1590
1591; double-escaped template of the sgx-jmp sexp
1592; This allows us to bake the expression without doing a full eval to a record,
1593; so it can be written
1594(define-public sgx-jmp-template
1595 '((package-input-rewriting `((,ruby-eventmachine . ,ruby-eventmachine-openssl)))
1596 (package
1597 (name "sgx-jmp")
1598 (version (read-line (open-pipe* OPEN_READ "git" "--git-dir" %git-dir "describe" "--always" "--dirty")))
1599 (source
1600 `(origin
1601 (method git-fetch)
1602 (uri (git-reference
1603 (recursive? #t)
1604 (url "https://git.singpolyma.net/sgx-jmp")
1605 (commit ,(read-line (open-pipe* OPEN_READ "git" "--git-dir" %git-dir "rev-parse" "HEAD")))))
1606 (file-name (git-file-name name version))
1607 (sha256
1608 (base32
1609 ,(read-line (open-pipe* OPEN_READ "guix" "hash" "-rx" %source-dir))))))
1610 (build-system 'copy-build-system)
1611 (arguments
1612 ''(#:install-plan '(("." "share/sgx-jmp"))
1613 #:phases
1614 (modify-phases %standard-phases
1615 (add-after 'install 'wrap
1616 (lambda* (#:key outputs #:allow-other-keys)
1617 (use-modules (ice-9 ftw))
1618 (let* ((out (assoc-ref outputs "out"))
1619 (appbindir (string-append out "/share/sgx-jmp/bin/"))
1620 (bindir (string-append out "/bin/")))
1621 (for-each (lambda (bin)
1622 (mkdir-p bindir)
1623 (let ((binstub (string-append bindir bin)))
1624 (call-with-output-file binstub
1625 (lambda (port)
1626 (format port
1627 "#!~a~%ENV['GEM_PATH'] = ['~a', ENV['GEM_PATH']].compact.join(':')~%Gem.clear_paths~%load '~a~a'~%"
1628 (which "ruby")
1629 (getenv "GEM_PATH")
1630 appbindir
1631 bin)))
1632 (chmod binstub #o755)))
1633 (scandir appbindir
1634 (lambda (f) (eq? 'regular (stat:type (stat (string-append appbindir f))))))))
1635 #t))
1636 (add-before 'install 'check
1637 (lambda _
1638 (invoke "rake" "test"))))))
1639 (propagated-inputs
1640 '(list
1641 ruby
1642 ruby-amazing-print
1643 ruby-bandwidth-sdk
1644 ruby-blather
1645 ruby-braintree
1646 ruby-countries
1647 ruby-dhall
1648 ruby-em-hiredis
1649 ruby-em-http-request
1650 ruby-em-pg-client
1651 ruby-em-promise.rb
1652 ruby-em-synchrony
1653 ruby-eventmachine
1654 ruby-faraday-em-http
1655 ruby-link-header-parser
1656 ruby-money-open-exchange-rates
1657 ruby-multibases
1658 ruby-multihashes
1659 ruby-ougai
1660 ruby-relative-time
1661 ruby-roda
1662 ruby-bandwidth-iris
1663 ruby-sentry
1664 ruby-slim
1665 ruby-statsd-instrument
1666 ruby-thin
1667 ruby-value-semantics))
1668 (native-inputs
1669 '(list
1670 ruby-rack-test
1671 ruby-rantly
1672 ruby-rubocop
1673 ruby-webmock))
1674 (synopsis
1675 "Main component for JMP.chat")
1676 (description
1677 "")
1678 (home-page
1679 "https://git.singpolyma.net/sgx-jmp")
1680 (license 'license:agpl3))))
1681
1682; Baked version of jmp-pay-template with leaves eval'd
1683(define-public sgx-jmp-baked
1684 (bake sgx-jmp-template))
1685
1686; Build clean from git the version from a local clone
1687; To build whatever is sitting in local use:
1688; guix build --with-source=$PWD -f guix.scm
1689
1690(eval sgx-jmp-baked (current-module))