From 82c5260265dc9f2c7bbe3f04a2b48b6cd1de2e7a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 22 Feb 2021 16:51:20 +0200 Subject: gn: more discourse packages --- gn/packages/ruby.scm | 1309 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1303 insertions(+), 6 deletions(-) (limited to 'gn/packages/ruby.scm') diff --git a/gn/packages/ruby.scm b/gn/packages/ruby.scm index 4b6ea3e..01087e8 100644 --- a/gn/packages/ruby.scm +++ b/gn/packages/ruby.scm @@ -370,9 +370,14 @@ one-to-one, while still providing an idiomatic interface.") (lambda _ (substitute* "Gemfile" (("6.0.3.3") "5.2.2.1") ; different rails version + ((".*rails_failover.*") "") ; need to upgrade rails to 6.0+ + (("2.0.1") ,(package-version ruby-sassc)) (("active_model_serializers.*") "active_model_serializers'\n") - ;; hide mini-racer for now, can't build libv8 + ;; hide mini-racer and rbtrace for now, can't build libv8, rbtrace ((".*mini_racer.*") "") + ((".*rbtrace.*") "") + ;; ruby-cppjieba-rb never finishes the install phase + ((".*cppjieba_rb.*") "") ) #t)) (replace 'build @@ -389,11 +394,17 @@ one-to-one, while still providing an idiomatic interface.") ("ruby-active-model-serializers" ,ruby-active-model-serializers) ("ruby-activemodel" ,ruby-activemodel) ("ruby-activerecord" ,ruby-activerecord) + ("ruby-annotate" ,ruby-annotate) ("ruby-aws-sdk-s3" ,ruby-aws-sdk-s3) ("ruby-aws-sdk-sns" ,ruby-aws-sdk-sns) + ("ruby-better-errors" ,ruby-better-errors) + ("ruby-binding-of-caller" ,ruby-binding-of-caller) ("ruby-bootsnap" ,ruby-bootsnap) + ("ruby-bullet" ,ruby-bullet) ("ruby-cbor" ,ruby-cbor) + ;("ruby-cppjieba-rb" ,ruby-cppjieba-rb) ("ruby-certified" ,ruby-certified) + ("ruby-colored2" ,ruby-colored2) ("ruby-cose" ,ruby-cose) ("ruby-css-parser" ,ruby-css-parser) ("ruby-diffy" ,ruby-diffy) @@ -405,11 +416,22 @@ one-to-one, while still providing an idiomatic interface.") ("ruby-excon" ,ruby-excon) ("ruby-fabrication" ,ruby-fabrication) ("ruby-fakeweb" ,ruby-fakeweb) + ("ruby-fast-blank" ,ruby-fast-blank) ("ruby-fast-xs" ,ruby-fast-xs) ("ruby-fastimage" ,ruby-fastimage) + ("ruby-flamegraph" ,ruby-flamegraph) + ("ruby-gc-tracer" ,ruby-gc-tracer) ("ruby-highline" ,ruby-highline) ("ruby-http-accept-language" ,ruby-http-accept-language) ("ruby-listen" ,ruby-listen) + ("ruby-lograge" ,ruby-lograge) + ("ruby-logstash-event" ,ruby-logstash-event) + ("ruby-logstash-logger" ,ruby-logstash-logger) + ("ruby-logster" ,ruby-logster) + ("ruby-lru-redux" ,ruby-lru-redux) + ("ruby-lz4-ruby" ,ruby-lz4-ruby) + ("ruby-maxminddb" ,ruby-maxminddb) + ("ruby-memory-profiler" ,ruby-memory-profiler) ("ruby-message-bus" ,ruby-message-bus) ("ruby-mini-mime" ,ruby-mini-mime) ;("ruby-mini-racer" ,ruby-mini-racer) @@ -429,14 +451,21 @@ one-to-one, while still providing an idiomatic interface.") ("ruby-pg" ,ruby-pg) ("ruby-pry-byebug" ,ruby-pry-byebug) ("ruby-pry-rails" ,ruby-pry-rails) + ("ruby-puma" ,ruby-puma) ("ruby-r2" ,ruby-r2) + ("ruby-rack-mini-profiler" ,ruby-rack-mini-profiler) ("ruby-rack-protection" ,ruby-rack-protection) + ;("ruby-rails-failover" ,ruby-rails-failover) ("ruby-rails-multisite" ,ruby-rails-multisite) ("ruby-railties" ,ruby-railties) ("ruby-rake" ,ruby-rake) + ;("ruby-rbtrace" ,ruby-rbtrace) + ("ruby-rchardet" ,ruby-rchardet) ("ruby-redis" ,ruby-redis) ("ruby-redis-namespace" ,ruby-redis-namespace) ("ruby-rinku" ,ruby-rinku) + ("ruby-rotp" ,ruby-rotp) + ("ruby-rqrcode" ,ruby-rqrcode) ("ruby-rspec" ,ruby-rspec) ("ruby-rspec-html-matchers" ,ruby-rspec-html-matchers) ("ruby-rspec-rails" ,ruby-rspec-rails) @@ -444,16 +473,25 @@ one-to-one, while still providing an idiomatic interface.") ("ruby-rtlit" ,ruby-rtlit) ("ruby-rubocop-discourse" ,ruby-rubocop-discourse) ("ruby-ruby-prof" ,ruby-ruby-prof) + ("ruby-ruby-readability" ,ruby-ruby-readability) + ("ruby-rubyzip" ,ruby-rubyzip) + ("ruby-sassc" ,ruby-sassc) + ("ruby-sassc-rails" ,ruby-sassc-rails) ("ruby-seed-fu" ,ruby-seed-fu) ("ruby-shoulda-matchers" ,ruby-shoulda-matchers) ("ruby-sidekiq" ,ruby-sidekiq) ("ruby-simplecov" ,ruby-simplecov) ("ruby-sprockets-rails" ,ruby-sprockets-rails) + ("ruby-sshkey" ,ruby-sshkey) + ("ruby-stackprof" ,ruby-stackprof) ("ruby-test-prof" ,ruby-test-prof) ("ruby-uglifier" ,ruby-uglifier) ("ruby-unf" ,ruby-unf) + ("ruby-unicorn" ,ruby-unicorn) ("ruby-webmock" ,ruby-webmock) + ("ruby-webpush" ,ruby-webpush) ("ruby-xorcist" ,ruby-xorcist) + ("ruby-yaml-lint" ,ruby-yaml-lint) )) (native-inputs `( @@ -1421,7 +1459,20 @@ and HTML without having to deal with character set issues.") (description "Measure following file dimensions: apng, bmp, cur, gif, ico, j2c, jp2, jpeg, jpx, mng, pam, pbm, pcx, pgm, png, ppm, psd, svg, swf, tiff, webp, xbm, xpm") (home-page "https://github.com/toy/image_size") - (license #f))) + (license license:ruby))) + +(define-public ruby-image-size-1.5 + (package + (inherit ruby-image-size) + (name "ruby-image-size") + (version "1.5.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "image_size" version)) + (sha256 + (base32 + "0zrn2mqaf1kk548wn1y35i1a6kwh3320q62m929kn9m8sqpy4fk7")))))) (define-public ruby-fspath (package @@ -1507,7 +1558,7 @@ and HTML without having to deal with character set issues.") (propagated-inputs `(("ruby-exifr" ,ruby-exifr) ("ruby-fspath" ,ruby-fspath) - ("ruby-image-size" ,ruby-image-size) + ("ruby-image-size" ,ruby-image-size-1.5) ("ruby-in-threads" ,ruby-in-threads) ("ruby-progress" ,ruby-progress))) (synopsis @@ -3007,6 +3058,10 @@ similar to Python's Requests.") (base32 "0r8rd9q4g6wda6k2bvsgpwnn9wbaqglb843bm4f1q6xfjkhs5h0l")))) (build-system ruby-build-system) + (native-inputs + `( + ("ruby-rake-compiler" ,ruby-rake-compiler) + )) (synopsis "Psych is a YAML parser and emitter. Psych leverages libyaml[https://pyyaml.org/wiki/LibYAML] for its YAML parsing and emitting capabilities. In addition to wrapping libyaml, @@ -3032,6 +3087,8 @@ Psych also knows how to serialize and de-serialize most Ruby objects to and from (base32 "1ngxg3ysq5vip9dn3d32ajc7ly61kdin86hfycm1hkrcvkkn1vjf")))) (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; old package is old (synopsis " Kwalify is a parser, schema validator, and data binding tool for YAML and JSON. ") @@ -3053,11 +3110,19 @@ Psych also knows how to serialize and de-serialize most Ruby objects to and from (base32 "1zlfvj1dh064y119sfz9w3rkj3d9qkwm1k6dkcjymr6cwj6cqqp2")))) (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; needs aruba ~> 1.0 (propagated-inputs `(("ruby-kwalify" ,ruby-kwalify) ("ruby-parser" ,ruby-parser) ("ruby-psych" ,ruby-psych) ("ruby-rainbow" ,ruby-rainbow))) + (native-inputs + `( + ("ruby-aruba" ,ruby-aruba) + ("ruby-cucumber" ,ruby-cucumber) + ("ruby-rspec" ,ruby-rspec) + )) (synopsis "Reek is a tool that examines Ruby classes, modules and methods and reports any code smells it finds.") (description @@ -3077,6 +3142,8 @@ Psych also knows how to serialize and de-serialize most Ruby objects to and from (base32 "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c")))) (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; Break dependency cycle with ruby-devtools. (synopsis "Turns your object into a method object") (description @@ -3100,6 +3167,10 @@ Psych also knows how to serialize and de-serialize most Ruby objects to and from `(("ruby-path-expander" ,ruby-path-expander) ("ruby-ruby-parser" ,ruby-ruby-parser) ("ruby-sexp-processor" ,ruby-sexp-processor))) + (native-inputs + `( + ("ruby-hoe" ,ruby-hoe) + )) (synopsis "Flog reports the most tortured code in an easy to read pain report. The higher the score, the more pain the code is in.") @@ -3121,6 +3192,10 @@ report. The higher the score, the more pain the code is in.") (base32 "1l40n8i959c8bk5m9cfs4m75h2cq01wjwhahnkw7jxgicpva30gv")))) (build-system ruby-build-system) + (native-inputs + `( + ("ruby-hoe" ,ruby-hoe) + )) (synopsis "PathExpander helps pre-process command-line arguments expanding directories into their constituent files. It further helps by @@ -3162,11 +3237,17 @@ PathExpander.") (base32 "1my4ga8a8wsqb4nqbf31gvml64ngr66r0zim4mx2kvi76zygczv7")))) (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; TODO: fix! only 1 failing test! (propagated-inputs `(("ruby-erubis" ,ruby-erubis) ("ruby-path-expander" ,ruby-path-expander) ("ruby-ruby-parser" ,ruby-ruby-parser) ("ruby-sexp-processor" ,ruby-sexp-processor))) + (native-inputs + `( + ("ruby-hoe" ,ruby-hoe) + )) (synopsis "Flay analyzes code for structural similarities. Differences in literal values, variable, class, method names, whitespace, programming style, @@ -3190,6 +3271,8 @@ braces vs do/end, etc are all ignored. Making this totally rad.") (base32 "1vznyzcd3z7wiwjfgr941nq405kd7zm5vjb3sv2mzbbrcla9qkhq")))) (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; Break dependency cycle with ruby-devtools. (propagated-inputs `(("ruby-adamantium" ,ruby-adamantium) ("ruby-equalizer" ,ruby-equalizer))) @@ -3210,6 +3293,8 @@ braces vs do/end, etc are all ignored. Making this totally rad.") (base32 "007wrc8px9ql4nqp34w0ffb9nj2nrbrcxvy036ng28bpbig7fzs6")))) (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; Break dependency cycle with ruby-devtools. (propagated-inputs `(("ruby-abstract-type" ,ruby-abstract-type) ("ruby-adamantium" ,ruby-adamantium) @@ -3233,6 +3318,8 @@ braces vs do/end, etc are all ignored. Making this totally rad.") (base32 "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x")))) (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; Break dependency cycle with ruby-devtools. (synopsis "Deep Freeze Ruby Objects") (description "Deep Freeze Ruby Objects") (home-page "https://github.com/dkubb/ice_nine") @@ -3250,6 +3337,8 @@ braces vs do/end, etc are all ignored. Making this totally rad.") (base32 "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak")))) (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; Break dependency cycle with ruby-devtools. (propagated-inputs `(("ruby-ice-nine" ,ruby-ice-nine) ("ruby-memoizable" ,ruby-memoizable))) @@ -3270,6 +3359,8 @@ braces vs do/end, etc are all ignored. Making this totally rad.") (base32 "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14")))) (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; Break dependency cycle with ruby-devtools. (synopsis "Module to declare abstract classes and methods") (description @@ -3277,6 +3368,7 @@ braces vs do/end, etc are all ignored. Making this totally rad.") (home-page "https://github.com/dkubb/abstract_type") (license license:expat))) +;; TODO: This package somehow hardcodes the versions of its dependencies (define-public ruby-devtools (package (name "ruby-devtools") @@ -3289,6 +3381,27 @@ braces vs do/end, etc are all ignored. Making this totally rad.") (base32 "08c8j2zcq9hhxpz9wsyy9v8mfs4d4smyagi0qr398w1qryb6w4m0")))) (build-system ruby-build-system) + (arguments + `(#:tests? #f ; Devtools requires devtools for the tests. + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + ;; Don't require self + (substitute* "Rakefile" + (("require 'devtools'") "")) + ;; Don't hardcode version dependencies + (substitute* "devtools.gemspec" + (("',\\s+'.*") "'\n")) + #t)) + (add-after 'build 'unpin-versions + (lambda _ + ;; Don't hardcode version dependencies + (substitute* "devtools.gemspec" + ((", \\[\\\"~>.*") ")\n")) + #t)) + ) + )) (propagated-inputs `(("ruby-abstract-type" ,ruby-abstract-type) ("ruby-adamantium" ,ruby-adamantium) @@ -3361,12 +3474,16 @@ braces vs do/end, etc are all ignored. Making this totally rad.") (lambda* (#:key outputs #:allow-other-keys) (let ((target (string-append (assoc-ref outputs "out") "/lib/ruby/vendor_ruby/cache/./pkg/msgpack-" ,version ".gem"))) (mkdir-p (dirname target)) - (with-output-to-file target - (lambda _ "")) - #t)))) + (symlink + (string-append "../../../msgpack-" ,version ".gem") + target + ) + #t))) + ) )) (native-inputs `( + ("ruby-rake" ,ruby-rake) ("ruby-rake-compiler" ,ruby-rake-compiler) ("ruby-rspec" ,ruby-rspec) ("ruby-yard" ,ruby-yard) @@ -3434,6 +3551,12 @@ braces vs do/end, etc are all ignored. Making this totally rad.") `(#:tests? #f ; tests expect ruby-actionview >=6.0.a #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* "actionview_precompiler.gemspec" + (("actionview\\\".*") "actionview\"\n") + ) + #t)) (add-before 'build 'delete-gemfile-lock (lambda _ (delete-file "Gemfile.lock") @@ -4428,3 +4551,1177 @@ both the the request and response in between unicorn and slow clients.") (home-page "https://github.com/rswag/rswag") (license license:expat))) +(define-public ruby-uniform-notifier + (package + (name "ruby-uniform-notifier") + (version "1.13.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "uniform_notifier" version)) + (sha256 + (base32 + "05s2y76zqg391q65mvs1zsrmyn5bjxq3x54ikkqpqm3lzjjcg1pp")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; not clear how to successfully run tests + (native-inputs + `( + ("ruby-rspec" ,ruby-rspec) + )) + (synopsis "Uniform notifier for rails logger") + (description + "@code{uniform_notifier} is extracted from bullet, it gives you the ability to send notification through rails logger, customized logger, javascript alert, javascript console, growl, xmpp, airbrake and honeybadger.") + (home-page "https://rubygems.org/gems/uniform_notifier") + (license license:expat))) + +(define-public ruby-bullet + (package + (name "ruby-bullet") + (version "6.1.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "bullet" version)) + (sha256 + (base32 + "04wm807czdixpgnqp446vj8vc7dj96k26p90rmwll9ahlib37mmm")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; tests want rails' source directory + #:test-target "default" + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" (getcwd)) + #t))))) + (propagated-inputs + `(("ruby-activesupport" ,ruby-activesupport) + ("ruby-uniform-notifier" ,ruby-uniform-notifier))) + (synopsis + "help to kill N+1 queries and unused eager loading.") + (description + "help to kill N+1 queries and unused eager loading.") + (home-page "https://github.com/flyerhzm/bullet") + (license license:expat))) + +(define-public ruby-better-errors + (package + (name "ruby-better-errors") + (version "2.9.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BetterErrors/better_errors") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "185im2i62j9f3sa0xzq8q806xlckypjmi3lwdivrzln4gw2l4z38")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; Don't specify version numbers. + (substitute* "better_errors.gemspec" + (("rake.*") "rake\"\n")) + (substitute* "Gemfile" + ((".*gem-release.*") "")) + #t))))) + (propagated-inputs + `(("ruby-coderay" ,ruby-coderay) + ("ruby-erubi" ,ruby-erubi) + ("ruby-rack" ,ruby-rack))) + (native-inputs + `( + ("ruby-kramdown" ,ruby-kramdown) + ("ruby-rspec" ,ruby-rspec) + ("ruby-rspec-html-matchers" ,ruby-rspec-html-matchers) + ("ruby-rspec-its" ,ruby-rspec-its) + ("ruby-simplecov" ,ruby-simplecov) + ("ruby-simplecov-lcov" ,ruby-simplecov-lcov) + ("ruby-yard" ,ruby-yard) + )) + (synopsis "Error page for Rails and other Rack apps") + (description + "This package provides a better error page for Rails and other Rack apps. Includes source code inspection, a live REPL and local/instance variable inspection for all stack frames.") + (home-page "https://github.com/BetterErrors/better_errors") + (license license:expat))) + +;; 0.8.0 needs simplecov ~> 0.18 +(define-public ruby-simplecov-lcov + (package + (name "ruby-simplecov-lcov") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "simplecov-lcov" version)) + (sha256 + (base32 + "0r3pmjjdjvprk8bzmcvarhf57sp5xzgj1c6007qaqhs7b4fhvxvb")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; tests want rails' source directory. Also skip ruby-jeweler + ;#:test-target "default" + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;(setenv "HOME" (getcwd)) + #t))))) + (native-inputs + `( + ;("ruby-jeweler" ,ruby-jeweler) + ("ruby-rspec" ,ruby-rspec) + ("ruby-simplecov" ,ruby-simplecov) + )) + (synopsis + "Custom SimpleCov formatter to generate a lcov style coverage.") + (description + "Custom SimpleCov formatter to generate a lcov style coverage.") + (home-page "https://github.com/fortissimo1997/simplecov-lcov") + (license license:expat))) + +(define-public ruby-semver2 + (package + (name "ruby-semver2") + (version "3.4.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/haf/semver") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10yj3vglkw8h1am80jpzkxq7l9ywbvd9fsdjg1mm0c33k1y2jw65")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "spec")) + (native-inputs + `( + ("ruby-rake-compiler" ,ruby-rake-compiler) + ("ruby-rspec" ,ruby-rspec) + )) + (synopsis + "maintain versions as per http://semver.org") + (description + "maintain versions as per http://semver.org") + (home-page "https://github.com/haf/semver") + (license license:expat))) + +(define-public ruby-descendants-tracker + (package + (name "ruby-descendants-tracker") + (version "0.0.4") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "descendants_tracker" version)) + (sha256 + (base32 + "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; old package is old + (propagated-inputs + `(("ruby-thread-safe" ,ruby-thread-safe))) + (native-inputs + `( + ;("ruby-devtools" ,ruby-devtools) + )) + (synopsis + "Module that adds descendant tracking to a class") + (description + "Module that adds descendant tracking to a class") + (home-page "https://github.com/dkubb/descendants_tracker") + (license license:expat))) + +(define-public ruby-github-api + (package + (name "ruby-github-api") + (version "0.19.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/piotrmurach/github") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "13ysd56b473m0yvjdxmqgia2w96m3qq29xzvpdqhz50xjid2mqk2")))) + (build-system ruby-build-system) + (arguments + `(;#:tests? #f ; tests depend on ruby-vcr, which is non-free + #:test-target "spec" ; default fails on the ':features' portion + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" (getcwd)) + ;; Don't specify version numbers. + (substitute* "github_api.gemspec" + (("cucumber.*") "cucumber\"\n") + (("vcr.*") "vcr\"\n") + ) + #t))))) + (propagated-inputs + `(("ruby-addressable" ,ruby-addressable) + ("ruby-descendants-tracker" ,ruby-descendants-tracker) + ("ruby-faraday" ,ruby-faraday) + ("ruby-hashie" ,ruby-hashie) + ("ruby-oauth2" ,ruby-oauth2))) + (native-inputs + `( + ("ruby-cucumber" ,ruby-cucumber) + ("ruby-rspec" ,ruby-rspec) + ("ruby-rspec-its" ,ruby-rspec-its) + ("ruby-vcr" ,ruby-vcr) + ("ruby-webmock" ,ruby-webmock) + )) + (synopsis "Ruby client of GitHub API methods") + (description + "This package provides a Ruby client that supports all of the GitHub API methods.") + (home-page "https://piotrmurach.github.io/github/") + (license license:expat))) + +(define-public ruby-jeweler + (package + (name "ruby-jeweler") + (version "2.3.9") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "jeweler" version)) + (sha256 + (base32 + "0jbivh9vf9wm91kwjnlcvswqyk2g24bnxj9gavinx9jh4bphagi5")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-builder" ,ruby-builder) + ("bundler" ,bundler) + ("ruby-git" ,ruby-git) + ("ruby-github-api" ,ruby-github-api) + ("ruby-highline" ,ruby-highline) + ("ruby-nokogiri" ,ruby-nokogiri) + ("ruby-psych" ,ruby-psych) + ("ruby-rake" ,ruby-rake) + ("ruby-rdoc" ,ruby-rdoc) + ("ruby-semver2" ,ruby-semver2))) + (synopsis + "Simple and opinionated helper for creating Rubygem projects on GitHub") + (description + "Simple and opinionated helper for creating Rubygem projects on GitHub") + (home-page "https://github.com/technicalpickles/jeweler") + (license license:expat))) + +;; 5.0.0 is the last version under a free license. 5.1.0+ are under the Hippocratic License +(define-public ruby-vcr + (package + (name "ruby-vcr") + (version "5.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vcr/vcr") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1anich4cgjz7adbk1sh07q494dgb757np74qdiz0nwjzl41s6iyp")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; TODO: figure out test suite + #:test-target "default")) + (native-inputs + `( + ("ruby-codeclimate-test-reporter" ,ruby-codeclimate-test-reporter) + ("ruby-cucumber" ,ruby-cucumber) + ("ruby-rspec" ,ruby-rspec) + ("ruby-simplecov" ,ruby-simplecov) + )) + (synopsis + "Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.") + (description + "Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.") + (home-page "https://relishapp.com/vcr/vcr/docs") + (license license:expat))) + +(define-public ruby-yaml-lint + (package + (name "ruby-yaml-lint") + (version "0.0.10") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "yaml-lint" version)) + (sha256 + (base32 + "1m9n4sg7i0334yac7dcrhnhv5rzvrccgnh687n9x77ba3awk4yx1")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "rspec")) + #t))))) + (native-inputs + `( + ("ruby-rspec" ,ruby-rspec) + )) + (synopsis + "Check if your YAML files can be loaded.") + (description + "Check if your YAML files can be loaded.") + (home-page "https://github.com/Pryz/yaml-lint") + (license license:expat))) + +(define-public ruby-annotate + (package + (name "ruby-annotate") + (version "3.1.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "annotate" version)) + (sha256 + (base32 + "1dxrfppwfg13vqmambbs56xjj8qsdgcy58r2yc44vvy3z1g5yflw")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no tests in gem + (propagated-inputs + `(("ruby-activerecord" ,ruby-activerecord) + ("ruby-rake" ,ruby-rake))) + (synopsis + "Annotates Rails/ActiveRecord Models, routes, fixtures, and others based on the database schema.") + (description + "Annotates Rails/ActiveRecord Models, routes, fixtures, and others based on the database schema.") + (home-page "https://github.com/ctran/annotate_models") + (license #f))) + +(define-public ruby-flamegraph + (package + (name "ruby-flamegraph") + (version "0.9.5") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "flamegraph" version)) + (sha256 + (base32 + "1p785nmhdzbwj0qpxn5fzrmr4kgimcds83v4f95f387z6w3050x6")))) + (build-system ruby-build-system) + (synopsis + "Flamegraph support for arbitrary ruby apps") + (description + "Flamegraph support for arbitrary ruby apps") + (home-page "https://github.com/SamSaffron/flamegraph") + (license license:expat))) + +(define-public ruby-optimist + (package + (name "ruby-optimist") + (version "3.0.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "optimist" version)) + (sha256 + (base32 + "1vg2chy1cfmdj6c1gryl8zvjhhmb3plwgyh1jfnpq4fnfqv7asrk")))) + (build-system ruby-build-system) + (native-inputs + `( + ;; https://github.com/ManageIQ/optimist/issues/109 + ("ruby-chronic" ,ruby-chronic) + )) + (synopsis + "Optimist is a commandline option parser for Ruby that just +gets out of your way. One line of code per option is all you need to write. +For that, you get a nice automatically-generated help page, robust option +parsing, command subcompletion, and sensible defaults for everything you don't +specify.") + (description + "Optimist is a commandline option parser for Ruby that just +gets out of your way. One line of code per option is all you need to write. +For that, you get a nice automatically-generated help page, robust option +parsing, command subcompletion, and sensible defaults for everything you don't +specify.") + (home-page "https://manageiq.github.io/optimist/") + (license license:expat))) + +;; TODO: Unbundle msgpack +(define-public ruby-rbtrace + (package + (name "ruby-rbtrace") + (version "0.4.14") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rbtrace" version)) + (sha256 + (base32 + "0s8prj0klfgpmpfcpdzbf149qrrsdxgnb6w6kkqc9gyars4vyaqn")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; no test suite + #:phases + (modify-phases %standard-phases + ;(replace 'build + ; (lambda _ + ; (setenv "HOME" (getcwd)) + ; (substitute* "rbtrace.gemspec" + ; (("~>") ">=")) + ; (setenv "CC" ,(cc-for-target)) + ; (invoke "bundle" "exec" "rake" "build"))) + ) + )) + (propagated-inputs + `(("ruby-ffi" ,ruby-ffi) + ("ruby-msgpack" ,ruby-msgpack) + ("ruby-optimist" ,ruby-optimist))) + (synopsis + "rbtrace shows you method calls happening inside another ruby process in real time.") + (description + "rbtrace shows you method calls happening inside another ruby process in real time.") + (home-page "https://github.com/tmm1/rbtrace") + (license license:expat))) + +(define-public ruby-gc-tracer + (package + (name "ruby-gc-tracer") + (version "1.5.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "gc_tracer" version)) + (sha256 + (base32 + "1yv3mp8lx74lfzs04fd5h4g89209iwhzpc407y35p7cmzgx6a4kv")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "default")) + (native-inputs + `( + ("ruby-rake-compiler" ,ruby-rake-compiler) + ("ruby-rspec" ,ruby-rspec) + )) + (synopsis + "gc_tracer gem adds GC::Tracer module.") + (description + "gc_tracer gem adds GC::Tracer module.") + (home-page "https://github.com/ko1/gc_tracer") + (license license:expat))) + +(define-public ruby-guess-html-encoding + (package + (name "ruby-guess-html-encoding") + (version "0.0.11") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "guess_html_encoding" version)) + (sha256 + (base32 + "16700fk6kmif3q3kpc1ldhy3nsc9pkxlgl8sqhznff2zjj5lddna")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "default")) + (native-inputs + `( + ("ruby-rspec" ,ruby-rspec) + )) + (synopsis + "A small gem that attempts to guess and then force encoding of HTML documents for Ruby 1.9") + (description + "This package provides a small gem that attempts to guess and then force encoding of HTML documents for Ruby 1.9") + (home-page "https://github.com/cantino/guess_html_encoding") + (license expat))) + +(define-public ruby-ruby-readability + (package + (name "ruby-ruby-readability") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "ruby-readability" version)) + (sha256 + (base32 + "15ivhbry7hf82lww1bzcrwfyjymijfb3rb0wdd32g2z0942wdspa")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; ':spec" fails with newer ruby versions + #:test-target "default")) + (propagated-inputs + `(("ruby-guess-html-encoding" ,ruby-guess-html-encoding) + ("ruby-nokogiri" ,ruby-nokogiri))) + (native-inputs + `( + ("ruby-rspec" ,ruby-rspec) + )) + (synopsis + "Port of arc90's readability project to ruby") + (description + "Port of arc90's readability project to ruby") + (home-page "https://github.com/cantino/ruby-readability") + (license #f))) + +;; TODO: 0.3.3 never finishes the install phase +(define-public ruby-cppjieba-rb + (package + (name "ruby-cppjieba-rb") + (version "0.3.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "cppjieba_rb" version)) + (sha256 + (base32 + "1sslff7yy8jvp4rcn1b6jn9v0d3iibb68i79shgd94rs2yq8k117")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'pre-build + (lambda _ + (invoke "rake" "compile")))))) + (native-inputs + `( + ("ruby-rake-compiler" ,ruby-rake-compiler) + )) + (synopsis "Cppjieba binding for Ruby") + (description + "cppjieba binding for ruby. Mainly used by Discourse.") + (home-page "https://github.com/fantasticfears/cppjieba_rb") + (license license:expat))) + +(define-public ruby-request-store + (package + (name "ruby-request-store") + (version "1.5.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "request_store" version)) + (sha256 + (base32 + "0cx74kispmnw3ljwb239j65a2j14n8jlsygy372hrsa8mxc71hxi")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-rack" ,ruby-rack))) + (synopsis + "RequestStore gives you per-request global storage.") + (description + "RequestStore gives you per-request global storage.") + (home-page "https://github.com/steveklabnik/request_store") + (license license:expat))) + +(define-public ruby-lograge + (package + (name "ruby-lograge") + (version "0.11.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/roidrage/lograge") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1dlxzv0xjnjs95l4fzr1wcf2l7klnhji0fv51gl6wvkjpjdr9zcy")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; cannot find logstash-event + #:test-target "spec" ; not default, rubocop compains about all the things + #:phases + (modify-phases %standard-phases + (replace 'replace-git-ls-files + (lambda _ + (substitute* "lograge.gemspec" + (("git ls-files lib LICENSE.txt") + "find lib LICENSE.txt -type f | sort")) + #t)) + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" (getcwd)) + #t))))) + (propagated-inputs + `(("ruby-actionpack" ,ruby-actionpack) + ("ruby-activesupport" ,ruby-activesupport) + ("ruby-railties" ,ruby-railties) + ("ruby-request-store" ,ruby-request-store))) + (native-inputs + `( + ("ruby-activerecord" ,ruby-activerecord) + ("ruby-lines" ,ruby-lines) + ("ruby-logstash-event" ,ruby-logstash-event) + ("ruby-rspec" ,ruby-rspec) + ("ruby-rubocop" ,ruby-rubocop) + )) + (synopsis + "Tame Rails' multi-line logging into a single line per request") + (description + "Tame Rails' multi-line logging into a single line per request") + (home-page "https://github.com/roidrage/lograge") + (license license:expat))) + +(define-public ruby-logstash-event + (package + (name "ruby-logstash-event") + (version "1.2.02") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "logstash-event" version)) + (sha256 + (base32 + "1bk7fhhryjxp1klr3hq6i6srrc21wl4p980bysjp0w66z9hdr9w9")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile + (synopsis + "Library that contains the classes required to create LogStash events") + (description + "Library that contains the classes required to create LogStash events") + (home-page "https://github.com/logstash/logstash") + (license license:asl2.0))) + +(define-public ruby-lines + (package + (name "ruby-lines") + (version "0.9.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "lines" version)) + (sha256 + (base32 + "17hrpvqvc2li4rjnk75xy5qvylk0vg0z8if7q1m00al79d0mpbma")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "default")) + (native-inputs + `( + ("ruby-rspec" ,ruby-rspec) + )) + (synopsis + "A log format that's readable by humans and easily parseable by computers. +") + (description + "This package provides a log format that's readable by humans and easily parseable by computers. +") + (home-page "https://github.com/zimbatm/lines-ruby") + (license license:expat))) + +(define-public ruby-logstash-logger + (package + (name "ruby-logstash-logger") + (version "0.26.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "logstash-logger" version)) + (sha256 + (base32 + "1nh0jgz4rl46axqb9l0fa866kh34wb7yf11qc3j30xhprdqb8yjp")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; incompatable dependencies on simplecov + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" (getcwd)) + #t))))) + (propagated-inputs + `(("ruby-logstash-event" ,ruby-logstash-event))) + (native-inputs + `( + ("ruby-appraisal" ,ruby-appraisal) + ("ruby-aws-sdk-firehose" ,ruby-aws-sdk-firehose) + ("ruby-aws-sdk-kinesis" ,ruby-aws-sdk-kinesis) + ("ruby-codeclimate-test-reporter" ,ruby-codeclimate-test-reporter) + ("ruby-codecov" ,ruby-codecov) + ("ruby-poseidon" ,ruby-poseidon) + ("ruby-pry" ,ruby-pry) + ("ruby-rails" ,ruby-rails) + ("ruby-redis" ,ruby-redis) + ("ruby-rspec" ,ruby-rspec) + ("ruby-rubocop" ,ruby-rubocop) + ("ruby-wwtd" ,ruby-wwtd) + )) + (synopsis + "Ruby logger that writes directly to LogStash") + (description + "Ruby logger that writes directly to LogStash") + (home-page "https://github.com/dwbutler/logstash-logger") + (license license:expat))) + +(define-public ruby-poseidon + (package + (name "ruby-poseidon") + (version "0.0.5") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "poseidon" version)) + (sha256 + (base32 + "0lxavrybqwa3xmsajvxp0ngqmn4jxw9q93398yxzdrx83i8a7l8p")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "default")) + (native-inputs + `( + ("ruby-coveralls" ,ruby-coveralls) + ("ruby-rspec" ,ruby-rspec) + ("ruby-simplecov" ,ruby-simplecov) + ("ruby-snappy" ,ruby-snappy) + )) + (synopsis + "A Kafka (http://kafka.apache.org/) producer and consumer") + (description + "This package provides a Kafka (http://kafka.apache.org/) producer and consumer") + (home-page "https://github.com/bpot/poseidon") + (license license:expat))) + +(define-public ruby-snappy + (package + (name "ruby-snappy") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "snappy" version)) + (sha256 + (base32 + "0xl54r1vvrhlkxf16mxqk4kz18j0igf1f7l66kqd9dbyv6x99zfg")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + ;; Test "VERSION" fails for unknown reasons + (delete-file "test/snappy_test.rb") + (with-output-to-file "test/snappy_test.rb" + (lambda _ "")) + #t))))) + (inputs + `( + ("snappy" ,snappy) + )) + (native-inputs + `( + ("ruby-rake" ,ruby-rake) + ("ruby-test-unit-rr" ,ruby-test-unit-rr) + )) + (synopsis "libsnappy binding for Ruby") + (description "libsnappy binding for Ruby") + (home-page "https://github.com/miyucy/snappy") + (license license:expat))) + +(define-public ruby-test-unit-rr + (package + (name "ruby-test-unit-rr") + (version "1.0.5") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "test-unit-rr" version)) + (sha256 + (base32 + "0l42wxvqqd4g1968syy1wmr4j9z3cad8v5vv22lr7my4wjgz0sil")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-rr" ,ruby-rr) + ("ruby-test-unit" ,ruby-test-unit))) + (native-inputs + `( + ("ruby-packnga" ,ruby-packnga) + )) + (synopsis + "You don't need RR setup codes with test-unit-rr. You just require +\"test/unit/rr\". +") + (description + "You don't need RR setup codes with test-unit-rr. You just require +\"test/unit/rr\". +") + (home-page "https://github.com/test-unit/test-unit-rr") + (license #f))) + +(define-public ruby-aws-sdk-kinesis + (package + (name "ruby-aws-sdk-kinesis") + (version "1.31.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "aws-sdk-kinesis" version)) + (sha256 + (base32 + "1wsnn4303q7501xp10gfr8s15cazm4a0xy8knz5b8pmaw93x0g4b")))) + (build-system ruby-build-system) + (arguments `(#:tests? #f)) ; no tests + (propagated-inputs + `(("ruby-aws-sdk-core" ,ruby-aws-sdk-core) + ("ruby-aws-sigv4" ,ruby-aws-sigv4))) + (synopsis + "Official AWS Ruby gem for Amazon Kinesis (Kinesis). This gem is part of the AWS SDK for Ruby.") + (description + "Official AWS Ruby gem for Amazon Kinesis (Kinesis). This gem is part of the AWS SDK for Ruby.") + (home-page "https://github.com/aws/aws-sdk-ruby") + (license license:asl2.0))) + +(define-public ruby-aws-sdk-firehose + (package + (name "ruby-aws-sdk-firehose") + (version "1.36.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "aws-sdk-firehose" version)) + (sha256 + (base32 + "0ji75vqfprnkjsy6gdk9qci6wd9kwm7h7lycpx7jsw0fbv6hjx0p")))) + (build-system ruby-build-system) + (arguments `(#:tests? #f)) ; no tests + (propagated-inputs + `(("ruby-aws-sdk-core" ,ruby-aws-sdk-core) + ("ruby-aws-sigv4" ,ruby-aws-sigv4))) + (synopsis + "Official AWS Ruby gem for Amazon Kinesis Firehose (Firehose). This gem is part of the AWS SDK for Ruby.") + (description + "Official AWS Ruby gem for Amazon Kinesis Firehose (Firehose). This gem is part of the AWS SDK for Ruby.") + (home-page "https://github.com/aws/aws-sdk-ruby") + (license license:asl2.0))) + +(define-public ruby-codecov + (package + (name "ruby-codecov") + (version "0.4.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/codecov/codecov-ruby") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01x1n0j2awnpbnhzhsc058ni8bh2zw3vasbz9gkivydgv2r8xkpd")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; can't install gem + (propagated-inputs + `(("ruby-simplecov" ,ruby-simplecov))) + (synopsis "Hosted code coverage Ruby reporter") + (description + "Hosted code coverage Ruby reporter.") + (home-page "https://github.com/codecov/codecov-ruby") + (license license:expat))) + +(define-public ruby-rotp + (package + (name "ruby-rotp") + (version "6.2.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rotp" version)) + (sha256 + (base32 + "11q7rkjx40yi6lpylgl2jkpy162mjw7mswrcgcax86vgpbpjx6i3")))) + (build-system ruby-build-system) + (arguments + `( + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "rspec")) + #t))))) + (native-inputs + `( + ("ruby-rspec" ,ruby-rspec) + ("ruby-simplecov" ,ruby-simplecov) + ("ruby-timecop" ,ruby-timecop) + )) + (synopsis + "Works for both HOTP and TOTP, and includes QR Code provisioning") + (description + "Works for both HOTP and TOTP, and includes QR Code provisioning") + (home-page "https://github.com/mdp/rotp") + (license license:expat))) + +(define-public ruby-sshkey + (package + (name "ruby-sshkey") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "sshkey" version)) + (sha256 + (base32 + "03bkn55qsng484iqwz2lmm6rkimj01vsvhwk661s3lnmpkl65lbp")))) + (build-system ruby-build-system) + (synopsis + "Generate private/public SSH keypairs using pure Ruby") + (description + "Generate private/public SSH keypairs using pure Ruby") + (home-page "https://github.com/bensie/sshkey") + (license license:expat))) + +(define-public ruby-rchardet + (package + (name "ruby-rchardet") + (version "1.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jmhodges/rchardet") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "12xcc4dq0k5gq5r142n7rr34lirfyzlkdh5by64cwz0bg5jfn8il")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'replace-git-ls-files) + (add-before 'build 'delete-gemfile-lock + (lambda _ + (delete-file "Gemfile.lock") + #t)) + ))) + (native-inputs + `( + ("ruby-bump" ,ruby-bump) + ("ruby-minitest-rg" ,ruby-minitest-rg) + ("ruby-wwtd" ,ruby-wwtd) + )) + (synopsis + "Character encoding auto-detection in Ruby. As smart as your browser. Open source.") + (description + "Character encoding auto-detection in Ruby. As smart as your browser. Open source.") + (home-page "https://github.com/jmhodges/rchardet") + (license license:lgpl2.1+))) + +(define-public ruby-lz4-ruby + (package + (name "ruby-lz4-ruby") + (version "0.3.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "lz4-ruby" version)) + (sha256 + (base32 + "12fymsvcb9kw6ycyfzc8b9svriq0afqf1qnl121xrz8c4gpfa6q1")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; tests require ruby-jeweler + #:phases + (modify-phases %standard-phases + (delete 'replace-git-ls-files) + (add-after 'unpack 'patch-source + (lambda _ + (substitute* "Gemfile" + (("\\\", .*") "\"\n") + ;; NO JEWELER! + ((".*jeweler.*") "") + ) + #t)) + ))) + (native-inputs + `( + ;("ruby-rdoc" ,ruby-rdoc) + ("ruby-rake-compiler" ,ruby-rake-compiler) + ("ruby-rspec" ,ruby-rspec) + )) + (synopsis + "Ruby bindings for LZ4. LZ4 is a very fast lossless compression algorithm.") + (description + "Ruby bindings for LZ4. LZ4 is a very fast lossless compression algorithm.") + (home-page "https://github.com/komiya-atsushi/lz4-ruby") + (license license:expat))) + +(define-public ruby-hkdf + (package + (name "ruby-hkdf") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jtdowney/hkdf") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "171xqhifjf9pxy60kds7fc8zfli7msnm9q9ncqyswxfspjdhj647")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "default")) + (native-inputs + `( + ("ruby-rspec" ,ruby-rspec) + )) + (synopsis + "A ruby implementation of RFC5869: HMAC-based Extract-and-Expand Key Derivation Function (HKDF). The goal of HKDF is to take some source key material and generate suitable cryptographic keys from it.") + (description + "This package provides a ruby implementation of RFC5869: HMAC-based Extract-and-Expand Key Derivation Function (HKDF). The goal of HKDF is to take some source key material and generate suitable cryptographic keys from it.") + (home-page "https://github.com/jtdowney/hkdf") + (license license:expat))) + +(define-public ruby-webpush + (package + (name "ruby-webpush") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "webpush" version)) + (sha256 + (base32 + "1z9ma580q80czw46gi1bvsr2iwxr63aiyr7i9gilav6hbhg3sxv3")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "default")) + (propagated-inputs + `(("ruby-hkdf" ,ruby-hkdf) + ("ruby-jwt" ,ruby-jwt))) + (native-inputs + `( + ("ruby-rspec" ,ruby-rspec) + )) + (synopsis + "Encryption Utilities for Web Push payload.") + (description + "Encryption Utilities for Web Push payload.") + (home-page "https://github.com/zaru/webpush") + (license license:expat))) + +(define-public ruby-colored2 + (package + (name "ruby-colored2") + (version "3.1.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "colored2" version)) + (sha256 + (base32 + "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "default")) + (synopsis + "This is a heavily modified fork of http://github.com/defunkt/colored gem, with many +sensible pull requests combined. Since the authors of the original gem no longer support it, +this might, perhaps, be considered a good alternative. + +Simple gem that adds various color methods to String class, and can be used as follows: + + require 'colored2' + + puts 'this is red'.red + puts 'this is red with a yellow background'.red.on.yellow + puts 'this is red with and italic'.red.italic + puts 'this is green bold'.green.bold << ' and regular'.green + puts 'this is really bold blue on white but reversed'.bold.blue.on.white.reversed + puts 'this is regular, but '.red! << 'this is red '.yellow! << ' and yellow.'.no_color! + puts ('this is regular, but '.red! do + 'this is red '.yellow! do + ' and yellow.'.no_color! + end + end) + +") + (description + "This is a heavily modified fork of http://github.com/defunkt/colored gem, with many +sensible pull requests combined. Since the authors of the original gem no longer support it, +this might, perhaps, be considered a good alternative. + +Simple gem that adds various color methods to String class, and can be used as follows: + + require 'colored2' + + puts 'this is red'.red + puts 'this is red with a yellow background'.red.on.yellow + puts 'this is red with and italic'.red.italic + puts 'this is green bold'.green.bold << ' and regular'.green + puts 'this is really bold blue on white but reversed'.bold.blue.on.white.reversed + puts 'this is regular, but '.red! << 'this is red '.yellow! << ' and yellow.'.no_color! + puts ('this is regular, but '.red! do + 'this is red '.yellow! do + ' and yellow.'.no_color! + end + end) + +") + (home-page "https://github.com/kigster/colored2") + (license license:expat))) + +;; TODO: Depends on rails >= 6.0 +(define-public ruby-rails-failover + (package + (name "ruby-rails-failover") + (version "0.6.5") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rails_failover" version)) + (sha256 + (base32 + "1s8yfpam6qfs2bj596rfwhcgb4pjamg93ijqpa8c5d207sm45a07")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "default" + #:tests? #f ; cannot load such file -- spec_helper + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + ;; Of course this is easier than upgrading rails to 6 + (lambda _ + (substitute* "rails_failover.gemspec" + (("gem_name, \\\".*") "gem_name\n") + ) + (delete-file "Gemfile.lock") + (with-output-to-file "Gemfile.lock" + (lambda _ "")) + (substitute* "Gemfile" + (("activerecord.*") "activerecord'\n")) + #t))))) + (propagated-inputs + `(("ruby-activerecord" ,ruby-activerecord) + ("ruby-concurrent-ruby" ,ruby-concurrent-ruby) + ("ruby-railties" ,ruby-railties))) + (native-inputs + `( + ("ruby-rspec" ,ruby-rspec) + )) + (synopsis "Failover for ActiveRecord and Redis") + (description + "Failover for ActiveRecord and Redis") + (home-page "https://github.com/discourse/rails_failover") + (license license:expat))) + -- cgit v1.2.3