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