diff --git a/kulupu/packages/federation.scm b/kulupu/packages/federation.scm new file mode 100644 index 0000000..024a2b7 --- /dev/null +++ b/kulupu/packages/federation.scm @@ -0,0 +1,181 @@ +(define-module (kulupu packages federation) + #:use-module (gnu packages databases) + #:use-module (gnu packages rails) + #:use-module (gnu packages ruby) + #:use-module (guix) + #:use-module (guix git-download) + #:use-module (guix build-system ruby) + #:use-module ((guix licenses) + #:prefix license:) + #:use-module (kulupu packages ruby)) + +(define-public bundler-2 + (package + (inherit bundler) + (version "2.4.13") + (source (origin + (method url-fetch) + (uri (rubygems-uri "bundler" version)) + (sha256 + (base32 + "12sswyrzx2lkl79hh33ckfnaz6bdjbl9nzmzanynsz2hmsjklr8i")))))) + +;; TODO Remove when https://github.com/dlindahl/omniauth-cas/pull/68 is merged +(define omniauth-cas-4211e6d + (package + (inherit ruby-omniauth-cas) + (name "omniauth-cas-4211e6d") + (version "2.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stanhu/omniauth-cas") + (commit "4211e6d05941b4a981f9a36b49ec166cecd0e271"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1zs0xp062f6wk7xxy8w81838qr855kp7idbgpbrhpl319xzc1xkc")))) + (arguments + (list #:tests? #f)))) + +(define-public mastodon + (package + (name "mastodon") + (version "4.1.6") + (build-system ruby-build-system) + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mastodon/mastodon/archive/refs/tags/v" version ".tar.gz")) + (sha256 + (base32 + "0hgmyfzkgg6ph8632brppi4y5ll8y6vxyl91qw6a8dr1nrc0r1iq")))) + (native-inputs (list bundler-2 + ;;ruby-rspec-chunked + ruby-fuubar + ;;ruby-rspec-sidekiq + ruby-capybara + ruby-selenium-webdriver + ruby-database-cleaner-active-record + ruby-climate-control + ruby-faker + ;;ruby-fabrication + ;;ruby-rails-controller-testing + ruby-json-schema + ruby-rack-test + ruby-simplecov + ruby-webmock + + ruby-memory-profiler + ruby-ruby-prof + ruby-stackprof + ;;ruby-test-prof + + ruby-rspec-rails)) + (inputs (list ruby-hcaptcha + ruby-rubyzip + ;ruby-net-http + ruby-cocoon + ruby-xorcist + ruby-lograge + ruby-private-address-check + ruby-rdf-normalize + ruby-json-ld + ruby-json-ld-preloaded + ruby-webauthn + ruby-webpush + ruby-webpacker + ruby-tzinfo-data + ruby-twitter-text + ruby-strong-migrations + ruby-stoplight + ruby-sprockets-rails + ruby-simple-form + ruby-simple-navigation + ruby-sidekiq-bulk + ruby-sidekiq-unique-jobs + ruby-sidekiq-scheduler + ruby-sidekiq + ruby-scenic + ruby-sanitize + ruby-progressbar + ruby-rqrcode + ruby-mario-redis-lock + ruby-redis-lock + ruby-redis + ruby-redcarpet + ruby-rails-settings-cached + ruby-rails-i18n + ruby-rack-cors + ruby-rack-attack + ruby-premailer-rails + ruby-pundit + ruby-public-suffix + ruby-posix-spawn + ruby-parslet + ruby-ox + ruby-oj + ruby-nsa + ruby-nokogiri + ruby-mime-types + ruby-link-header + ruby-kaminari + ruby-idn-ruby + ruby-httplog + ruby-http-accept-language + ruby-http + ruby-htmlentities + ruby-redis-namespace + ruby-hiredis + ruby-fastimage + ruby-fast-blank + ruby-ed25519 + ruby-doorkeeper + ruby-discard + ruby-color-diff + + ruby-omniauth-rails-csrf-protection + ruby-omniauth + ruby-omniauth-openid-connect + ruby-omniauth-saml + omniauth-cas-4211e6d + ruby-net-ldap + + ruby-devise-two-factor + ruby-devise + ruby-chewy + ruby-charlock-holmes + ruby-browser + ruby-addressable + ruby-active-model-serializers + + ruby-blurhash + ruby-kt-paperclip + ruby-fog-core + + ruby-dotenv-rails + ruby-pghero + ruby-pg + ruby-haml-rails + + ruby-rack + ruby-thor + ruby-sprockets + ruby-rails + ruby-puma)) + (arguments + (list + #:tests? #f ;; FIXME Tests breaking due to the omniauth-cas dependency + #:phases #~(modify-phases %standard-phases + (add-before 'build 'set-bundle-config + (lambda _ + (begin + (invoke "bundle" "config" "deployment" "'true'")))) + (delete 'replace-git-ls-files) ; No gemspec + (delete 'build) ; No gemspec + ;; FIXME Properly install mastodon + ;; Skipping since there is no gemspec + (delete 'install)))) + (synopsis "") + (description "") + (home-page "https://joinmastodon.org/") + (license license:agpl3))) diff --git a/kulupu/packages/ruby.scm b/kulupu/packages/ruby.scm new file mode 100644 index 0000000..0eb5e69 --- /dev/null +++ b/kulupu/packages/ruby.scm @@ -0,0 +1,3887 @@ +(define-module (kulupu packages ruby) + #:use-module (gnu packages commencement) + #:use-module (gnu packages curl) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages databases) + #:use-module (gnu packages icu4c) + #:use-module (gnu packages libffi) + #:use-module (gnu packages rails) + #:use-module (gnu packages ruby) + #:use-module (gnu packages version-control) + #:use-module (guix) + #:use-module (guix git-download) + #:use-module (guix build-system ruby) + #:use-module ((guix licenses) + #:prefix license:)) + +(define-public ruby-omniauth-cas + (package + (name "ruby-omniauth-cas") + (version "2.0.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "omniauth-cas" version)) + (sha256 + (base32 + "0kzlh1nac4yz70917cdcsk0r23gy5h7i0x5kbmkvkpbgk6gvrb0z")))) + (build-system ruby-build-system) + (native-inputs (list git ruby-awesome-print ruby-rack-test ruby-rspec + ruby-webmock)) + (propagated-inputs (list ruby-addressable ruby-nokogiri ruby-omniauth)) + (arguments + (list #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "rake" "check")))))) + (synopsis "CAS Strategy for OmniAuth") + (description "CAS Strategy for @code{OmniAuth}") + (home-page "https://github.com/dlindahl/omniauth-cas") + (license #f))) + +(define-public ruby-hcaptcha + (package + (name "ruby-hcaptcha") + (version "7.1.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "hcaptcha" version)) + (sha256 + (base32 + "0fh6391zlv2ikvzqj2gymb70k1avk1j9da8bzgw0scsz2wqq98m2")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (propagated-inputs (list ruby-json)) + (synopsis "Ruby helpers for hCaptcha") + (description "Ruby helpers for @code{hCaptcha}") + (home-page "https://github.com/Nexus-Mods/hcaptcha") + (license license:expat))) + +(define-public ruby-cocoon + (package + (name "ruby-cocoon") + (version "1.2.15") + (source (origin + (method url-fetch) + (uri (rubygems-uri "cocoon" version)) + (sha256 + (base32 + "038z97pkhvsqbh6cmyyzj58ya968p24k7r0f0rx7sa2kjvk193yh")))) + (build-system ruby-build-system) + (native-inputs (list bundler + ruby-rails + ruby-sqlite3 + ruby-json-pure + ruby-jeweler + ruby-rspec-rails + ruby-rspec + ruby-actionpack + ruby-nokogiri + ;; ruby-generator-spec TODO Package + ;; ruby-rubysl TODO Package + ;; ruby-rubysl-test-unit TODO Package + ruby-racc + ;; ruby-rubinius-developer-tools TODO Package + )) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Check is getting stuck on jewler + (delete 'check)))) + (synopsis + "Unobtrusive nested forms handling, using jQuery. Use this and discover cocoon-heaven.") + (description + "Unobtrusive nested forms handling, using @code{jQuery.} Use this and discover +cocoon-heaven.") + (home-page "http://github.com/nathanvda/cocoon") + (license license:expat))) + +(define-public ruby-xorcist + (package + (name "ruby-xorcist") + (version "1.1.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "xorcist" version)) + (sha256 + (base32 + "1dbbiy8xlcfvn9ais37xfb5rci4liwakkmxzbkp72wmvlgcrf339")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Blazing-fast-cross-platform-monkey-patch-free string XOR. Yes, that means JRuby too.") + (description + "Blazing-fast-cross-platform-monkey-patch-free string XOR. Yes, that means JRuby +too.") + (home-page "https://github.com/fny/xorcist") + (license license:expat))) + +(define-public ruby-request-store + (package + (name "ruby-request-store") + (version "1.5.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "request_store" version)) + (sha256 + (base32 + "13ppgmsbrqah08j06bybd3cddv6dml79yzyjn7r8j1src78h98h7")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-rack)) + (synopsis "RequestStore gives you per-request global storage.") + (description "@code{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.13.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "lograge" version)) + (sha256 + (base32 + "01kdw5dbzimb89rq4zf44zf8990czb5qxvib0hzja1l4hrha8cki")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-actionpack ruby-activesupport ruby-railties + ruby-request-store)) + (arguments + (list #:tests? #f)) ;no tests + (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-rdf-normalize + (package + (name "ruby-rdf-normalize") + (version "0.6.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rdf-normalize" version)) + (sha256 + (base32 + "12slrdq6xch5rqj1m79k1wv09264pmhs76nm300j1jsjpcfmdg0r")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-rdf)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "RDF::Normalize performs Dataset Canonicalization for RDF.rb.") + (description + "RDF::Normalize performs Dataset Canonicalization for RDF.rb.") + (home-page "https://github.com/ruby-rdf/rdf-normalize") + (license #f))) + +(define-public ruby-json-canonicalization + (package + (name "ruby-json-canonicalization") + (version "0.3.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "json-canonicalization" version)) + (sha256 + (base32 + "1rvsalsrs8njk2gqxgq0ydg5cd02jqdawskbq2ccz663qxz8wwq5")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "JSON::Canonicalization generates canonical JSON output from Ruby objects.") + (description + "JSON::Canonicalization generates canonical JSON output from Ruby objects.") + (home-page "https://github.com/dryruby/json-canonicalization") + (license #f))) + +(define-public ruby-json-ld + (package + (name "ruby-json-ld") + (version "3.2.5") + (source (origin + (method url-fetch) + (uri (rubygems-uri "json-ld" version)) + (sha256 + (base32 + "1z3kqacjmqs02vwwqm9di7sw7f7nchxx99v84myrrzmh64c6zfcq")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-htmlentities + ruby-json-canonicalization + ruby-link-header + ruby-multi-json + ruby-rack + ruby-rdf)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "JSON::LD parses and serializes JSON-LD into RDF and implements expansion, compaction and framing API interfaces for the Ruby RDF.rb library suite.") + (description + "JSON::LD parses and serializes JSON-LD into RDF and implements expansion, +compaction and framing API interfaces for the Ruby RDF.rb library suite.") + (home-page "https://github.com/ruby-rdf/json-ld") + (license #f))) + +(define-public ruby-json-ld-preloaded + (package + (name "ruby-json-ld-preloaded") + (version "3.2.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "json-ld-preloaded" version)) + (sha256 + (base32 + "004s52m37b2kbw8dv4rdfm2d90h1023z1mw9zfcs0x87v8aq7zyn")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (propagated-inputs (list ruby-json-ld ruby-rdf)) + (synopsis + "A meta-release of the json-ld gem including preloaded vocabularies for the Ruby RDF.rb library suite.") + (description + "This package provides a meta-release of the json-ld gem including preloaded +vocabularies for the Ruby RDF.rb library suite.") + (home-page "https://github.com/ruby-rdf/json-ld-preloaded") + (license #f))) + +(define-public ruby-tpm-key-attestation + (package + (name "ruby-tpm-key-attestation") + (version "0.12.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "tpm-key_attestation" version)) + (sha256 + (base32 + "0v8y5dibsyskv1ncdgszhxwzq0gzmvb0zl7sgmx0xvsgy86dhcz1")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rspec ruby-rubocop-rake)) + (propagated-inputs (list ruby-bindata ruby-openssl-signature-algorithm)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check, unable to build test + (delete 'check)))) + (synopsis "TPM Key Attestation verifier") + (description "TPM Key Attestation verifier") + (home-page "https://github.com/cedarcode/tpm-key_attestation") + (license #f))) + +(define-public ruby-safety-net-attestation + (package + (name "ruby-safety-net-attestation") + (version "0.4.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "safety_net_attestation" version)) + (sha256 + (base32 + "1khq0y5w7lf2b9a220298hphf3pakd216jc9a4x4a9pdwxs2vgln")))) + (build-system ruby-build-system) + (native-inputs (list ruby-pry-byebug ruby-rspec ruby-rubocop-minimal)) + (propagated-inputs (list ruby-jwt)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check + (delete 'check)))) + (synopsis "SafetyNet attestation response verification") + (description "@code{SafetyNet} attestation response verification") + (home-page "https://github.com/bdewater/safety_net_attestation") + (license license:expat))) + +(define-public ruby-openssl-signature-algorithm + (package + (name "ruby-openssl-signature-algorithm") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "openssl-signature_algorithm" version)) + (sha256 + (base32 + "103yjl68wqhl5kxaciir5jdnyi7iv9yckishdr52s5knh9g0pd53")))) + (build-system ruby-build-system) + (native-inputs (list bundler + ruby-appraisal + ruby-byebug + ruby-ed25519 + ruby-rspec + ruby-rspec-core + ruby-rubocop-rake)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check, don't know how to build test + (delete 'check)))) + (synopsis "ECDSA, EdDSA, RSA-PSS and RSA-PKCS#1 algorithms for ruby") + (description + "ECDSA, @code{EdDSA,} RSA-PSS and RSA-PKCS#1 algorithms for ruby") + (home-page "https://github.com/cedarcode/openssl-signature_algorithm") + (license #f))) + +(define-public ruby-cose + (package + (name "ruby-cose") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "cose" version)) + (sha256 + (base32 + "00c6x4ha7qiaaf88qdbyf240mk146zz78rbm4qwyaxmwlmk7q933")))) + (build-system ruby-build-system) + (native-inputs (list bundler + ruby-appraisal + ruby-byebug + ruby-rspec + ruby-rubocop-minimal + ruby-rubocop-performance-minimal + ruby-rubocop-rake)) + (propagated-inputs (list ruby-cbor ruby-openssl-signature-algorithm)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; Spec files not included in gem + (delete 'check)))) + (synopsis + "Ruby implementation of RFC 8152 CBOR Object Signing and Encryption (COSE)") + (description + "Ruby implementation of RFC 8152 CBOR Object Signing and Encryption (COSE)") + (home-page "https://github.com/cedarcode/cose-ruby") + (license license:expat))) + +(define-public ruby-bindata + (package + (name "ruby-bindata") + (version "2.4.15") + (source (origin + (method url-fetch) + (uri (rubygems-uri "bindata" version)) + (sha256 + (base32 + "04y4zgh4bbcb8wmkxwfqg4saky1d1f3xw8z6yk543q13h8ky8rz5")))) + (build-system ruby-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-before 'build 'update-minitest-version + (lambda _ + (substitute* "bindata.gemspec" + (("5.12.0") + "5.18.1"))))))) + (native-inputs (list ruby-coveralls)) + (synopsis + "BinData is a declarative way to read and write binary file formats. + +This means the programmer specifies *what* the format of the binary +data is, and BinData works out *how* to read and write data in this +format. It is an easier ( and more readable ) alternative to +ruby's #pack and #unpack methods. +") + (description + "@code{BinData} is a declarative way to read and write binary file formats. This +means the programmer specifies *what* the format of the binary data is, and +@code{BinData} works out *how* to read and write data in this format. It is an +easier ( and more readable ) alternative to ruby's #pack and #unpack methods.") + (home-page "https://github.com/dmendel/bindata") + (license license:bsd-2))) + +(define-public ruby-awrence + (package + (name "ruby-awrence") + (version "2.0.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "awrence" version)) + (sha256 + (base32 + "1336i9vs8myddkkxww6vg8k6px67wdc9anvf1jn5mqrmdi932a1v")))) + (build-system ruby-build-system) + (synopsis + "Have you ever needed to automatically convert Ruby-style snake_case to CamelCase or camelBack hash keys? + +Awrence to the rescue. + +This gem recursively converts all snake_case keys in a hash structure to camelBack.") + (description + "Have you ever needed to automatically convert Ruby-style snake_case to +@code{CamelCase} or @code{camelBack} hash keys? Awrence to the rescue. This gem +recursively converts all snake_case keys in a hash structure to +@code{camelBack.}") + (home-page "https://github.com/technicalpanda/awrence") + (license license:expat))) + +(define-public ruby-android-key-attestation + (package + (name "ruby-android-key-attestation") + (version "0.3.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "android_key_attestation" version)) + (sha256 + (base32 + "02spc1sh7zsljl02v9d5rdb717b628vw2k7jkkplifyjk4db0zj6")))) + (build-system ruby-build-system) + (native-inputs (list bundler ruby-pry-byebug ruby-rspec + ruby-rubocop-minimal)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; Spec files are not included in gem + (delete 'check)))) + (synopsis "Android key attestation verification") + (description "Android key attestation verification") + (home-page "https://github.com/bdewater/android_key_attestation") + (license license:expat))) + +(define-public ruby-webauthn + (package + (name "ruby-webauthn") + (version "3.0.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "webauthn" version)) + (sha256 + (base32 + "1ri09bf640kkw4v6k2g90q2nw1mx2hsghhngaqgb7958q8id8xrz")))) + (build-system ruby-build-system) + (native-inputs (list ruby-byebug ruby-rspec ruby-rubocop-minimal + ruby-rubocop-rake ruby-rubocop-rspec)) + (propagated-inputs (list ruby-android-key-attestation + ruby-awrence + ruby-bindata + ruby-cbor + ruby-cose + ruby-safety-net-attestation + ruby-tpm-key-attestation)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check + (delete 'check)))) + (synopsis + "WebAuthn ruby server library ― Make your application a W3C Web Authentication conformant + Relying Party and allow your users to authenticate with U2F and FIDO2 authenticators.") + (description + "@code{WebAuthn} ruby server library ― Make your application a W3C Web +Authentication conformant Relying Party and allow your users to authenticate +with U2F and FIDO2 authenticators.") + (home-page "https://github.com/cedarcode/webauthn-ruby") + (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) + (native-inputs (list ruby-pry ruby-rspec ruby-simplecov ruby-webmock)) + (propagated-inputs (list ruby-hkdf ruby-jwt)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check + (delete 'check)))) + (synopsis "Encryption Utilities for Web Push payload.") + (description "Encryption Utilities for Web Push payload.") + (home-page "https://github.com/zaru/webpush") + (license #f))) + +(define-public ruby-semantic-range + (package + (name "ruby-semantic-range") + (version "3.0.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "semantic_range" version)) + (sha256 + (base32 + "1dlp97vg95plrsaaqj7x8l7z9vsjbhnqk4rw1l30gy26lmxpfrih")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "node-semver rewritten in ruby, for comparison and inclusion of semantic versions and ranges") + (description + "node-semver rewritten in ruby, for comparison and inclusion of semantic versions +and ranges") + (home-page "https://libraries.io/github/librariesio/semantic_range") + (license license:expat))) + +(define-public ruby-rack-proxy + (package + (name "ruby-rack-proxy") + (version "0.7.6") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rack-proxy" version)) + (sha256 + (base32 + "1a62439xwn5v6hsl9s11hdk4wj58czhcbg7lminv23mnkc0ca147")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rack-test ruby-test-unit)) + (propagated-inputs (list ruby-rack)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check + (delete 'check)))) + (synopsis + "A Rack app that provides request/response rewriting proxy capabilities with streaming.") + (description + "This package provides a Rack app that provides request/response rewriting proxy +capabilities with streaming.") + (home-page "https://github.com/ncr/rack-proxy") + (license license:expat))) + +(define-public ruby-webpacker + (package + (name "ruby-webpacker") + (version "5.4.4") + (source (origin + (method url-fetch) + (uri (rubygems-uri "webpacker" version)) + (sha256 + (base32 + "0fh4vijqiq1h7w28llk67y9csc0m4wkdivrsl4fsxg279v6j5z3i")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rubocop-minimal ruby-rubocop-performance-minimal + ruby-simplecov)) + (propagated-inputs (list ruby-activesupport ruby-rack-proxy ruby-railties + ruby-semantic-range)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check, cannot load simplecov + (delete 'check)))) + (synopsis "Use webpack to manage app-like JavaScript modules in Rails") + (description + "Use webpack to manage app-like @code{JavaScript} modules in Rails") + (home-page "https://github.com/rails/webpacker") + (license license:expat))) + +(define-public ruby-twitter-text + (package + (name "ruby-twitter-text") + (version "3.1.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "twitter-text" version)) + (sha256 + (base32 + "1dnmp0bj3l01nbb52zby2c7hrazcdwfg846knkrjdfl0yfmv793z")))) + (build-system ruby-build-system) + (native-inputs (list ruby-multi-json + ruby-nokogiri + ruby-rdoc + ruby-rspec + ruby-simplecov + ruby-test-unit)) + (propagated-inputs (list ruby-idn-ruby ruby-unf)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Check failing, unable to find config dir + (delete 'check)))) + (synopsis "A gem that provides text handling for Twitter") + (description + "This package provides a gem that provides text handling for Twitter") + (home-page "http://twitter.com") + (license license:asl2.0))) + +(define-public ruby-redlock + (package + (name "ruby-redlock") + (version "2.0.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "redlock" version)) + (sha256 + (base32 + "1l7zh6y3ra37zwjgm284zfvydqbmk5jzskqi8sanzngsm0phqxcs")))) + (build-system ruby-build-system) + (native-inputs (list ruby-connection-pool ruby-coveralls ruby-json + ruby-rspec)) + (propagated-inputs (list ruby-redis-client)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; XXX Tests require docker, do we try to use that...? + (delete 'check)))) + (synopsis + "Distributed lock using Redis written in Ruby. Highly inspired by https://github.com/antirez/redlock-rb.") + (description + "Distributed lock using Redis written in Ruby. Highly inspired by +https://github.com/antirez/redlock-rb.") + (home-page "https://github.com/leandromoreira/redlock-rb") + (license #f))) + +(define-public ruby-stoplight + (package + (name "ruby-stoplight") + (version "3.0.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "stoplight" version)) + (sha256 + (base32 + "0rmhhqvvrn7874r9cjf4wpv36vnxvxsrgb1kfgdk3dalg4rig7q6")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-redlock)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "An implementation of the circuit breaker pattern.") + (description "An implementation of the circuit breaker pattern.") + (home-page "https://github.com/bolshakov/stoplight") + (license license:expat))) + +(define-public ruby-sprockets + (package + (name "ruby-sprockets") + (version "4.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "sprockets" version)) + (sha256 + (base32 + "0k0236g4h3ax7v6vp9k0l2fa0w6f1wqp7dn060zm4isw4n3k89sw")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-concurrent-ruby ruby-rack)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Sprockets is a Rack-based asset packaging system that concatenates and serves JavaScript, CoffeeScript, CSS, Sass, and SCSS.") + (description + "Sprockets is a Rack-based asset packaging system that concatenates and serves +@code{JavaScript,} @code{CoffeeScript,} CSS, Sass, and SCSS.") + (home-page "https://github.com/rails/sprockets") + (license license:expat))) + +(define-public ruby-sprockets-rails + (package + (name "ruby-sprockets-rails") + (version "3.4.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "sprockets-rails" version)) + (sha256 + (base32 + "1b9i14qb27zs56hlcc2hf139l0ghbqnjpmfi0054dxycaxvk5min")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-actionpack ruby-activesupport ruby-sprockets)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Sprockets Rails integration") + (description "Sprockets Rails integration") + (home-page "https://github.com/rails/sprockets-rails") + (license license:expat))) + +(define-public ruby-simple-navigation + (package + (name "ruby-simple-navigation") + (version "4.4.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "simple-navigation" version)) + (sha256 + (base32 + "1wc1rapwhqymcjfxmlgam4cvbyhnzfxada2damq88ij2p77pjz4q")))) + (build-system ruby-build-system) + (native-inputs (list ruby-capybara + ruby-coveralls + ruby-guard + ;; ruby-memfs TODO Package + ruby-rdoc + ruby-tzinfo + ruby-rspec)) + (propagated-inputs (list ruby-activesupport)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check, does not know how to build test + (delete 'check)))) + (synopsis + "With the simple-navigation gem installed you can easily create multilevel navigations for your Rails, Sinatra or Padrino applications. The navigation is defined in a single configuration file. It supports automatic as well as explicit highlighting of the currently active navigation through regular expressions.") + (description + "With the simple-navigation gem installed you can easily create multilevel +navigations for your Rails, Sinatra or Padrino applications. The navigation is +defined in a single configuration file. It supports automatic as well as +explicit highlighting of the currently active navigation through regular +expressions.") + (home-page "http://github.com/codeplant/simple-navigation") + (license license:expat))) + +(define-public ruby-simple-form + (package + (name "ruby-simple-form") + (version "5.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "simple_form" version)) + (sha256 + (base32 + "0z4df65w9qpri315lpvzazdxa9xb7yj0j3d77q06wf0jnpvw4mzs")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Forms made easy!") + (description "Forms made easy!") + (home-page "https://github.com/heartcombo/simple_form") + (license license:expat))) + +(define-public ruby-sidekiq-bulk + (package + (name "ruby-sidekiq-bulk") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "sidekiq-bulk" version)) + (sha256 + (base32 + "08nyxzmgf742irafy3l4fj09d4s5pyvsh0dzlh8y4hl51rgkh4xv")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-sidekiq)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Augments Sidekiq job classes with a push_bulk method for easier bulk pushing.") + (description + "Augments Sidekiq job classes with a push_bulk method for easier bulk pushing.") + (home-page "https://github.com/aprescott/sidekiq-bulk") + (license license:expat))) + +(define-public ruby-sidekiq + (package + (name "ruby-sidekiq") + (version "7.1.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "sidekiq" version)) + (sha256 + (base32 + "07mbz9fqh1j7dd0mws3g2f247qy39wl6b34fb4mighf460wm254s")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-concurrent-ruby ruby-connection-pool + ruby-rack ruby-redis-client)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Simple, efficient background processing for Ruby.") + (description "Simple, efficient background processing for Ruby.") + (home-page "https://sidekiq.org") + (license #f))) + +(define-public ruby-brpoplpush-redis-script + (package + (name "ruby-brpoplpush-redis-script") + (version "0.1.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "brpoplpush-redis_script" version)) + (sha256 + (base32 + "1nd5zj5yqmhv9lrsqz8s2dqq28v4ywy95qrw7nzhhf89dl4dq49l")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-concurrent-ruby ruby-redis)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Bring your own LUA scripts into redis.") + (description "Bring your own LUA scripts into redis.") + (home-page "https://github.com/brpoplpush/brpoplpush-redis_script") + (license license:expat))) + +(define-public ruby-sidekiq-unique-jobs + (package + (name "ruby-sidekiq-unique-jobs") + (version "8.0.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "sidekiq-unique-jobs" version)) + (sha256 + (base32 + "1sf51bm3g0bvvqpp8n60008m7vdi862dncqr9iypkqskvxndzr11")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-brpoplpush-redis-script ruby-concurrent-ruby + ruby-sidekiq ruby-thor)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Prevents simultaneous Sidekiq jobs with the same unique arguments to run. +Highly configurable to suite your specific needs. +") + (description + "Prevents simultaneous Sidekiq jobs with the same unique arguments to run. +Highly configurable to suite your specific needs.") + (home-page "https://github.com/mhenrixon/sidekiq-unique-jobs") + (license license:expat))) + +(define-public ruby-raabro + (package + (name "ruby-raabro") + (version "1.4.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "raabro" version)) + (sha256 + (base32 + "10m8bln9d00dwzjil1k42i5r7l82x25ysbi45fwyv4932zsrzynl")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "A very dumb PEG parser library, with a horrible interface.") + (description + "This package provides a very dumb PEG parser library, with a horrible interface.") + (home-page "https://github.com/floraison/raabro") + (license license:expat))) + +(define-public ruby-et-orbi + (package + (name "ruby-et-orbi") + (version "1.2.7") + (source (origin + (method url-fetch) + (uri (rubygems-uri "et-orbi" version)) + (sha256 + (base32 + "1d2z4ky2v15dpcz672i2p7lb2nc793dasq3yq3660h2az53kss9v")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (propagated-inputs (list ruby-tzinfo)) + (synopsis "Time zones for fugit and rufus-scheduler. Urbi et Orbi.") + (description "Time zones for fugit and rufus-scheduler. Urbi et Orbi.") + (home-page "https://github.com/floraison/et-orbi") + (license license:expat))) + +(define-public ruby-fugit + (package + (name "ruby-fugit") + (version "1.8.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "fugit" version)) + (sha256 + (base32 + "1cm2lrvhrpqq19hbdsxf4lq2nkb2qdldbdxh3gvi15l62dlb5zqq")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-et-orbi ruby-raabro)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Time tools for flor and the floraison project. Cron parsing and occurrence computing. Timestamps and more.") + (description + "Time tools for flor and the floraison project. Cron parsing and occurrence +computing. Timestamps and more.") + (home-page "https://github.com/floraison/fugit") + (license license:expat))) + +(define-public ruby-rufus-scheduler + (package + (name "ruby-rufus-scheduler") + (version "3.9.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rufus-scheduler" version)) + (sha256 + (base32 + "14lr8c2sswn0sisvrfi4448pmr34za279k3zlxgh581rl1y0gjjz")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-fugit)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Job scheduler for Ruby (at, cron, in and every jobs). Not a replacement for crond.") + (description + "Job scheduler for Ruby (at, cron, in and every jobs). Not a replacement for +crond.") + (home-page "https://github.com/jmettraux/rufus-scheduler") + (license license:expat))) + +(define-public ruby-sidekiq-scheduler + (package + (name "ruby-sidekiq-scheduler") + (version "5.0.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "sidekiq-scheduler" version)) + (sha256 + (base32 + "0p5jjs3x2pa2fy494xs39xbq642pri13809dcr1l3hjsm56qvp1h")))) + (build-system ruby-build-system) + (native-inputs (list ruby-activejob + ruby-byebug + ruby-mocha + ruby-rack + ruby-rack-test + ruby-rake + ruby-rspec + ruby-simplecov + ruby-timecop)) + (propagated-inputs (list ruby-rufus-scheduler ruby-sidekiq ruby-tilt)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Check is broken, not sure why + (delete 'check)))) + (synopsis + "Light weight job scheduling extension for Sidekiq that adds support for queueing jobs in a recurring way.") + (description + "Light weight job scheduling extension for Sidekiq that adds support for queueing +jobs in a recurring way.") + (home-page "https://sidekiq-scheduler.github.io/sidekiq-scheduler/") + (license license:expat))) + +(define-public ruby-scenic + (package + (name "ruby-scenic") + (version "1.7.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "scenic" version)) + (sha256 + (base32 + "04sd4jmgnwpilr3k061x87yyryya2mj15a8602fip49lfxza5548")))) + (build-system ruby-build-system) + (native-inputs (list ;ruby-database-cleaner + ruby-rake-compiler ruby-rspec ruby-yard)) + (propagated-inputs (list ruby-activerecord ruby-railties)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Needs database-cleaner to work + (delete 'check)))) + (synopsis + " Adds methods to ActiveRecord::Migration to create and manage database views + in Rails +") + (description + "Adds methods to @code{ActiveRecord::Migration} to create and manage database +views in Rails") + (home-page "https://github.com/scenic-views/scenic") + (license license:expat))) + +(define-public ruby-progressbar + (package + (name "ruby-progressbar") + (version "1.13.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "ruby-progressbar" version)) + (sha256 + (base32 + "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Ruby/ProgressBar is an extremely flexible text progress bar library for Ruby. The output can be customized with a flexible formatting system including: percentage, bars of various formats, elapsed time and estimated time remaining.") + (description + "@code{Ruby/ProgressBar} is an extremely flexible text progress bar library for +Ruby. The output can be customized with a flexible formatting system including: +percentage, bars of various formats, elapsed time and estimated time remaining.") + (home-page "https://github.com/jfelchner/ruby-progressbar") + (license license:expat))) + +(define-public ruby-rqrcode-core + (package + (name "ruby-rqrcode-core") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rqrcode_core" version)) + (sha256 + (base32 + "06ld6386hbdhy5h0k09axmgn424kavpc8f27k1vjhknjhbf8jjfg")))) + (build-system ruby-build-system) + (native-inputs (list ruby-minitest ruby-standardrb)) + (synopsis + "rqrcode_core is a Ruby library for encoding QR Codes. The simple +interface (with no runtime dependencies) allows you to create QR Code data structures. +") + (description + "rqrcode_core is a Ruby library for encoding QR Codes. The simple interface +(with no runtime dependencies) allows you to create QR Code data structures.") + (home-page "https://github.com/whomwah/rqrcode_core") + (license license:expat))) + +(define-public ruby-rqrcode + (package + (name "ruby-rqrcode") + (version "2.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rqrcode" version)) + (sha256 + (base32 + "1hggzz8i1l62pkkiybhiqv6ypxw7q844sddrrbbfczjcnj5sivi3")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rspec ruby-standardrb)) + (propagated-inputs (list ruby-chunky-png ruby-rqrcode-core)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check, unable to build test + (delete 'check)))) + (synopsis "rqrcode is a library for encoding QR Codes. The simple +interface allows you to create QR Code data structures +and then render them in the way you choose. +") + (description + "rqrcode is a library for encoding QR Codes. The simple interface allows you to +create QR Code data structures and then render them in the way you choose.") + (home-page "https://github.com/whomwah/rqrcode") + (license license:expat))) + +(define-public ruby-mario-redis-lock + (package + (name "ruby-mario-redis-lock") + (version "1.2.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "mario-redis-lock" version)) + (sha256 + (base32 + "1v9wdjcjqzpns2migxp4a5b4w82mipi0fwihbqz3q2qj2qm7wc17")))) + (build-system ruby-build-system) + (native-inputs (list ruby-redis-lock)) + (propagated-inputs (list ruby-redis)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check + (delete 'check)))) + (synopsis + "Yet another Ruby distributed lock using Redis, with emphasis in transparency. Requires Redis >= 2.6.12, because it uses the new syntax for SET to easily implement the robust algorithm described in the SET command documentation (http://redis.io/commands/set).") + (description + "Yet another Ruby distributed lock using Redis, with emphasis in transparency. +Requires Redis >= 2.6.12, because it uses the new syntax for SET to easily +implement the robust algorithm described in the SET command documentation +(http://redis.io/commands/set).") + (home-page "https://github.com/marioizquierdo/mario-redis-lock") + (license license:expat))) + +(define-public ruby-redis-lock + (package + (name "ruby-redis-lock") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "redis-lock" version)) + (sha256 + (base32 + "1d6y09gch962y993m8fdjmdi70wrsh4cak8v1g9h0l29zqm4vfy0")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rspec)) + (propagated-inputs (list ruby-redis)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check + (delete 'check)))) + (synopsis "Pessimistic locking for ruby redis") + (description "Pessimistic locking for ruby redis") + (home-page "https://github.com/PatrickTulskie/redis-lock") + (license license:expat))) + +(define-public ruby-rails-settings-cached + (package + (name "ruby-rails-settings-cached") + (version "2.9.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rails-settings-cached" version)) + (sha256 + (base32 + "0synb0s82xkkk2dn878mcxqn0c83s3clvasf0d1wh45awdf8kglc")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-activerecord ruby-railties)) + (synopsis + " + The best solution for store global settings in Rails applications. + + This gem will managing a table of а global key, value pairs easy. Think of it like a + global Hash stored in your database, that uses simple ActiveRecord like methods for manipulation. + + Keep track of any global setting that you dont want to hard code into your rails app. + You can store any kind of object. Strings, numbers, arrays, or any object. + ") + (description + "The best solution for store global settings in Rails applications. This gem +will managing a table of а global key, value pairs easy. Think of it like a +global Hash stored in your database, that uses simple @code{ActiveRecord} like +methods for manipulation. Keep track of any global setting that you dont want +to hard code into your rails app. You can store any kind of object. Strings, +numbers, arrays, or any object.") + (home-page "https://github.com/huacnlee/rails-settings-cached") + (license license:expat))) + +(define-public ruby-rails-i18n + (package + (name "ruby-rails-i18n") + (version "7.0.7") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rails-i18n" version)) + (sha256 + (base32 + "1bbh5gsw46djmrgddwaq3wsjmj9rsh5dk13wkclwxf1rg9jpkn3g")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-i18n ruby-railties)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "A set of common locale data and translations to internationalize and/or localize your Rails applications.") + (description + "This package provides a set of common locale data and translations to +internationalize and/or localize your Rails applications.") + (home-page "https://github.com/svenfuchs/rails-i18n") + (license license:expat))) + +(define-public ruby-rack-cors + (package + (name "ruby-rack-cors") + (version "2.0.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rack-cors" version)) + (sha256 + (base32 + "02lvkg1nb4z3zc2nry545dap7a64bb9h2k8waxfz0jkabkgnpimw")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rack-test + ruby-mocha + ruby-minitest + ruby-pry + ruby-pry-byebug + ruby-rubocop-rake)) + (propagated-inputs (list ruby-rack)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check + (delete 'check)))) + (synopsis + "Middleware that will make Rack-based apps CORS compatible. Fork the project here: https://github.com/cyu/rack-cors") + (description + "Middleware that will make Rack-based apps CORS compatible. Fork the project +here: https://github.com/cyu/rack-cors") + (home-page "https://github.com/cyu/rack-cors") + (license license:expat))) + +(define-public ruby-rack-attack + (package + (name "ruby-rack-attack") + (version "6.7.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rack-attack" version)) + (sha256 + (base32 + "0z6pj5vjgl6swq7a33gssf795k958mss8gpmdb4v4cydcs7px91w")))) + (build-system ruby-build-system) + (native-inputs (list ruby-activesupport + ruby-byebug + ruby-minitest + ruby-minitest-stub-const + ruby-rack-test + ruby-rake-compiler + ruby-rubocop-rake + ruby-rubocop-performance-minimal + ruby-timecop)) + (propagated-inputs (list ruby-rack)) + (synopsis "A rack middleware for throttling and blocking abusive requests") + (description + "This package provides a rack middleware for throttling and blocking abusive +requests") + (home-page "https://github.com/rack/rack-attack") + (license license:expat))) + +(define-public ruby-premailer + (package + (name "ruby-premailer") + (version "1.21.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "premailer" version)) + (sha256 + (base32 + "10rzwdz43yy20lwzsr2as6aivhvwjvqh4nd48sa0ga57sizf1fb4")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-addressable ruby-css-parser + ruby-htmlentities)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Improve the rendering of HTML emails by making CSS inline, converting links and warning about unsupported code.") + (description + "Improve the rendering of HTML emails by making CSS inline, converting links and +warning about unsupported code.") + (home-page "https://github.com/premailer/premailer") + (license #f))) + +; TODO Remove when upstream guix upgrades css-parser +(define-public ruby-css-parser + (package + (name "ruby-css-parser") + (version "1.14.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "css_parser" version)) + (sha256 + (base32 + "04q1vin8slr3k8mp76qz0wqgap6f9kdsbryvgfq9fljhrm463kpj")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-addressable)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "A set of classes for parsing CSS in Ruby.") + (description + "This package provides a set of classes for parsing CSS in Ruby.") + (home-page "https://github.com/premailer/css_parser") + (license license:expat))) + +(define-public ruby-premailer-rails + (package + (name "ruby-premailer-rails") + (version "1.12.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "premailer-rails" version)) + (sha256 + (base32 + "0004f73kgrglida336fqkgx906m6n05nnfc17mypzg5rc78iaf61")))) + (build-system ruby-build-system) + (native-inputs (list bundler ruby-rspec ruby-nokogiri ruby-tzinfo-data + tzdata)) + (inputs (list ruby-byebug ruby-css-parser ruby-propshaft ruby-rails + ruby-sprockets-rails)) + (propagated-inputs (list ruby-actionmailer ruby-net-smtp ruby-premailer)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Tests are failing due to missing + ;; tzinf-data datasource + (delete 'check)))) + (synopsis + "This gem brings you the power of the premailer gem to Rails + without any configuration needs. Create HTML emails, + include a CSS file as you do in a normal HTML document and + premailer will inline the included CSS.") + (description + "This gem brings you the power of the premailer gem to Rails without any +configuration needs. Create HTML emails, include a CSS file as you do in a +normal HTML document and premailer will inline the included CSS.") + (home-page "https://github.com/fphilipe/premailer-rails") + (license license:expat))) + +(define-public ruby-pundit + (package + (name "ruby-pundit") + (version "2.3.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "pundit" version)) + (sha256 + (base32 + "10diasjqi1g7s19ns14sldia4wl4c0z1m4pva66q4y2jqvks4qjw")))) + (build-system ruby-build-system) + (native-inputs (list ruby-actionpack + ruby-activemodel + ruby-pry + ruby-rack + ruby-railties + ruby-rake-compiler + ruby-rspec + ruby-rubocop-rake + ruby-simplecov + ruby-yard)) + (propagated-inputs (list ruby-activesupport)) + (arguments + (list #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "rake" "spec")))))) + (synopsis "Object oriented authorization for Rails applications") + (description "Object oriented authorization for Rails applications") + (home-page "https://github.com/varvet/pundit") + (license license:expat))) + +(define-public ruby-posix-spawn + (package + (name "ruby-posix-spawn") + (version "0.3.15") + (source (origin + (method url-fetch) + (uri (rubygems-uri "posix-spawn" version)) + (sha256 + (base32 + "0cmb0svalqcxfzlzc5fvrci12b79x7bakasr8gkl3q5rz6di1q52")))) + (build-system ruby-build-system) + (native-inputs (list coreutils-minimal bash-minimal gcc-toolchain + ruby-rake-compiler ruby-minitest)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Failing on benchmark test + (delete 'check)))) + (synopsis "posix-spawn uses posix_spawnp(2) for faster process spawning") + (description + "posix-spawn uses posix_spawnp(2) for faster process spawning") + (home-page "https://github.com/rtomayko/posix-spawn") + (license license:expat))) + +(define-public ruby-parslet + (package + (name "ruby-parslet") + (version "2.0.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "parslet" version)) + (sha256 + (base32 + "01pnw6ymz6nynklqvqxs4bcai25kcvnd5x4id9z3vd1rbmlk0lfl")))) + (build-system ruby-build-system) + (native-inputs (list ruby-sdoc)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; Missing rakefile + (delete 'check)))) + (synopsis + "Parser construction library with great error reporting in Ruby.") + (description + "Parser construction library with great error reporting in Ruby.") + (home-page "http://kschiess.github.io/parslet") + (license license:expat))) + +(define-public ruby-kaminari-activerecord + (package + (name "ruby-kaminari-activerecord") + (version "1.2.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "kaminari-activerecord" version)) + (sha256 + (base32 + "0c148z97s1cqivzbwrak149z7kl1rdmj7dxk6rpkasimmdxsdlqd")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-activerecord ruby-kaminari-core)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "kaminari-activerecord lets your Active Record models be paginatable") + (description + "kaminari-activerecord lets your Active Record models be paginatable") + (home-page "https://github.com/kaminari/kaminari") + (license license:expat))) + +(define-public ruby-kaminari-core + (package + (name "ruby-kaminari-core") + (version "1.2.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "kaminari-core" version)) + (sha256 + (base32 + "1zw3pg6kj39y7jxakbx7if59pl28lhk98fx71ks5lr3hfgn6zliv")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "kaminari-core includes pagination logic independent from ORMs and view libraries") + (description + "kaminari-core includes pagination logic independent from ORMs and view libraries") + (home-page "https://github.com/kaminari/kaminari") + (license license:expat))) + +(define-public ruby-kaminari-actionview + (package + (name "ruby-kaminari-actionview") + (version "1.2.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "kaminari-actionview" version)) + (sha256 + (base32 + "02f9ghl3a9b5q7l079d3yzmqjwkr4jigi7sldbps992rigygcc0k")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-actionview ruby-kaminari-core)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "kaminari-actionview provides pagination helpers for your Action View templates") + (description + "kaminari-actionview provides pagination helpers for your Action View templates") + (home-page "https://github.com/kaminari/kaminari") + (license license:expat))) + +(define-public ruby-kaminari + (package + (name "ruby-kaminari") + (version "1.2.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "kaminari" version)) + (sha256 + (base32 + "0gia8irryvfhcr6bsr64kpisbgdbqjsqfgrk12a11incmpwny1y4")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-activesupport ruby-kaminari-actionview + ruby-kaminari-activerecord ruby-kaminari-core)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Kaminari is a Scope & Engine based, clean, powerful, agnostic, customizable and sophisticated paginator for Rails 4+") + (description + "Kaminari is a Scope & Engine based, clean, powerful, agnostic, customizable and +sophisticated paginator for Rails 4+") + (home-page "https://github.com/kaminari/kaminari") + (license license:expat))) + +(define-public ruby-httplog + (package + (name "ruby-httplog") + (version "1.6.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "httplog" version)) + (sha256 + (base32 + "0zjsgrlvwpqsnrza4ijlxjld4550c661sgbqp2j2wp638nlnls1a")))) + (build-system ruby-build-system) + (native-inputs (list ruby-ethon + ruby-excon + ruby-faraday + ;; ruby-guard-rspec TODO Package + ruby-http + ;; ruby-httparty TODO Package + ruby-httpclient + ruby-rest-client + ruby-typhoeus + ruby-listen + ruby-patron + ruby-rspec + ruby-simplecov + ruby-thin + ruby-oj)) + (propagated-inputs (list ruby-rack ruby-rainbow)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Log outgoing HTTP requests made from your application. Helpful for tracking API calls + of third party gems that don't provide their own log output.") + (description + "Log outgoing HTTP requests made from your application. Helpful for tracking API +calls of third party gems that don't provide their own log output.") + (home-page "http://github.com/trusche/httplog") + (license license:expat))) + +(define-public ruby-http-accept-language + (package + (name "ruby-http-accept-language") + (version "2.1.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "http_accept_language" version)) + (sha256 + (base32 + "0d0nlfz9vm4jr1l6q0chx4rp2hrnrfbx3gadc1dz930lbbaz0hq0")))) + (build-system ruby-build-system) + (native-inputs (list ruby-aruba + ruby-cucumber + ruby-listen + ;; ruby-guard-rspec TODO Package + ruby-rack-test + ruby-rails + ruby-rspec)) + (arguments + (list #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "rake" "spec")))))) + (synopsis + "Find out which locale the user preferes by reading the languages they specified in their browser") + (description + "Find out which locale the user preferes by reading the languages they specified +in their browser") + (home-page "https://github.com/iain/http_accept_language") + (license license:expat))) + +(define-public ruby-ffi-compiler + (package + (name "ruby-ffi-compiler") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "ffi-compiler" version)) + (sha256 + (base32 + "0c2caqm9wqnbidcb8dj4wd3s902z15qmgxplwyfyqbwa0ydki7q1")))) + (build-system ruby-build-system) + (native-inputs (list gcc-toolchain + ruby-kramdown + ruby-rake-compiler + ruby-rake-compiler-dock + ruby-rspec + ruby-rubygems-tasks + ruby-yard)) + (inputs (list libffi)) + (propagated-inputs (list ruby-ffi ruby-rake)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Ruby FFI library") + (description "Ruby FFI library") + (home-page "http://github.com/ffi/ffi") + (license license:asl2.0))) + +(define-public ruby-llhttp-ffi + (package + (name "ruby-llhttp-ffi") + (version "0.5.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "llhttp-ffi" version)) + (sha256 + (base32 + "1yph78m8w8l6i9833fc7shy5krk4mnqjc7ys0bg9kgxw8jnl0vs9")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-ffi-compiler ruby-rake)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Ruby FFI bindings for llhttp.") + (description "Ruby FFI bindings for llhttp.") + (home-page "https://github.com/bryanp/llhttp/") + (license #f))) + +(define-public ruby-http-form-data + (package + (name "ruby-http-form-data") + (version "2.3.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "http-form_data" version)) + (sha256 + (base32 + "1wx591jdhy84901pklh1n9sgh74gnvq1qyqxwchni1yrc49ynknc")))) + (build-system ruby-build-system) + (native-inputs (list ruby-coveralls + ruby-rspec + ruby-rubocop-performance-minimal + ruby-rubocop-rake + ruby-rubocop-rspec + ruby-simplecov + ruby-simplecov-lcov + + ;; Documentation deps + ruby-redcarpet + ruby-yard)) + (arguments + (list #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "rake" "spec")))))) + (synopsis + "Utility-belt to build form data request bodies. Provides support for `application/x-www-form-urlencoded` and `multipart/form-data` types.") + (description + "Utility-belt to build form data request bodies. Provides support for +`application/x-www-form-urlencoded` and `multipart/form-data` types.") + (home-page "https://github.com/httprb/form_data.rb") + (license license:expat))) + +(define-public ruby-http + (package + (name "ruby-http") + (version "5.1.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "http" version)) + (sha256 + (base32 + "1bzb8p31kzv6q5p4z5xq88mnqk414rrw0y5rkhpnvpl29x5c3bpw")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-addressable ruby-http-cookie + ruby-http-form-data ruby-llhttp-ffi)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Check broken + (delete 'check)))) + (synopsis + "An easy-to-use client library for making requests from Ruby. It uses a simple method chaining system for building requests, similar to Python's Requests.") + (description + "An easy-to-use client library for making requests from Ruby. It uses a simple +method chaining system for building requests, similar to Python's Requests.") + (home-page "https://github.com/httprb/http") + (license license:expat))) + +(define-public ruby-redis-namespace + (package + (name "ruby-redis-namespace") + (version "1.11.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "redis-namespace" version)) + (sha256 + (base32 + "0f92i9cwlp6xj6fyn7qn4qsaqvxfw4wqvayll7gbd26qnai1l6p9")))) + (build-system ruby-build-system) + (native-inputs (list ruby-connection-pool ruby-rack-test ruby-rspec + ruby-rspec-its-minimal)) + (propagated-inputs (list ruby-redis)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Check broken + (delete 'check)))) + (synopsis + "Adds a Redis::Namespace class which can be used to namespace calls +to Redis. This is useful when using a single instance of Redis with +multiple, different applications. +") + (description + "Adds a Redis::Namespace class which can be used to namespace calls to Redis. +This is useful when using a single instance of Redis with multiple, different +applications.") + (home-page "https://github.com/resque/redis-namespace") + (license license:expat))) + +(define-public ruby-fastimage + (package + (name "ruby-fastimage") + (version "2.2.7") + (source (origin + (method url-fetch) + (uri (rubygems-uri "fastimage" version)) + (sha256 + (base32 + "1pd7pamzhdz2w0fbcvsfn2nyslznvphnwj16zw35g2b28zd2xyzx")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "FastImage finds the size or type of an image given its uri by fetching as little as needed.") + (description + "@code{FastImage} finds the size or type of an image given its uri by fetching as +little as needed.") + (home-page "http://github.com/sdsykes/fastimage") + (license license:expat))) + +(define-public ruby-fast-blank + (package + (name "ruby-fast-blank") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "fast_blank" version)) + (sha256 + (base32 + "1shpmamyzyhyxmv95r96ja5rylzaw60r19647d0fdm7y2h2c77r6")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rake-compiler ruby-rspec ruby-benchmark-ips)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Provides a C-optimized method for determining if a string is blank") + (description + "This package provides a C-optimized method for determining if a string is blank") + (home-page "https://github.com/SamSaffron/fast_blank") + (license license:expat))) + +(define-public ruby-ed25519 + (package + (name "ruby-ed25519") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "ed25519" version)) + (sha256 + (base32 + "0zb2dr2ihb1qiknn5iaj1ha1w9p7lj9yq5waasndlfadz225ajji")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "A Ruby binding to the Ed25519 elliptic curve public-key signature system described in RFC 8032.") + (description + "This package provides a Ruby binding to the Ed25519 elliptic curve public-key +signature system described in RFC 8032.") + (home-page "https://github.com/RubyCrypto/ed25519") + (license license:expat))) + +(define-public ruby-doorkeeper + (package + (name "ruby-doorkeeper") + (version "5.6.6") + (source (origin + (method url-fetch) + (uri (rubygems-uri "doorkeeper" version)) + (sha256 + (base32 + "1q2pywgyn6cbnm0fh3dln5z1qgd1g8hvb4x8rppjc1bpfxnfhi13")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (propagated-inputs (list ruby-railties)) + (synopsis "Doorkeeper is an OAuth 2 provider for Rails and Grape.") + (description "Doorkeeper is an OAuth 2 provider for Rails and Grape.") + (home-page "https://github.com/doorkeeper-gem/doorkeeper") + (license license:expat))) + +(define-public ruby-discard + (package + (name "ruby-discard") + (version "1.2.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "discard" version)) + (sha256 + (base32 + "1xavjhccyyzn9z6fz3034vgvzprc983mbrq6n9sc0drfw7m3vrip")))) + (build-system ruby-build-system) + (native-inputs (list bundler ruby-rake ruby-rspec ruby-database-cleaner + ruby-with-model)) + (propagated-inputs (list ruby-activerecord)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Allows marking ActiveRecord objects as discarded, and provides scopes for filtering.") + (description + "Allows marking @code{ActiveRecord} objects as discarded, and provides scopes for +filtering.") + (home-page "https://github.com/jhawthorn/discard") + (license license:expat))) + +(define-public ruby-color-diff + (package + (name "ruby-color-diff") + (version "0.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "color_diff" version)) + (sha256 + (base32 + "01dpvqlzybpb3pkcwd9ik5sbjw283618ywvdphxslhiy8ps3kp4r")))) + (build-system ruby-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + (delete 'check)))) + (synopsis "Calculate RGB color distances using CIEDE2000 formula") + (description "Calculate RGB color distances using CIEDE2000 formula") + (home-page "https://github.com/hansondr/color_diff") + (license license:expat))) + +(define-public ruby-omniauth-rails-csrf-protection + (package + (name "ruby-omniauth-rails-csrf-protection") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "omniauth-rails_csrf_protection" version)) + (sha256 + (base32 + "1kwswnkyl8ym6i4wv65qh3qchqbf2n0c6lbhfgbvkds3gpmnlm7w")))) + (build-system ruby-build-system) + (native-inputs (list bundler + ruby-minitest + ruby-rails + ruby-rack + ruby-tzinfo + ruby-tzinfo-data + tzdata + tzdata-for-tests)) + (propagated-inputs (list ruby-actionpack ruby-omniauth)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Unable to load tzinfo + (delete 'check)))) + (synopsis + "This gem provides a mitigation against CVE-2015-9284 (Cross-Site Request +Forgery on the request phrase when using OmniAuth gem with a Ruby on Rails +application) by implementing a CSRF token verifier that directly utilize +`ActionController::RequestForgeryProtection` code from Rails. +") + (description + "This gem provides a mitigation against CVE-2015-9284 (Cross-Site Request Forgery +on the request phrase when using @code{OmniAuth} gem with a Ruby on Rails +application) by implementing a CSRF token verifier that directly utilize +@code{`ActionController::RequestForgeryProtection`} code from Rails.") + (home-page "https://github.com/cookpad/omniauth-rails_csrf_protection") + (license license:expat))) + +(define-public ruby-webfinger + (package + (name "ruby-webfinger") + (version "2.1.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "webfinger" version)) + (sha256 + (base32 + "0z31li2iss9r9pxslmmqa76kixlfl4q58ss9lkds7ci7yck9fm6j")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rspec ruby-rspec-its ruby-simplecov ruby-webmock)) + (propagated-inputs (list ruby-activesupport ruby-faraday + ruby-faraday-follow-redirects)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check + (delete 'check)))) + (synopsis "Ruby WebFinger client library") + (description "Ruby @code{WebFinger} client library") + (home-page "https://github.com/nov/webfinger") + (license license:expat))) + +(define-public ruby-validate-url + (package + (name "ruby-validate-url") + (version "1.0.15") + (source (origin + (method url-fetch) + (uri (rubygems-uri "validate_url" version)) + (sha256 + (base32 + "0lblym140w5n88ijyfgcvkxvpfj8m6z00rxxf2ckmmhk0x61dzkj")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-activemodel ruby-public-suffix)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Library for validating urls in Rails.") + (description "Library for validating urls in Rails.") + (home-page "http://github.com/perfectline/validates_url/tree/master") + (license #f))) + +(define-public ruby-validate-email + (package + (name "ruby-validate-email") + (version "0.1.6") + (source (origin + (method url-fetch) + (uri (rubygems-uri "validate_email" version)) + (sha256 + (base32 + "1r1fz29l699arka177c9xw7409d1a3ff95bf7a6pmc97slb91zlx")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-activemodel ruby-mail)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Library for validating email addresses in Rails 3 models.") + (description "Library for validating email addresses in Rails 3 models.") + (home-page "http://github.com/perfectline/validates_email/tree/master") + (license #f))) + +(define-public ruby-swd + (package + (name "ruby-swd") + (version "2.0.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "swd" version)) + (sha256 + (base32 + "0sr1vz64kcxq148vnhp5jq8bzmhplhlc19zbihw76ya7nkh02qpa")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rspec ruby-rspec-its ruby-webmock ruby-simplecov)) + (propagated-inputs (list ruby-activesupport ruby-attr-required + ruby-faraday ruby-faraday-follow-redirects)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check, unable to build test + (delete 'check)))) + (synopsis "SWD (Simple Web Discovery) Client Library") + (description "SWD (Simple Web Discovery) Client Library") + (home-page "https://github.com/nov/swd") + (license #f))) + +(define-public ruby-rack-oauth2 + (package + (name "ruby-rack-oauth2") + (version "2.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rack-oauth2" version)) + (sha256 + (base32 + "0dq7yxj5hi3nvvafk6b77hcw9b8mxijynrlgx6nb0a8b6n86fgx0")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rack-test + ruby-rspec + ruby-rspec-its-minimal + ruby-simplecov + ruby-webmock + ruby-rexml)) + (propagated-inputs (list ruby-activesupport + ruby-attr-required + ruby-faraday + ruby-faraday-follow-redirects + ruby-json-jwt + ruby-rack)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check + (delete 'check)))) + (synopsis + "OAuth 2.0 Server & Client Library. Both Bearer token type are supported.") + (description + "OAuth 2.0 Server & Client Library. Both Bearer token type are supported.") + (home-page "https://github.com/nov/rack-oauth2") + (license license:expat))) + +(define-public ruby-aes-key-wrap + (package + (name "ruby-aes-key-wrap") + (version "1.1.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "aes_key_wrap" version)) + (sha256 + (base32 + "19bn0y70qm6mfj4y1m0j3s8ggh6dvxwrwrj5vfamhdrpddsz8ddr")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "A Ruby implementation of AES Key Wrap, a.k.a RFC 3394, a.k.a NIST Key Wrap.") + (description + "This package provides a Ruby implementation of AES Key Wrap, a.k.a RFC 3394, +a.k.a NIST Key Wrap.") + (home-page "https://github.com/tomdalling/aes_key_wrap") + (license license:expat))) + +(define-public ruby-json-jwt + (package + (name "ruby-json-jwt") + (version "1.16.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "json-jwt" version)) + (sha256 + (base32 + "1nb5c0dlwi4ps5z46hg9zdah8cmqm3fcdxxqi9185b8ki4j73jai")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rspec ruby-rspec-its-minimal ruby-simplecov + ruby-webmock)) + (propagated-inputs (list ruby-activesupport ruby-aes-key-wrap ruby-bindata + ruby-faraday ruby-faraday-follow-redirects)) + (arguments + (list #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "rake" "spec")))))) + (synopsis + "JSON Web Token and its family (JSON Web Signature, JSON Web Encryption and JSON Web Key) in Ruby") + (description + "JSON Web Token and its family (JSON Web Signature, JSON Web Encryption and JSON +Web Key) in Ruby") + (home-page "https://github.com/nov/json-jwt") + (license license:expat))) + +(define-public ruby-faraday-follow-redirects + (package + (name "ruby-faraday-follow-redirects") + (version "0.3.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "faraday-follow_redirects" version)) + (sha256 + (base32 + "1y87p3yk15bjbk0z9mf01r50lzxvp7agr56lbm9gxiz26mb9fbfr")))) + (build-system ruby-build-system) + (native-inputs (list bundler + ruby-appraisal + ruby-rspec + ruby-simplecov + ruby-webmock + + ruby-rubocop-minimal + ;; ruby-rubocop-packaging TODO Package + ruby-rubocop-performance-minimal + ruby-rspec)) + (propagated-inputs (list ruby-faraday)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Faraday 2.x compatible extraction of FaradayMiddleware::FollowRedirects. +") + (description + "Faraday 2.x compatible extraction of @code{FaradayMiddleware::FollowRedirects.}") + (home-page "https://github.com/tisba/faraday-follow-redirects") + (license license:expat))) + +(define-public ruby-attr-required + (package + (name "ruby-attr-required") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "attr_required" version)) + (sha256 + (base32 + "1g22axmi2rhhy7w8c3x6gppsawxqavbrnxpnmphh22fk7cwi0kh2")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "attr_required and attr_optional") + (description "attr_required and attr_optional") + (home-page "http://github.com/nov/attr_required") + (license license:expat))) + +(define-public ruby-openid-connect + (package + (name "ruby-openid-connect") + (version "2.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "openid_connect" version)) + (sha256 + (base32 + "1j19w1vw762skcykysqz6zv077b3qa3qbs5x7aywh4p53dicgd25")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rspec ruby-rspec-its ruby-webmock ruby-simplecov + ruby-rexml)) + (propagated-inputs (list ruby-activemodel + ruby-attr-required + ruby-faraday + ruby-faraday-follow-redirects + ruby-json-jwt + ruby-net-smtp + ruby-rack-oauth2 + ruby-swd + ruby-tzinfo + ruby-validate-email + ruby-validate-url + ruby-webfinger)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check + (delete 'check)))) + (synopsis "OpenID Connect Server & Client Library") + (description "@code{OpenID} Connect Server & Client Library") + (home-page "https://github.com/nov/openid_connect") + (license license:expat))) + +(define-public ruby-omniauth-openid-connect + (package + (name "ruby-omniauth-openid-connect") + (version "0.2.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "omniauth-openid-connect" version)) + (sha256 + (base32 + "09xigxbyd6gjyyjbfs4fcp2s7192ndvr7f0xvk5fxd2cw74cf4g7")))) + (build-system ruby-build-system) + (native-inputs (list ruby-minitest + ruby-mocha + ruby-guard + ;; ruby-guard-minitest TODO Package + ;; ruby-guard-bundler TODO Package + ruby-simplecov + ruby-pry + ruby-coveralls + ruby-faker)) + (propagated-inputs (list ruby-addressable ruby-omniauth + ruby-openid-connect)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check, running integration tests... + (delete 'check)))) + (synopsis "OpenID Connect Strategy for OmniAuth") + (description "@code{OpenID} Connect Strategy for @code{OmniAuth}") + (home-page "https://github.com/jjbohn/omniauth-openid-connect") + (license license:expat))) + +(define-public ruby-saml + (package + (name "ruby-saml") + (version "1.15.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "ruby-saml" version)) + (sha256 + (base32 + "18vnbzin5ypxrgcs9lllg7x311b69dyrdw2w1pwz84438hmxm79s")))) + (build-system ruby-build-system) + (native-inputs (list ruby-nokogiri + ruby-rexml + ruby-simplecov + ruby-simplecov-lcov + ruby-minitest + ruby-mocha + ruby-shoulda + ruby-systemu + ruby-timecop + ruby-pry-byebug)) + (propagated-inputs (list ruby-nokogiri ruby-rexml)) + (synopsis + "SAML Ruby toolkit. Add SAML support to your Ruby software using this library") + (description + "SAML Ruby toolkit. Add SAML support to your Ruby software using this library") + (home-page "https://github.com/saml-toolkits/ruby-saml") + (license license:expat))) + +(define-public ruby-omniauth-saml + (package + (name "ruby-omniauth-saml") + (version "2.1.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "omniauth-saml" version)) + (sha256 + (base32 + "01k9rkg97npcgm8r4x3ja8y20hsg4zy0dcjpzafx148q4yxbg74n")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-omniauth ruby-saml)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "A generic SAML strategy for OmniAuth.") + (description + "This package provides a generic SAML strategy for @code{OmniAuth.}") + (home-page "https://github.com/omniauth/omniauth-saml") + (license license:expat))) + +(define-public ruby-net-ldap + (package + (name "ruby-net-ldap") + (version "0.18.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "net-ldap" version)) + (sha256 + (base32 + "0xqcffn3c1564c4fizp10dzw2v5g2pabdzrcn25hq05bqhsckbar")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Net::LDAP for Ruby (also called net-ldap) implements client access for the +Lightweight Directory Access Protocol (LDAP), an IETF standard protocol for +accessing distributed directory services. Net::LDAP is written completely in +Ruby with no external dependencies. It supports most LDAP client features and a +subset of server features as well. + +Net::LDAP has been tested against modern popular LDAP servers including +OpenLDAP and Active Directory. The current release is mostly compliant with +earlier versions of the IETF LDAP RFCs (2251-2256, 2829-2830, 3377, and 3771). +Our roadmap for Net::LDAP 1.0 is to gain full client compliance with +the most recent LDAP RFCs (4510-4519, plutions of 4520-4532).") + (description + "Net::LDAP for Ruby (also called net-ldap) implements client access for the +Lightweight Directory Access Protocol (LDAP), an IETF standard protocol for +accessing distributed directory services. Net::LDAP is written completely in +Ruby with no external dependencies. It supports most LDAP client features and a +subset of server features as well. Net::LDAP has been tested against modern +popular LDAP servers including @code{OpenLDAP} and Active Directory. The +current release is mostly compliant with earlier versions of the IETF LDAP RFCs +(2251-2256, 2829-2830, 3377, and 3771). Our roadmap for Net::LDAP 1.0 is to +gain full client compliance with the most recent LDAP RFCs (4510-4519, +plutions of 4520-4532).") + (home-page "http://github.com/ruby-ldap/ruby-net-ldap") + (license license:expat))) + +(define-public ruby-rotp + (package + (name "ruby-rotp") + (version "6.2.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rotp" version)) + (sha256 + (base32 + "10mmzc85y7andsich586ndykw678qn1ns2wpjxrg0sc0gr4w3pig")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) + (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-responders + (package + (name "ruby-responders") + (version "3.1.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "responders" version)) + (sha256 + (base32 + "0m9s0mkkprrz02gxhq0ijlwjy0nx1j5yrjf8ssjnhyagnx03lyrx")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-actionpack ruby-railties)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "A set of Rails responders to dry up your application") + (description + "This package provides a set of Rails responders to dry up your application") + (home-page "https://github.com/heartcombo/responders") + (license license:expat))) + +(define-public ruby-orm-adapter + (package + (name "ruby-orm-adapter") + (version "0.5.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "orm_adapter" version)) + (sha256 + (base32 + "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda")))) + (build-system ruby-build-system) + (native-inputs (list ruby-activerecord ruby-git ruby-rspec ruby-yard)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check, requires deps + (delete 'check)))) + (synopsis + "Provides a single point of entry for using basic features of ruby ORMs") + (description + "This package provides a single point of entry for using basic features of ruby +ORMs") + (home-page "http://github.com/ianwhite/orm_adapter") + (license license:expat))) + +(define-public ruby-devise + (package + (name "ruby-devise") + (version "4.9.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "devise" version)) + (sha256 + (base32 + "0vpd7d61d4pfmyb2plnnv82wmczzlhw4k4gjhd2fv4r6vq8ilqqi")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-bcrypt ruby-orm-adapter ruby-railties + ruby-responders ruby-warden)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Flexible authentication solution for Rails with Warden") + (description "Flexible authentication solution for Rails with Warden") + (home-page "https://github.com/heartcombo/devise") + (license license:expat))) + +(define-public ruby-devise-two-factor + (package + (name "ruby-devise-two-factor") + (version "5.0.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "devise-two-factor" version)) + (sha256 + (base32 + "1hh0yc85ixnan90hibz3nba6pamhscxfr1zaymxgv3vw5icv50ya")))) + (build-system ruby-build-system) + (native-inputs (list ruby-activemodel ruby-appraisal ruby-faker + ruby-simplecov ruby-rspec)) + (propagated-inputs (list ruby-activesupport ruby-devise ruby-railties + ruby-rotp)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME: Broken check + (delete 'check)))) + (synopsis "Barebones two-factor authentication with Devise") + (description "Barebones two-factor authentication with Devise") + (home-page "https://github.com/tinfoil/devise-two-factor") + (license license:expat))) + +;;; XXX The ruby-elasticsearch-dsl has jruby deps, +;;; should we use those? +(define-public ruby-elasticsearch-dsl + (package + (name "ruby-elasticsearch-dsl") + (version "0.1.10") + (source (origin + (method url-fetch) + (uri (rubygems-uri "elasticsearch-dsl" version)) + (sha256 + (base32 + "174m3fwm3mawbkjg2xbmqvljq7ava4s95m8vpg5khcvfj506wxfk")))) + (build-system ruby-build-system) + (native-inputs (list bundler + ruby-cane + ruby-elasticsearch + ruby-minitest + ruby-minitest-reporters + ruby-mocha + ruby-pry + ruby-pry-byebug + ruby-rspec + ruby-shoulda-context + ruby-simplecov + ruby-test-unit + ruby-yard)) + (arguments + (list #:tests? #f ;FIXME Check cannot load mocha/setup + #:phases #~(modify-phases %standard-phases + (add-before 'check 'update-rake + (lambda _ + (substitute* "elasticsearch-dsl.gemspec" + (("12\\.3") + "13.0.6") + (("~> 2") + "~> 3"))))))) + (synopsis "A Ruby DSL builder for Elasticsearch") + (description "This package provides a Ruby DSL builder for Elasticsearch") + (home-page + "https://www.elastic.co/guide/en/elasticsearch/client/ruby-api/current/index.html") + (license #f))) + +(define-public ruby-elastic-transport + (package + (name "ruby-elastic-transport") + (version "8.2.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "elastic-transport" version)) + (sha256 + (base32 + "1vqmj97gy9ddk1lm274bvgy3xqwrsih9qyndv6gfzcihyr43sf6v")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-faraday ruby-multi-json)) + (native-inputs (list bundler + ruby-cane + ruby-curb + ruby-hashie + ruby-minitest + ruby-minitest-reporters + ruby-mocha + ruby-pry + ruby-pry-byebug + ;; ruby-require-prof TODO Package + ;; ruby-prof TODO Package + ruby-rspec + ruby-shoulda-context + ruby-simplecov + ruby-test-unit + ruby-yard)) + (synopsis + "Low level Ruby client for Elastic. See the `elasticsearch` or `elastic-enterprise-search` gems for full integration. +") + (description + "Low level Ruby client for Elastic. See the `elasticsearch` or +`elastic-enterprise-search` gems for full integration.") + (home-page "https://github.com/elastic/elastic-transport-ruby") + (license license:asl2.0))) + +(define-public ruby-elasticsearch-api + (package + (name "ruby-elasticsearch-api") + (version "8.9.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "elasticsearch-api" version)) + (sha256 + (base32 + "1070v75cirlg7s4wjb5s4xlnqkg4pld9ddp49jwbij67fc0bn8qy")))) + (build-system ruby-build-system) + (native-inputs (list ruby-activesupport + ruby-cane + ruby-jbuilder + ruby-jsonify + ruby-minitest + ruby-mocha + ruby-pry-byebug + ruby-rspec + ruby-yard)) + (propagated-inputs (list ruby-multi-json)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Circular dep with ruby-elasticsearch + (delete 'check)))) + (synopsis + "Ruby API for Elasticsearch. See the `elasticsearch` gem for full integration. +") + (description + "Ruby API for Elasticsearch. See the `elasticsearch` gem for full integration.") + (home-page + "https://www.elastic.co/guide/en/elasticsearch/client/ruby-api/current/index.html") + (license #f))) + +(define-public ruby-elasticsearch + (package + (name "ruby-elasticsearch") + (version "8.9.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "elasticsearch" version)) + (sha256 + (base32 + "1vnn34w1i4fhiif2lkp35fdjzvpnfp0smp8xk41m7c6vpsw02qvg")))) + (build-system ruby-build-system) + (native-inputs (list ruby-yard ruby-byebug ruby-rspec ruby-webmock)) + (arguments + (list #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "rake" "test:unit")))))) + (propagated-inputs (list ruby-elasticsearch-api ruby-elastic-transport)) + (synopsis "Ruby integrations for Elasticsearch (client, API, etc.) +") + (description "Ruby integrations for Elasticsearch (client, API, etc.)") + (home-page + "https://www.elastic.co/guide/en/elasticsearch/client/ruby-api/current/index.html") + (license #f))) + +(define-public ruby-chewy + (package + (name "ruby-chewy") + (version "7.3.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "chewy" version)) + (sha256 + (base32 + "087ybm1384f5sscvqwk3pcswxycy4y5q11m6587fidqvdc0ipkma")))) + (build-system ruby-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Missing dependencies + (delete 'check)))) + (propagated-inputs (list ruby-activesupport ruby-elasticsearch + ruby-elasticsearch-dsl)) + (synopsis + "Chewy provides functionality for Elasticsearch index handling, documents import mappings and chainable query DSL") + (description + "Chewy provides functionality for Elasticsearch index handling, documents import +mappings and chainable query DSL") + (home-page "https://github.com/toptal/chewy") + (license license:expat))) + +(define-public ruby-charlock-holmes + (package + (name "ruby-charlock-holmes") + (version "0.7.7") + (source (origin + (method url-fetch) + (uri (rubygems-uri "charlock_holmes" version)) + (sha256 + (base32 + "0hybw8jw9ryvz5zrki3gc9r88jqy373m6v46ynxsdzv1ysiyr40p")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rake-compiler ruby-rake which)) + (inputs (list icu4c)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "charlock_holmes provides binary and text detection as well as text transcoding using libicu") + (description + "charlock_holmes provides binary and text detection as well as text transcoding +using libicu") + (home-page "https://github.com/brianmario/charlock_holmes") + (license license:expat))) + +(define-public ruby-browser + (package + (name "ruby-browser") + (version "5.3.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "browser" version)) + (sha256 + (base32 + "0g4bcpax07kqqr9cp7cjc7i0pcij4nqpn1rdsg2wdwhzf00m6x32")))) + (build-system ruby-build-system) + (native-inputs (list bundler + ruby-minitest + ruby-minitest-autotest + ruby-minitest-utils + ruby-pry-meta + ruby-rack-test + ruby-rails + ruby-rubocop-minimal + ruby-rubocop-fnando + ruby-simplecov)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME tzinfo-data required, but not found + (delete 'check)))) + (synopsis "Do some browser detection with Ruby.") + (description "Do some browser detection with Ruby.") + (home-page "https://github.com/fnando/browser") + (license license:expat))) + +(define-public ruby-jsonapi-renderer + (package + (name "ruby-jsonapi-renderer") + (version "0.2.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "jsonapi-renderer" version)) + (sha256 + (base32 + "0ys4drd0k9rw5ixf8n8fx8v0pjh792w4myh0cpdspd317l1lpi5m")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Efficiently render JSON API documents.") + (description "Efficiently render JSON API documents.") + (home-page "https://github.com/jsonapi-rb/jsonapi-renderer") + (license license:expat))) + +(define-public ruby-case-transform + (package + (name "ruby-case-transform") + (version "0.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "case_transform" version)) + (sha256 + (base32 + "0fzyws6spn5arqf6q604dh9mrj84a36k5hsc8z7jgcpfvhc49bg2")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-activesupport)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Extraction of the key_transform abilities of ActiveModelSerializers") + (description + "Extraction of the key_transform abilities of @code{ActiveModelSerializers}") + (home-page "https://github.com/NullVoxPopuli/case_transform") + (license license:expat))) + +(define-public ruby-active-model-serializers + (package + (name "ruby-active-model-serializers") + (version "0.10.13") + (source (origin + (method url-fetch) + (uri (rubygems-uri "active_model_serializers" version)) + (sha256 + (base32 + "0xdp7cpj3yj3wl4vj0nqq44kzjavlxi1wq3cf9zp0whkir0ym0gy")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-actionpack ruby-activemodel + ruby-case-transform ruby-jsonapi-renderer)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "ActiveModel::Serializers allows you to generate your JSON in an object-oriented and convention-driven manner.") + (description + "@code{ActiveModel::Serializers} allows you to generate your JSON in an +object-oriented and convention-driven manner.") + (home-page "https://github.com/rails-api/active_model_serializers") + (license license:expat))) + +(define-public ruby-blurhash + (package + (name "ruby-blurhash") + (version "0.1.7") + (source (origin + (method url-fetch) + (uri (rubygems-uri "blurhash" version)) + (sha256 + (base32 + "057afgqy73n8vm7k3cr4pbwm1hhqnm58lp4x7bgm5wzbs39m7xf8")))) + (build-system ruby-build-system) + (native-inputs (list ruby-diff-lcs + ruby-rspec + ruby-rspec-support + ruby-rspec-mocks + ruby-rspec-expectations + ruby-rspec-core + ruby-rake-compiler + ruby-rake)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Check is unable to find spec_helper + (delete 'check)))) + (synopsis + "Encode an image as a small string that can saved in the database and used to show a blurred preview before the real image loads") + (description + "Encode an image as a small string that can saved in the database and used to +show a blurred preview before the real image loads") + (home-page "https://github.com/Gargron/blurhash") + (license license:expat))) + +(define-public ruby-climate-control + (package + (name "ruby-climate-control") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "climate_control" version)) + (sha256 + (base32 + "198aswdyqlvcw9jkd95b7b8dp3fg0wx89kd1dx9wia1z36b1icin")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rspec ruby-rake ruby-simplecov ruby-standard)) + (arguments + (list #:phases #~(modify-phases %standard-phases + (delete 'check)))) + (synopsis "Modify your ENV") + (description "Modify your ENV") + (home-page "https://github.com/thoughtbot/climate_control") + (license license:expat))) + +(define-public ruby-terrapin + (package + (name "ruby-terrapin") + (version "0.6.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "terrapin" version)) + (sha256 + (base32 + "0p18f05r0c5s70571gqig3z2ym74wx79s6rd45sprp207bqskzn9")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rspec ruby-activesupport ruby-pry)) + (propagated-inputs (list ruby-climate-control)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check, + (delete 'check)))) + (synopsis "Run shell commands safely, even with user-supplied values") + (description "Run shell commands safely, even with user-supplied values") + (home-page "https://github.com/thoughtbot/terrapin") + (license license:expat))) + +(define-public ruby-kt-paperclip + (package + (name "ruby-kt-paperclip") + (version "7.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "kt-paperclip" version)) + (sha256 + (base32 + "0qrv9xyxxhxr482p25f3m7nfghw66i8jl02hy9b6pwam8m1knngp")))) + (build-system ruby-build-system) + (native-inputs (list ruby-activerecord + ruby-appraisal + ruby-aruba + ;; ruby-aws-sdk-s3 TODO Package? Lmao + ruby-capybara + ruby-cucumber-expressions + ;; ruby-cucumber-rails TODO Package + ;; ruby-fakeweb TODO Package + ;; ruby-fog-aws TODO Package + ;; ruby-fog-local TODO Package + ;; ruby-generator-spec TODO Package + ruby-launchy + ruby-nokogiri + ruby-railties + ruby-rspec + ruby-shoulda + ruby-timecop)) + (propagated-inputs (list ruby-activemodel ruby-activesupport ruby-marcel + ruby-mime-types ruby-terrapin)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check, cannot build test + (delete 'check)))) + (synopsis "Easy upload management for ActiveRecord") + (description "Easy upload management for @code{ActiveRecord}") + (home-page "https://github.com/kreeti/kt-paperclip") + (license license:expat))) + +(define-public ruby-excon + (package + (name "ruby-excon") + (version "0.100.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "excon" version)) + (sha256 + (base32 + "08r6qgbpkxxsihjmlspk3l1sr69q5hx35p1l4wp7rmkbzys89867")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "EXtended http(s) CONnections") + (description "EXtended http(s) CONnections") + (home-page "https://github.com/excon/excon") + (license license:expat))) + +(define-public ruby-fog-core + (package + (name "ruby-fog-core") + (version "2.3.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "fog-core" version)) + (sha256 + (base32 + "06m6hxq8vspx9h9bgc2s19m56jzasvl45vblrfv1q5h1qg1k6amw")))) + (build-system ruby-build-system) + (native-inputs (list ruby-minitest ruby-minitest-stub-const)) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-before 'check 'remove-bad-spec-tests + (lambda _ + (begin + ;; Requires disk access + (delete-file "spec/core/cache_spec.rb") + ;; Fails test relating to accessing the filesystem + ;; TODO Create a patch for credentials_spec to + ;; remove bad test + (delete-file "spec/credentials_spec.rb"))))))) + (propagated-inputs (list ruby-builder ruby-excon ruby-formatador + ruby-mime-types)) + (synopsis "Shared classes and tests for fog providers and services.") + (description "Shared classes and tests for fog providers and services.") + (home-page "https://github.com/fog/fog-core") + (license license:expat))) + +(define-public ruby-pghero + (package + (name "ruby-pghero") + (version "3.3.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "pghero" version)) + (sha256 + (base32 + "002v32dzyyr29xd9cdsqp55g5gx19skvq9b4a4hr9lrs4i1xsavm")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-activerecord)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "A performance dashboard for Postgres") + (description "This package provides a performance dashboard for Postgres") + (home-page "https://github.com/ankane/pghero") + (license license:expat))) + +(define-public ruby-haml-rails + (package + (name "ruby-haml-rails") + (version "2.1.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "haml-rails" version)) + (sha256 + (base32 + "1sjrdwc4azzfpsp2xk0365z031482gcrs0c54d5wx0igkqca0fr7")))) + (build-system ruby-build-system) + (native-inputs (list bundler ruby-appraisal ruby-html2haml ruby-rails)) + (propagated-inputs (list ruby-actionpack ruby-activesupport ruby-haml + ruby-railties)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME uninitialized constant bundler + ;; if we run the test with bundlers, the issue gets + ;; replaced by a tzdata missing errror + (delete 'check)))) + (synopsis + "Haml-rails provides Haml generators for Rails 5. It also enables Haml as the templating engine for you, so you don't have to screw around in your own application.rb when your Gemfile already clearly indicated what templating engine you have installed. Hurrah.") + (description + "Haml-rails provides Haml generators for Rails 5. It also enables Haml as the +templating engine for you, so you don't have to screw around in your own +application.rb when your Gemfile already clearly indicated what templating +engine you have installed. Hurrah.") + (home-page "https://github.com/haml/haml-rails") + (license license:expat))) + +(define-public ruby-redis-client + (package + (name "ruby-redis-client") + (version "0.15.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "redis-client" version)) + (sha256 + (base32 + "0fbs2fbl1g5lra43qk6rawbvynj2qgdzyx1gnjsjcxbl8247bahl")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rake-compiler ruby-rubocop-rake)) + (propagated-inputs (list ruby-connection-pool)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Check is broken when trying to find vendored stuff + (delete 'check)))) + (synopsis "Simple low-level client for Redis 6+") + (description "Simple low-level client for Redis 6+") + (home-page "https://github.com/redis-rb/redis-client") + (license license:expat))) + +(define-public ruby-standardrb + (package + (name "ruby-standardrb") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "standardrb" version)) + (sha256 + (base32 + "0b0z6pipiajdday01zsr98b817jhyd328zimgslrfklz8az2h4vs")))) + (build-system ruby-build-system) + (native-inputs (list bundler ruby-rake)) + (propagated-inputs (list ruby-standard)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Broken check, cannot build test + (delete 'check)))) + (synopsis "Alias for the standard gem, which has a standardrb binary") + (description "Alias for the standard gem, which has a standardrb binary") + (home-page "https://github.com/testdouble/standardrb") + (license license:expat))) + +(define-public ruby-appraisal + (package + (name "ruby-appraisal") + (version "2.5.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "appraisal" version)) + (sha256 + (base32 + "1knkxrjagaqf418lkgd7xvfb5rh143d19ld8vfq16y8jpqhr561n")))) + (build-system ruby-build-system) + (native-inputs (list ruby-thor ruby-activesupport ruby-rspec)) + (propagated-inputs (list bundler ruby-rake ruby-thor)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Check does not see thor + (delete 'check)))) + (synopsis + "Appraisal integrates with bundler and rake to test your library against different versions of dependencies in repeatable scenarios called \"appraisals.\"") + (description + "Appraisal integrates with bundler and rake to test your library against +different versions of dependencies in repeatable scenarios called \"appraisals.\"") + (home-page "http://github.com/thoughtbot/appraisal") + (license license:expat))) + +(define-public ruby-faker + (package + (name "ruby-faker") + (version "3.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "faker" version)) + (sha256 + (base32 + "1i3l58jrcapkp70v3swr0x4s6bj1101920al50wsaaj9dv0vhvm7")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-i18n)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Faker, a port of Data::Faker from Perl, is used to easily generate fake data: names, addresses, phone numbers, etc.") + (description + "Faker, a port of Data::Faker from Perl, is used to easily generate fake data: +names, addresses, phone numbers, etc.") + (home-page "https://github.com/faker-ruby/faker") + (license license:expat))) + +(define-public ruby-database-cleaner-core + (package + (name "ruby-database-cleaner-core") + (version "2.0.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "database_cleaner-core" version)) + (sha256 + (base32 + "0v44bn386ipjjh4m2kl53dal8g4d41xajn2jggnmjbhn6965fil6")))) + (build-system ruby-build-system) + (native-inputs (list bundler ruby-rake ruby-rspec ruby-cucumber + ruby-activesupport)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; Core dep + (delete 'check)))) + (synopsis + "Strategies for cleaning databases. Can be used to ensure a clean slate for testing.") + (description + "Strategies for cleaning databases. Can be used to ensure a clean slate for +testing.") + (home-page "https://github.com/DatabaseCleaner/database_cleaner") + (license license:expat))) + +(define-public ruby-database-cleaner-active-record + (package + (name "ruby-database-cleaner-active-record") + (version "2.1.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "database_cleaner-active_record" version)) + (sha256 + (base32 + "12hdsqnws9gyc9sxiyc8pjiwr0xa7136m1qbhmd1pk3vsrrvk13k")))) + (build-system ruby-build-system) + (native-inputs (list bundler ruby-appraisal ruby-pg ruby-rspec + ruby-simplecov)) + (propagated-inputs (list ruby-activerecord ruby-database-cleaner-core)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Strategies for cleaning databases using ActiveRecord. Can be used to ensure a clean state for testing.") + (description + "Strategies for cleaning databases using @code{ActiveRecord.} Can be used to +ensure a clean state for testing.") + (home-page + "https://github.com/DatabaseCleaner/database_cleaner-active_record") + (license license:expat))) + +(define-public ruby-database-cleaner + (package + (name "ruby-database-cleaner") + (version "2.0.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "database_cleaner" version)) + (sha256 + (base32 + "1507hrvzcq7d0spnffmxbihqpnn1lgkgdbbrplb3l4f76l5m0mp3")))) + (build-system ruby-build-system) + (native-inputs (list ruby-activesupport + ruby-cucumber + ruby-guard + ruby-sqlite3 + ruby-rspec + ruby-rspec-core)) + (propagated-inputs (list ruby-database-cleaner-active-record)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME cannot find rspec/core/rake_task + (delete 'check)))) + (synopsis + "Strategies for cleaning databases. Can be used to ensure a clean slate for testing.") + (description + "Strategies for cleaning databases. Can be used to ensure a clean slate for +testing.") + (home-page "https://github.com/DatabaseCleaner/database_cleaner") + (license license:expat))) + +(define-public ruby-bourne + (package + (name "ruby-bourne") + (version "1.6.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "bourne" version)) + (sha256 + (base32 + "19957ad42bz3zngr83k1d65mnrm5daw6njnqc6kfsyiyw4g4g2f8")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-mocha)) + (synopsis + "Extends mocha to allow detailed tracking and querying of + stub and mock invocations. Allows test spies using the have_received rspec + matcher and assert_received for Test::Unit. Extracted from the + jferris-mocha fork.") + (description + "Extends mocha to allow detailed tracking and querying of stub and mock +invocations. Allows test spies using the have_received rspec matcher and +assert_received for Test::Unit. Extracted from the jferris-mocha fork.") + (home-page "http://github.com/thoughtbot/bourne") + (license #f))) + +(define-public ruby-private-address-check + (package + (name "ruby-private-address-check") + (version "0.5.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "private_address_check" version)) + (sha256 + (base32 + "05phz0vscfh9chv90yc9091pifw3cpwkh76flnhrmvja1q3na4cy")))) + (build-system ruby-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; Tests require internet access + (delete 'check)))) + (synopsis + "Checks if a IP or hostname would cause a request to a private network (RFC 1918)") + (description + "Checks if a IP or hostname would cause a request to a private network (RFC 1918)") + (home-page "https://github.com/jtdowney/private_address_check") + (license license:expat))) + +(define-public ruby-strong-migrations + (package + (name "ruby-strong-migrations") + (version "1.6.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "strong_migrations" version)) + (sha256 + (base32 + "11rwdn7wlccznw5r54ngnf6ynkngjf1qg3x8z2p2djwihf7x9gw4")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-activerecord)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Catch unsafe migrations in development") + (description "Catch unsafe migrations in development") + (home-page "https://github.com/ankane/strong_migrations") + (license license:expat))) + +(define-public ruby-bson + (package + (name "ruby-bson") + (version "4.15.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "bson" version)) + (sha256 + (base32 + "19vgs9rzzyvd7jfrzynjnc6518q0ffpfciyicfywbp77zl8nc9hk")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rake-compiler + ruby-yard + + ruby-rspec + ruby-json + ruby-activesupport + ruby-ruby-prof + ruby-byebug + ruby-debug + + ruby-rubocop-minimal + ruby-rubocop-performance-minimal + ruby-rubocop-rake + ruby-rubocop-rspec + + ruby-fuubar + ;; ruby-rfc TODO Package + )) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Check cannot locate gemfile + (delete 'check)))) + (synopsis "A fully featured BSON specification implementation in Ruby") + (description + "This package provides a fully featured BSON specification implementation in Ruby") + (home-page "https://github.com/mongodb/bson-ruby") + (license license:asl2.0))) + +(define-public ruby-curb + (package + (name "ruby-curb") + (version "1.0.5") + (source (origin + (method url-fetch) + (uri (rubygems-uri "curb" version)) + (sha256 + (base32 + "1lgga9ina9gnpp9ycj8lpqkc5hm5qlxb41s4pfg0w6fnnpgmairc")))) + (build-system ruby-build-system) + (native-inputs (list ruby-mixlib-shellout ruby-ruby-memcheck + ruby-test-unit ruby-webrick)) + (inputs (list curl)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Check requires docker... + (delete 'check)))) + (synopsis + "Curb (probably CUrl-RuBy or something) provides Ruby-language bindings for the libcurl(3), a fully-featured client-side URL transfer library. cURL and libcurl live at http://curl.haxx.se/") + (description + "Curb (probably @code{CUrl-RuBy} or something) provides Ruby-language bindings +for the libcurl(3), a fully-featured client-side URL transfer library. +@code{cURL} and libcurl live at http://curl.haxx.se/") + (home-page "https://github.com/taf2/curb") + (license license:expat))) + +(define-public ruby-chef-utils + (package + (name "ruby-chef-utils") + (version "18.2.7") + (source (origin + (method url-fetch) + (uri (rubygems-uri "chef-utils" version)) + (sha256 + (base32 + "1q5by0q1i443lds626cyq78jhzkwb6b1f8vcbv82q790q06vg1w9")))) + (build-system ruby-build-system) + (native-inputs (list ruby-rspec)) + (propagated-inputs (list ruby-fauxhai-ng ruby-concurrent-ruby)) + (arguments + (list #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "rake" "spec")))))) + (synopsis "Basic utility functions for Core Chef Infra development") + (description "Basic utility functions for Core Chef Infra development") + (home-page "https://github.com/chef/chef/tree/main/chef-utils") + (license license:asl2.0))) + +(define-public ruby-mixlib-shellout + (package + (name "ruby-mixlib-shellout") + (version "3.2.7") + (source (origin + (method url-fetch) + (uri (rubygems-uri "mixlib-shellout" version)) + (sha256 + (base32 + "0zkwg76y96nkh1mv0k92ybq46cr06v1wmic16129ls3yqzwx3xj6")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-chef-utils)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Run external commands on Unix or Windows") + (description "Run external commands on Unix or Windows") + (home-page "https://github.com/chef/mixlib-shellout") + (license #f))) + +(define-public ruby-fauxhai-ng + (package + (name "ruby-fauxhai-ng") + (version "9.3.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "fauxhai-ng" version)) + (sha256 + (base32 + "0x7pjin0lkg3b94vihyx1pp75w579kyywzngvpfkymaw196gjwig")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-net-ssh)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Easily mock out ohai data") + (description "Easily mock out ohai data") + (home-page "https://github.com/chefspec/fauxhai") + (license license:expat))) + +(define-public ruby-semver2 + (package + (name "ruby-semver2") + (version "3.4.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "semver2" version)) + (sha256 + (base32 + "1g7w95kckdz00pi3yrvl6ymbnl5dvxcmfb4kkkp888jcq4fawdvg")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "maintain versions as per http://semver.org") + (description "maintain versions as per http://semver.org") + (home-page "https://github.com/haf/semver") + (license #f))) + +(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) + (native-inputs (list ruby-devtools)) + (propagated-inputs (list ruby-thread-safe)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Dep conflict with rake version + (delete 'check)))) + (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 url-fetch) + (uri (rubygems-uri "github_api" version)) + (sha256 + (base32 + "1kvwf76hkz07s7iw7hlbhwh83zpknf4mcrb6y0pjdrllqb042h70")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-addressable ruby-descendants-tracker + ruby-faraday ruby-hashie ruby-oauth2)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + " Ruby client that supports all of the GitHub API methods. It\"s build in a modular way, that is, you can either instantiate the whole api wrapper Github.new or use parts of it e.i. Github::Client::Repos.new if working solely with repositories is your main concern. Intuitive query methods allow you easily call API endpoints. ") + (description + "Ruby client that supports all of the @code{GitHub} API methods. It\"s build in a +modular way, that is, you can either instantiate the whole api wrapper +Github.new or use parts of it e.i. Github::Client::Repos.new if working solely +with repositories is your main concern. Intuitive query methods allow you +easily call API endpoints.") + (home-page "http://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) + (native-inputs (list ruby-activesupport ruby-shoulda + ;; ruby-mhennemeyer-output_catcher TODO Package + ;; ruby-redgreen TODO Package + ruby-test-construct)) + (propagated-inputs (list bundler + ruby-git + ruby-github-api + ruby-highline + ruby-nokogiri + ruby-rake + ruby-rdoc + ruby-semver2 + ruby-timecop)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Seems + (delete 'check)))) + (synopsis + "Simple and opinionated helper for creating Rubygem projects on GitHub") + (description + "Simple and opinionated helper for creating Rubygem projects on @code{GitHub}") + (home-page "http://github.com/technicalpickles/jeweler") + (license license:expat))) + +(define-public ruby-yardstick + (package + (name "ruby-yardstick") + (version "0.9.9") + (source (origin + (method url-fetch) + (uri (rubygems-uri "yardstick" version)) + (sha256 + (base32 + "0vn0br8x0n7b9i2raz79g480cn711zichs8rvijb3h1pk9m1d6n3")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-yard)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; XXX This and ruby-devtools have a circular dep + (delete 'check)))) + (synopsis "Measure YARD documentation coverage") + (description "Measure YARD documentation coverage") + (home-page "https://github.com/dkubb/yardstick") + (license license:expat))) + +(define-public ruby-kwalify + (package + (name "ruby-kwalify") + (version "0.7.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "kwalify" version)) + (sha256 + (base32 + "1ngxg3ysq5vip9dn3d32ajc7ly61kdin86hfycm1hkrcvkkn1vjf")))) + (build-system ruby-build-system) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + " Kwalify is a parser, schema validator, and data binding tool for YAML and JSON.") + (description + "Kwalify is a parser, schema validator, and data binding tool for YAML and JSON.") + (home-page "http://www.kuwata-lab.com/kwalify/") + (license #f))) + +(define-public ruby-reek + (package + (name "ruby-reek") + (version "6.1.4") + (source (origin + (method url-fetch) + (uri (rubygems-uri "reek" version)) + (sha256 + (base32 + "12nhabvdgnjz4613jxakn27mh9hbqacl6yiri4yk9vc0hjdrcrlr")))) + (build-system ruby-build-system) + (native-inputs (list ruby-aruba + ruby-cucumber + ruby-kramdown + ruby-kramdown-parser-gfm + ruby-rspec + ruby-rspec-core + ruby-rubocop-minimal + ruby-rubocop-performance-minimal + ruby-rubocop-rspec + ruby-simplecov + ruby-yard)) + (propagated-inputs (list ruby-kwalify ruby-parser ruby-rainbow)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME ruby-reek unable to find spec tests + (delete 'check)))) + (synopsis + "Reek is a tool that examines Ruby classes, modules and methods and reports any code smells it finds.") + (description + "Reek is a tool that examines Ruby classes, modules and methods and reports any +code smells it finds.") + (home-page "https://github.com/troessner/reek") + (license license:expat))) + +(define-public ruby-procto + (package + (name "ruby-procto") + (version "0.0.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "procto" version)) + (sha256 + (base32 + "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c")))) + (build-system ruby-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; XXX This and ruby-devtools have a circular dep + (delete 'check)))) + (synopsis "Turns your object into a method object") + (description "Turns your object into a method object") + (home-page "https://github.com/snusnu/procto") + (license license:expat))) + +(define-public ruby-flog + (package + (name "ruby-flog") + (version "4.7.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "flog" version)) + (sha256 + (base32 + "0inm4qcwxvp139q95xfmn044kapqw4lxzjzh76nw1r2qi5b1x8xj")))) + (build-system ruby-build-system) + (native-inputs (list ruby-hoe ruby-minitest)) + (propagated-inputs (list ruby-path-expander ruby-ruby-parser + ruby-sexp-processor)) + (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.") + (description + "Flog reports the most tortured code in an easy to read pain report. The higher +the score, the more pain the code is in.") + (home-page "http://ruby.sadi.st/") + (license license:expat))) + +(define-public ruby-path-expander + (package + (name "ruby-path-expander") + (version "1.1.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "path_expander" version)) + (sha256 + (base32 + "07r30daizhgxblg5zip5q10d4khbzifx9w02184kxy5vfl1nxkl5")))) + (build-system ruby-build-system) + (native-inputs (list ruby-hoe ruby-minitest)) + (synopsis + "PathExpander helps pre-process command-line arguments expanding +directories into their constituent files. It further helps by +providing additional mechanisms to make specifying subsets easier +with path subtraction and allowing for command-line arguments to be +saved in a file. + +NOTE: this is NOT an options processor. It is a path processor +(basically everything else besides options). It does provide a +mechanism for pre-filtering cmdline options, but not with the intent +of actually processing them in PathExpander. Use OptionParser to +deal with options either before or after passing ARGV through +PathExpander.") + (description + "@code{PathExpander} helps pre-process command-line arguments expanding +directories into their constituent files. It further helps by providing +additional mechanisms to make specifying subsets easier with path subtraction +and allowing for command-line arguments to be saved in a file. NOTE: this is +NOT an options processor. It is a path processor (basically everything else +besides options). It does provide a mechanism for pre-filtering cmdline +options, but not with the intent of actually processing them in +@code{PathExpander.} Use @code{OptionParser} to deal with options either before +or after passing ARGV through @code{PathExpander.}") + (home-page "https://github.com/seattlerb/path_expander") + (license license:expat))) + +(define-public ruby-flay + (package + (name "ruby-flay") + (version "2.13.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "flay" version)) + (sha256 + (base32 + "0fnpw565ddvzahn56b8299vjxsrpc4qwrrjslssiycsc1s0bvq6z")))) + (build-system ruby-build-system) + (native-inputs (list ruby-hoe ruby-minitest)) + (propagated-inputs (list ruby-erubi ruby-path-expander ruby-ruby-parser + ruby-sexp-processor)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Check has a failure + (delete 'check)))) + (synopsis + "Flay analyzes code for structural similarities. Differences in literal +values, variable, class, method names, whitespace, programming style, +braces vs do/end, etc are all ignored. Making this totally rad.") + (description + "Flay analyzes code for structural similarities. Differences in literal values, +variable, class, method names, whitespace, programming style, braces vs do/end, +etc are all ignored. Making this totally rad.") + (home-page "http://ruby.sadi.st/") + (license license:expat))) + +(define-public ruby-concord + (package + (name "ruby-concord") + (version "0.1.6") + (source (origin + (method url-fetch) + (uri (rubygems-uri "concord" version)) + (sha256 + (base32 + "1vznyzcd3z7wiwjfgr941nq405kd7zm5vjb3sv2mzbbrcla9qkhq")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-adamantium ruby-equalizer)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Helper for object composition") + (description "Helper for object composition") + (home-page "https://github.com/mbj/concord") + (license license:expat))) + +(define-public ruby-equalizer + (package + (name "ruby-equalizer") + (version "0.0.11") + (source (origin + (method url-fetch) + (uri (rubygems-uri "equalizer" version)) + (sha256 + (base32 + "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4")))) + (build-system ruby-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; XXX This and ruby-devtools have a circular dep + (delete 'check)))) + (synopsis "Module to define equality, equivalence and inspection methods") + (description + "Module to define equality, equivalence and inspection methods") + (home-page "https://github.com/dkubb/equalizer") + (license license:expat))) + +(define-public ruby-anima + (package + (name "ruby-anima") + (version "0.3.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "anima" version)) + (sha256 + (base32 + "007wrc8px9ql4nqp34w0ffb9nj2nrbrcxvy036ng28bpbig7fzs6")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-abstract-type ruby-adamantium ruby-equalizer)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Initialize object attributes via attributes hash") + (description "Initialize object attributes via attributes hash") + (home-page "http://github.com/mbj/anima") + (license license:expat))) + +(define-public ruby-memoizable + (package + (name "ruby-memoizable") + (version "0.4.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "memoizable" version)) + (sha256 + (base32 + "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c")))) + (build-system ruby-build-system) + (native-inputs (list ruby-coveralls ruby-simplecov ruby-rspec + ruby-yardstick)) + (propagated-inputs (list ruby-thread-safe)) + (synopsis "Memoize method return values") + (description "Memoize method return values") + (home-page "https://github.com/dkubb/memoizable") + (license license:expat))) + +(define-public ruby-ice-nine + (package + (name "ruby-ice-nine") + (version "0.11.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "ice_nine" version)) + (sha256 + (base32 + "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x")))) + (build-system ruby-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; XXX This and ruby-devtools have a circular dep + (delete 'check)))) + (synopsis "Deep Freeze Ruby Objects") + (description "Deep Freeze Ruby Objects") + (home-page "https://github.com/dkubb/ice_nine") + (license license:expat))) + +(define-public ruby-adamantium + (package + (name "ruby-adamantium") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "adamantium" version)) + (sha256 + (base32 + "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-ice-nine ruby-memoizable)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; XXX This and ruby-devtools have a circular dep + (delete 'check)))) + (synopsis "Immutable extensions to objects") + (description "Immutable extensions to objects") + (home-page "https://github.com/dkubb/adamantium") + (license license:expat))) + +(define-public ruby-abstract-type + (package + (name "ruby-abstract-type") + (version "0.0.7") + (source (origin + (method url-fetch) + (uri (rubygems-uri "abstract_type" version)) + (sha256 + (base32 + "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14")))) + (build-system ruby-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; XXX This and ruby-devtools have a circular dep + (delete 'check)))) + (synopsis "Module to declare abstract classes and methods") + (description "Module to declare abstract classes and methods") + (home-page "https://github.com/dkubb/abstract_type") + (license license:expat))) + +(define-public ruby-devtools + (package + (name "ruby-devtools") + (version "0.1.26") + (source (origin + (method url-fetch) + (uri (rubygems-uri "devtools" version)) + (sha256 + (base32 + "08c8j2zcq9hhxpz9wsyy9v8mfs4d4smyagi0qr398w1qryb6w4m0")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-abstract-type + ruby-adamantium + ruby-anima + ruby-concord + ruby-flay + ruby-flog + ruby-procto + ruby-rake + ruby-reek + ruby-rspec + ruby-rspec-core + ruby-rspec-its + ruby-rubocop + ruby-simplecov + ruby-yard + ruby-yardstick)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; XXX Devtools requires itself... + (delete 'check)))) + (synopsis "A metagem wrapping development tools") + (description "This package provides a metagem wrapping development tools") + (home-page "https://github.com/rom-rb/devtools") + (license license:expat))) + +(define-public ruby-jbuilder + (package + (name "ruby-jbuilder") + (version "2.11.5") + (source (origin + (method url-fetch) + (uri (rubygems-uri "jbuilder" version)) + (sha256 + (base32 + "1h58xgmp0fqpnd6mvw0zl0f76119v8lnf4xabqhckbzl6jrk8qpa")))) + (build-system ruby-build-system) + (native-inputs (list ruby-appraisal ruby-mocha)) + (propagated-inputs (list ruby-actionview ruby-activesupport)) + (synopsis "Create JSON structures via a Builder-style DSL") + (description "Create JSON structures via a Builder-style DSL") + (home-page "https://github.com/rails/jbuilder") + (license license:expat))) + +(define-public ruby-jsonify + (package + (name "ruby-jsonify") + (version "0.4.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "jsonify" version)) + (sha256 + (base32 + "069315dvs371dimqql87833qqfjhn91p29cviwawpg7bklz1xmb7")))) + (build-system ruby-build-system) + (native-inputs (list ruby-json ruby-rdiscount ruby-rspec ruby-tilt)) + (propagated-inputs (list ruby-multi-json)) + (arguments + (list #:phases #~(modify-phases %standard-phases + ;; FIXME Version mismatch for tilt + (delete 'check)))) + (synopsis "Turn Ruby objects into JSON -- correctly!") + (description "Turn Ruby objects into JSON -- correctly!") + (home-page "http://github.com/bsiggelkow/jsonify") + (license #f))) + +(define-public ruby-minitest-server + (package + (name "ruby-minitest-server") + (version "1.0.7") + (source (origin + (method url-fetch) + (uri (rubygems-uri "minitest-server" version)) + (sha256 + (base32 + "1gdpwv9zscgswaizs3mfqm6qz5qm0ywinnf8zqyzna1ypa62jmvc")))) + (build-system ruby-build-system) + (native-inputs (list ruby-hoe)) + (propagated-inputs (list ruby-minitest)) + (synopsis + "minitest-server provides a client/server setup with your minitest +process, allowing your test run to send its results directly to a +handler.") + (description + "minitest-server provides a client/server setup with your minitest process, +allowing your test run to send its results directly to a handler.") + (home-page "https://github.com/seattlerb/minitest-server") + (license license:expat))) + +(define-public ruby-minitest-autotest + (package + (name "ruby-minitest-autotest") + (version "1.1.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "minitest-autotest" version)) + (sha256 + (base32 + "1bd1j393667inbzcwwqw83swjpq2anj04gly03scniziamk9hmlm")))) + (build-system ruby-build-system) + (native-inputs (list ruby-hoe)) + (propagated-inputs (list ruby-minitest-server ruby-path-expander)) + (synopsis + "autotest is a continous testing facility meant to be used during +development. As soon as you save a file, autotest will run the +corresponding dependent tests. + +minitest-autotest is the latest incarnation of the venerable and wise +autotest. This time, it talks to minitest via minitest-server. As a +result, there is no output parsing. There are no regexps to tweak. +There's no cruft or overhead.") + (description + "autotest is a continous testing facility meant to be used during development. +As soon as you save a file, autotest will run the corresponding dependent tests. + minitest-autotest is the latest incarnation of the venerable and wise autotest. + This time, it talks to minitest via minitest-server. As a result, there is no +output parsing. There are no regexps to tweak. There's no cruft or overhead.") + (home-page "https://github.com/seattlerb/minitest-autotest") + (license license:expat))) + +(define-public ruby-minitest-utils + (package + (name "ruby-minitest-utils") + (version "0.4.8") + (source (origin + (method url-fetch) + (uri (rubygems-uri "minitest-utils" version)) + (sha256 + (base32 + "0ahzkky4jiycsixb4an68b5k0h15mlf8qfyx1cl125wivbc0r5h9")))) + (build-system ruby-build-system) + (native-inputs (list ruby-pry-meta ruby-rubocop-minimal ruby-rubocop-rake)) + (propagated-inputs (list ruby-minitest)) + (synopsis "Some utilities for your Minitest day-to-day usage.") + (description "Some utilities for your Minitest day-to-day usage.") + (home-page "http://github.com/fnando/minitest-utils") + (license #f))) + +(define-public ruby-pry-remote + (package + (name "ruby-pry-remote") + (version "0.1.8") + (source (origin + (method url-fetch) + (uri (rubygems-uri "pry-remote" version)) + (sha256 + (base32 + "10g1wrkcy5v5qyg9fpw1cag6g5rlcl1i66kn00r7kwqkzrdhd7nm")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-pry ruby-slop-3)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis "Connect to Pry remotely using DRb") + (description "Connect to Pry remotely using DRb") + (home-page "http://github.com/Mon-Ouie/pry-remote") + (license #f))) + +(define-public ruby-pry-meta + (package + (name "ruby-pry-meta") + (version "0.0.10") + (source (origin + (method url-fetch) + (uri (rubygems-uri "pry-meta" version)) + (sha256 + (base32 + "0mxw4x2b6gfgccw1vgxbilrn9yvb0310k11sxymlll8c63njvy5b")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-awesome-print ruby-pry ruby-pry-byebug + ruby-pry-remote)) + (arguments + (list #:tests? #f)) ;Metapackage + (synopsis "Meta package that requires several pry extensions.") + (description "Meta package that requires several pry extensions.") + (home-page "https://github.com/fnando/pry-meta") + (license #f))) + +(define-public ruby-rubocop-minitest + (package + (name "ruby-rubocop-minitest") + (version "0.31.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rubocop-minitest" version)) + (sha256 + (base32 + "1gm31ny25cpw9mwbwfxbg3wxzqkcykxk4pwxwdwbvxsc2yjh3fw7")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-rubocop)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Automatic Minitest code style checking tool. +A RuboCop extension focused on enforcing Minitest best practices and coding conventions. +") + (description + "Automatic Minitest code style checking tool. A @code{RuboCop} extension focused +on enforcing Minitest best practices and coding conventions.") + (home-page "https://docs.rubocop.org/rubocop-minitest/") + (license license:expat))) + +(define-public ruby-rubocop-fnando + (package + (name "ruby-rubocop-fnando") + (version "0.0.23") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rubocop-fnando" version)) + (sha256 + (base32 + "1zy73v7dqxbparvj08kwrlymfcnr2q47vgxm2671mygfprj6pva0")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-rubocop ruby-rubocop-minitest + ruby-rubocop-performance)) + (synopsis "Rubocop configuration") + (description "Rubocop configuration") + (home-page "https://github.com/fnando/rubocop-fnando") + (license license:expat))) + +(define-public ruby-html2haml + (package + (name "ruby-html2haml") + (version "2.3.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "html2haml" version)) + (sha256 + (base32 + "09w112pf7qgyphxvjm835vkib7lc3s33aasw7gy455k06bsym1xm")))) + (build-system ruby-build-system) + (native-inputs (list ruby-minitest ruby-simplecov)) + (propagated-inputs (list ruby-erubis ruby-haml ruby-nokogiri + ruby-ruby-parser)) + (arguments + (list #:phases #~(modify-phases %standard-phases + (add-before 'check 'update-deps + (lambda _ + (substitute* "html2haml.gemspec" + (("0.7.1") + "0.22.0"))))))) + (synopsis "Converts HTML into Haml") + (description "Converts HTML into Haml") + (home-page "http://haml.info") + (license license:expat))) + +(define-public ruby-database-cleaner-redis + (package + (name "ruby-database-cleaner-redis") + (version "2.0.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "database_cleaner-redis" version)) + (sha256 + (base32 + "16m6whf33sxcwgpzqasxnl6nvil57wqyc0ddf2710dsd2m7vdd0r")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-database-cleaner-core ruby-redis)) + (arguments + (list #:tests? #f)) ;no tests + (synopsis + "Strategies for cleaning databases using Redis. Can be used to ensure a clean state for testing.") + (description + "Strategies for cleaning databases using Redis. Can be used to ensure a clean +state for testing.") + (home-page "https://github.com/DatabaseCleaner/database_cleaner-redis") + (license license:expat))) + +(define-public ruby-with-model + (package + (name "ruby-with-model") + (version "2.1.6") + (source (origin + (method url-fetch) + (uri (rubygems-uri "with_model" version)) + (sha256 + (base32 + "1mzlqx35q54sj15lvh3r5j99681mclirjz4h54maq4wbwgri7dqs")))) + (build-system ruby-build-system) + (native-inputs (list bundler + ruby-minitest + ruby-rspec + ruby-rubocop-minimal + ruby-rubocop-rake + ruby-rubocop-rspec)) + (propagated-inputs (list ruby-activerecord)) + (synopsis "Dynamically build a model within an RSpec context") + (description "Dynamically build a model within an RSpec context") + (home-page "https://github.com/Casecommons/with_model") + (license license:expat))) + +(define-public ruby-statsd-ruby + (package + (name "ruby-statsd-ruby") + (version "1.5.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "statsd-ruby" version)) + (sha256 + (base32 + "028136c463nbravckxb1qi5c5nnv9r6vh2cyhiry423lac4xz79n")))) + (build-system ruby-build-system) + (native-inputs (list ruby-minitest ruby-simplecov ruby-yard)) + (arguments + (list #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "rake" "spec")))))) + (synopsis "A Ruby StatsD client (https://github.com/etsy/statsd)") + (description "This package provides a Ruby @code{StatsD} client +(https://github.com/etsy/statsd)") + (home-page "https://github.com/reinh/statsd") + (license license:expat))) + +(define-public ruby-nsa + (package + (name "ruby-nsa") + (version "0.2.8") + (source (origin + (method url-fetch) + (uri (rubygems-uri "nsa" version)) + (sha256 + (base32 + "1jzs1n71pi6najhs9h8jx156gzgk3h9bwjr60vazizwdz3mm69ia")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-activesupport ruby-concurrent-ruby + ruby-sidekiq ruby-statsd-ruby)) + (synopsis + "Listen to your Rails ActiveSupport::Notifications and deliver to a Statsd compatible backend") + (description + "Listen to your Rails @code{ActiveSupport::Notifications} and deliver to a Statsd +compatible backend") + (home-page "https://github.com/localshred/nsa") + (license license:expat)))