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