diff options
author | Efraim Flashner | 2021-02-17 09:16:51 +0200 |
---|---|---|
committer | Efraim Flashner | 2021-02-17 09:16:51 +0200 |
commit | aff7b7ebbe5a8258125a1165f07d14098b6907f2 (patch) | |
tree | e10ec226636001fff650e7ce800ddd376667078d /gn/packages/ruby.scm | |
parent | 42c3bbbfbfb2c14c99ab26bd6ca98576e6dd319b (diff) | |
download | guix-bioinformatics-aff7b7ebbe5a8258125a1165f07d14098b6907f2.tar.gz |
WIP ruby packages
Diffstat (limited to 'gn/packages/ruby.scm')
-rw-r--r-- | gn/packages/ruby.scm | 2235 |
1 files changed, 2235 insertions, 0 deletions
diff --git a/gn/packages/ruby.scm b/gn/packages/ruby.scm index 8ad537a..0be4157 100644 --- a/gn/packages/ruby.scm +++ b/gn/packages/ruby.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl> +;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,7 @@ #:use-module (gnu packages libffi) #:use-module (gnu packages python) #:use-module (gnu packages ragel) + #:use-module (gnu packages rails) #:use-module (gnu packages ruby) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) @@ -395,3 +397,2236 @@ a history.") ") (home-page "https://github.com/redis/redis-rb") (license license:expat))) + + + + + +(define-public ruby-seed-fu + (package + (name "ruby-seed-fu") + (version "2.3.9") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "seed-fu" version)) + (sha256 + (base32 + "0y7lzcshsq6i20qn1p8zczir4fivr6nbl1km91ns320vvh92v43d")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no tests + (propagated-inputs + `(("ruby-activerecord" ,ruby-activerecord) + ("ruby-activesupport" ,ruby-activesupport))) + (synopsis "Advanced seed data handling for Rails") + (description + "Seed Fu is an attempt to once and for all solve the problem of inserting +and maintaining seed data in a database. It uses a variety of techniques +gathered from various places around the web and combines them to create what is +hopefully the most robust seed data system around.") + (home-page "https://github.com/mbleigh/seed-fu") + (license license:expat))) + +(define-public ruby-mini-mime + (package + (name "ruby-mini-mime") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "mini_mime" version)) + (sha256 + (base32 + "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha")))) + (build-system ruby-build-system) + (synopsis "Lightweight mime type lookup toy") + (description "This package provides a lightweight mime type lookup toy.") + (home-page "https://github.com/discourse/mini_mime") + (license license:expat))) + +(define-public ruby-mini-suffix + (package + (name "ruby-mini-suffix") + (version "0.3.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "mini_suffix" version)) + (sha256 + (base32 + "1r6pwyv1vpyza0rn1pyxls4qdw5jd3vg4k5dp1iaqa57n6fiqrvi")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "spec" + #:phases + (modify-phases %standard-phases + ;(add-after 'unpack 'remove-vendored-libraries + ; (lambda _ + ; (delete-file-recursively "vendor") #t)) + (add-after 'install 'replace-vendored-libraries + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vendor (string-append out "/lib/ruby/vendor_ruby/gems" + "/mini_suffix-" ,version "/vendor/"))) + (for-each delete-file (find-files vendor)) + (symlink (string-append (assoc-ref inputs "libpsl") + "/lib/libpsl.so") + (string-append vendor "libpsl.x86_64.so")) + #t))) + ) + #:tests? #f)) ; cannot load such file -- spec_helper + (propagated-inputs + `(("ruby-ffi" ,ruby-ffi))) + (inputs + `(("libpsl" ,libpsl))) + (native-inputs + `(("ruby-rake" ,ruby-rake) + ("ruby-rspec" ,ruby-rspec))) + (synopsis "FFI wrapper for libpsl") + (description "This package provides an FFI wrapper for libpsl in Ruby.") + (home-page "https://github.com/discourse/mini_suffix") + (license license:expat))) + +(define-public ruby-redis-namespace + (package + (name "ruby-redis-namespace") + (version "1.8.1") + (source + (origin + ;(method url-fetch) + ;(uri (rubygems-uri "redis-namespace" version)) + ;(sha256 + ; (base32 + ; "0k65fr7f8ciq7d9nwc5ziw1d32zsxilgmqdlj3359rz5jgb0f5y8")))) + (method git-fetch) + (uri (git-reference + (url "https://github.com/resque/redis-namespace") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dk8kgx6ii3xfv39x7m62bmahp29gv7pz8c8105mxqyxnx9pl525")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; cannot load such file -- rspec + (propagated-inputs + `(("ruby-redis" ,ruby-redis))) + (native-inputs + `( + ("ruby-rspec" ,ruby-rspec) + ("ruby-rspec-its" ,ruby-rspec-its) + )) + (synopsis "Namespace calls to Redis") + (description + "This package provides a @code{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-jsonapi-renderer + (package + (name "ruby-jsonapi-renderer") + (version "0.2.2") + (source + (origin + ;; No rakefile included in gem + (method git-fetch) + (uri (git-reference + (url "https://github.com/jsonapi-rb/jsonapi-renderer") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "11i4jbliidi7r04fg4g33hgn1yvfi1rjbsrc7m6gjj06zhflzn5s")))) + (build-system ruby-build-system) + (native-inputs + `(("ruby-rspec" ,ruby-rspec) + ("ruby-simplecov" ,ruby-simplecov))) + (synopsis "Render JSON API documents") + (description + "This package provides a ruby gem for rendering JSON API documents.") + (home-page "https://github.com/jsonapi-rb/jsonapi-renderer") + (license license:expat))) + +(define-public ruby-case-transform + (let ((commit "b957f9c933efa3894589af0ee7313660ebb552d8") + (revision "1")) + (package + (name "ruby-case-transform") + (version (git-version "0.2" revision commit)) + (source + (origin + ;; No rakefile included in gem + (method git-fetch) + (uri (git-reference + (url "https://github.com/rails-api/case_transform") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0z6pn2c4ksnphy3rbjy2ml40lhl7dznxi19ny4nlk9m071cb0l93")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (delete-file "Gemfile.lock") + #t))))) + (propagated-inputs + `(("ruby-activesupport" ,ruby-activesupport))) + (native-inputs + `(("ruby-awesome-print" ,ruby-awesome-print) + ("ruby-codeclimate-test-reporter" ,ruby-codeclimate-test-reporter) + ("ruby-pry-byebug" ,ruby-pry-byebug) + ("ruby-rubocop" ,ruby-rubocop))) + (synopsis "@code{key_transform} abilities of ActiveModelSerializers") + (description + "This package provides the extraction of the @code{key_transform} abilities +of @code{ActiveModelSerializers}.") + (home-page "https://github.com/rails-api/case_transform") + (license license:expat)))) + +(define-public ruby-active-model-serializers + (package + (name "ruby-active-model-serializers") + (version "0.10.12") + (source + (origin + ;; No rakefile included in gem + (method git-fetch) + (uri (git-reference + (url "https://github.com/rails-api/active_model_serializers") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1d2lywfzj4h117b67cwl76a6zl7q1vmgajzn51w5ifvdpc5rssli")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'adjust-dependency-version-contstriants + (lambda _ + (setenv "RAILS_VERSION" + ,(version-major+minor (package-version ruby-rails))) + (substitute* "active_model_serializers.gemspec" + (("grape.*") "grape'\n") + (("kaminari.*") "kaminari'\n") + (("minitest.*") "minitest'\n") + ((".*json_schema.*") "") ; can't seem to find it during the 'check phase + ) + #t))))) + (propagated-inputs + `(("ruby-actionpack" ,ruby-actionpack) + ("ruby-activemodel" ,ruby-activemodel) + ("ruby-case-transform" ,ruby-case-transform) + ("ruby-jsonapi-renderer" ,ruby-jsonapi-renderer))) + (native-inputs + `( + ("ruby-benchmark-ips" ,ruby-benchmark-ips) + ("ruby-codeclimate-test-reporter" ,ruby-codeclimate-test-reporter) + ("ruby-grape" ,ruby-grape) + ("ruby-json-schema" ,ruby-json-schema) + ;("ruby-kaminari" ,ruby-kaminari-0.16) + ("ruby-kaminari" ,ruby-kaminari) + ("ruby-m" ,ruby-m) + ;("ruby-minitest" ,ruby-minitest-5.10) + ("ruby-minitest" ,ruby-minitest) + ("ruby-rails" ,ruby-rails) + ("ruby-simplecov" ,ruby-simplecov) + ("ruby-sqlite3" ,ruby-sqlite3-1.3) + ("ruby-timecop" ,ruby-timecop) + ("ruby-will-paginate" ,ruby-will-paginate) + )) + (synopsis "Generate JSON in an object-oriented manner") + (description + "@code{ActiveModel::Serializers} allows one 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-onebox + (package + (name "ruby-onebox") + (version "2.2.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "onebox" version)) + (sha256 + (base32 + "1lj5x8jrs9whgynfksvlnlds4crdi6dm9bb3vh654s8vpqxbjcbn")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; TODO + (propagated-inputs + `(("ruby-addressable" ,ruby-addressable) + ("ruby-htmlentities" ,ruby-htmlentities) + ("ruby-multi-json" ,ruby-multi-json) + ("ruby-mustache" ,ruby-mustache) + ("ruby-nokogiri" ,ruby-nokogiri) + ("ruby-sanitize" ,ruby-sanitize))) + (native-inputs + `( + ("ruby-rake" ,ruby-rake) + ("ruby-rspec" ,ruby-rspec) + ;("ruby-fakeweb" ,ruby-fakeweb) + )) + (synopsis "Generate embeddable HTML previews from URLs") + (description "This package provides a gem for generating embeddable HTML +previews from URLs.") + (home-page "https://github.com/discourse/onebox") + (license license:expat))) + +(define-public ruby-discourse-ember-source + (package + (name "ruby-discourse-ember-source") + (version "3.12.2.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "discourse-ember-source" version)) + (sha256 + (base32 + "0mqkwiqb5n64lc5jdjnmpgb9apq08ywkz9yk8mj1sx2lqcsw11pc")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis "Fork of Ember source to permit latest ember versions") + (description "This package provides a fork of Ember source to permit the +latest ember versions.") + (home-page "https://github.com/discourse/discourse-ember-source") + (license license:expat))) + +(define-public ruby-jquery-rails + (package + (name "ruby-jquery-rails") + (version "4.4.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "jquery-rails" version)) + (sha256 + (base32 + "0dkhm8lan1vnyl3ll0ks2q06576pdils8a1dr354vfc1y5dqw15i")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-rails-dom-testing" ,ruby-rails-dom-testing) + ("ruby-railties" ,ruby-railties) + ("ruby-thor" ,ruby-thor))) + (synopsis + "This gem provides jQuery and the jQuery-ujs driver for your Rails 4+ application.") + (description + "This gem provides jQuery and the jQuery-ujs driver for your Rails 4+ application.") + (home-page "https://github.com/rails/jquery-rails") + (license license:expat))) + +(define-public ruby-barber + (package + (name "ruby-barber") + (version "0.12.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "barber" version)) + (sha256 + (base32 + "07rnlbh7kgamcbnl1sqlcdrjj8src4qc687klqq4a3vqq2slnscx")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" (getcwd)) + #t))))) + (propagated-inputs + `(("ruby-ember-source" ,ruby-ember-source) + ("ruby-execjs" ,ruby-execjs))) + (native-inputs + `( + ("ruby-handlebars-source" ,ruby-handlebars-source-4.1) ; < 4.2 + ("ruby-mocha" ,ruby-mocha) + ("ruby-simplecov" ,ruby-simplecov) + )) + (synopsis "Handlebars precompilation") + (description "Handlebars precompilation") + (home-page "https://github.com/tchak/barber") + (license license:expat))) + +(define-public ruby-ember-handlebars-template + (package + (name "ruby-ember-handlebars-template") + (version "0.8.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri + "ember-handlebars-template" + version)) + (sha256 + (base32 + "1wxj3vi4xs3vjxrdbzi4j4w6vv45r5dkz2rg2ldid3p8dp3irlf4")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-barber" ,ruby-barber) + ("ruby-sprockets" ,ruby-sprockets))) + (synopsis + "The sprockets template for Ember Handlebars.") + (description + "The sprockets template for Ember Handlebars.") + (home-page + "https://github.com/tricknotes/ember-handlebars-template") + (license license:expat))) + +(define-public ruby-babel-source + (package + (name "ruby-babel-source") + (version "5.8.35") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "babel-source" version)) + (sha256 + (base32 + "1ncq8h82k6hypzfb5dk7z95mmcdwnhsxmc53xz17m1nbklm25vvr")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis "Babel JS source") + (description "Babel JS source") + (home-page + "https://github.com/babel/ruby-babel-transpiler") + (license license:expat))) + +(define-public ruby-babel-transpiler + (package + (name "ruby-babel-transpiler") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "babel-transpiler" version)) + (sha256 + (base32 + "0w0minwxj56w96xps1msm6n75fs0y7r1vqcr9zlsn74fksnz81jc")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-babel-source" ,ruby-babel-source) + ("ruby-execjs" ,ruby-execjs))) + (synopsis + " Ruby Babel is a bridge to the JS Babel transpiler. +") + (description + " Ruby Babel is a bridge to the JS Babel transpiler. +") + (home-page "https://github.com/babel/ruby-babel-transpiler") + (license license:expat))) + +(define-public ruby-ember-es6-template + (package + (name "ruby-ember-es6-template") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "ember-es6_template" version)) + (sha256 + (base32 + "0cb9yfwwxvi615k1vg20zkm6czkpapcncwbznbch58zkp5rdw7i9")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-babel-transpiler" ,ruby-babel-transpiler) + ("ruby-sprockets" ,ruby-sprockets))) + (synopsis + "The tilt template for Ember specified ES6.") + (description + "The tilt template for Ember specified ES6.") + (home-page "https://github.com/tricknotes/ember-es6_template") + (license license:expat))) + +(define-public ruby-ember-cli-assets + (package + (name "ruby-ember-cli-assets") + (version "0.0.37") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "ember-cli-assets" version)) + (sha256 + (base32 + "057dhafsdr4lbagx5k7sdrh2vfmy1llqpv347qy7d5jkhxdmns96")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; cannot load such file -- ember/cli/assets + (synopsis "The assets for Ember CLI.") + (description "The assets for Ember CLI.") + (home-page "https://github.com/tricknotes/ember-cli-assets") + (license license:expat))) + +(define-public ruby-ember-source + (package + (name "ruby-ember-source") + (version "2.18.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "ember-source" version)) + (sha256 + (base32 + "0sixy30ym9j2slhlr0lfq943g958w8arlb0lsizh59iv1w5gmxxy")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis + "Ember.js source code wrapper for use with Ruby libs.") + (description + "Ember.js source code wrapper for use with Ruby libs.") + (home-page "https://github.com/emberjs/ember.js") + (license license:expat))) + +(define-public ruby-ember-data-source + (package + (name "ruby-ember-data-source") + (version "3.0.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "ember-data-source" version)) + (sha256 + (base32 + "1803nh3knvwl12h63jd48qvbbrp42yy291wcb35960daklip0fd8")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-ember-source" ,ruby-ember-source))) + (synopsis + "ember-data source code wrapper for use with Ruby libs.") + (description + "ember-data source code wrapper for use with Ruby libs.") + (home-page "https://github.com/emberjs/data") + (license license:expat))) + +(define-public ruby-active-model-adapter-source + (package + (name "ruby-active-model-adapter-source") + (version "2.1.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri + "active-model-adapter-source" + version)) + (sha256 + (base32 + "0hr8a4nyppnqs053i1badjwhm095scrp0x1w7v742r9s5sxp8pyd")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-ember-data-source" ,ruby-ember-data-source))) + (synopsis + "ember-data active-model-adapter code wrapper for use with Ruby libs.") + (description + "ember-data active-model-adapter code wrapper for use with Ruby libs.") + (home-page "https://github.com/ember-data/active-model-adapter") + (license license:expat))) + +(define-public ruby-ember-rails + (package + (name "ruby-ember-rails") + (version "0.21.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "ember-rails" version)) + (sha256 + (base32 + "0f1vd6l35d4q589sbmyxpjfs777kf0r5x6s6aap1v2r0i1x342a3")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-active-model-adapter-source" ,ruby-active-model-adapter-source) + ("ruby-active-model-serializers" ,ruby-active-model-serializers) + ("ruby-ember-cli-assets" ,ruby-ember-cli-assets) + ("ruby-ember-data-source" ,ruby-ember-data-source) + ("ruby-ember-es6-template" ,ruby-ember-es6-template) + ("ruby-ember-handlebars-template" ,ruby-ember-handlebars-template) + ("ruby-ember-source" ,ruby-ember-source) + ("ruby-jquery-rails" ,ruby-jquery-rails) + ("ruby-railties" ,ruby-railties))) + (synopsis "Ember for Rails 3.1+") + (description "Ember for Rails 3.1+") + (home-page "https://github.com/emberjs/ember-rails") + (license license:expat))) + +(define-public ruby-handlebars-source + (package + (name "ruby-handlebars-source") + (version "4.7.7") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "handlebars-source" version)) + (sha256 + (base32 + "0sjir1fwrqajkcc8blr32vnkamcqma8b0na6fm562hh9rdzcxb0c")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis + "Handlebars.js source code wrapper for (pre)compilation gems.") + (description + "Handlebars.js source code wrapper for (pre)compilation gems.") + (home-page "https://github.com/wycats/handlebars.js/") + (license license:expat))) + +(define-public ruby-handlebars-source-4.1 + (package + (inherit ruby-handlebars-source) + (name "ruby-handlebars-source") + (version "4.1.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "handlebars-source" version)) + (sha256 + (base32 + "0w8xq7nnrwhz5bfcamkvkkcb10rw7kjb809n7w949mc5h0b4l8r5")))))) + +(define-public ruby-discourse-ember-rails + (package + (name "ruby-discourse-ember-rails") + (version "0.18.6") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "discourse-ember-rails" version)) + (sha256 + (base32 + "0ax5x2d6q6hkm7r58ai9p0sahlg842aqlm7dpv6svrfpnjlaz7sf")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-active-model-serializers" ,ruby-active-model-serializers) + ("ruby-ember-data-source" ,ruby-ember-data-source) + ("ruby-ember-handlebars-template" ,ruby-ember-handlebars-template) + ("ruby-ember-source" ,ruby-ember-source) + ("ruby-jquery-rails" ,ruby-jquery-rails) + ("ruby-railties" ,ruby-railties))) + (synopsis "Ember for Rails 3.1+") + (description "Ember for Rails 3.1+") + (home-page "https://github.com/emberjs/ember-rails") + (license license:expat))) + +(define-public ruby-discourse-fonts + (package + (name "ruby-discourse-fonts") + (version "0.0.6") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "discourse-fonts" version)) + (sha256 + (base32 + "101fhmgzrkwa8rvqrac3ccqp54aizm553n167ikzg7mcgbyrxw4a")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis + "Bundle of fonts which can be used to customize the look of Discourse") + (description + "Bundle of fonts which can be used to customize the look of Discourse") + (home-page "https://github.com/discourse/discourse-fonts") + (license license:expat))) + +(define-public ruby-message-bus + (package + (name "ruby-message-bus") + (version "3.3.4") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "message_bus" version)) + (sha256 + (base32 + "0hckijk9aa628nx66vr7axfsk7zfdkskaxj1mdzikk019q3h54fr")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; TODO: Upgrade ruby-rubocop >= 1.1.0 + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" (getcwd)) + #t))))) + (propagated-inputs + `(("ruby-rack" ,ruby-rack))) + (native-inputs + `( + ("ruby-byebug" ,ruby-byebug) + ("ruby-http-parser.rb" ,ruby-http-parser.rb) + ("ruby-jasmine" ,ruby-jasmine) + ("ruby-minitest-global-expectations" ,ruby-minitest-global-expectations) + ("ruby-minitest-hooks" ,ruby-minitest-hooks) + ("ruby-pg" ,ruby-pg) + ("ruby-puma" ,ruby-puma) + ("ruby-rack-test" ,ruby-rack-test) + ("ruby-redis" ,ruby-redis) + ("ruby-rubocop-discourse" ,ruby-rubocop-discourse) + ("ruby-thin" ,ruby-thin) + ("ruby-yard" ,ruby-yard) + )) + (synopsis "Message bus for rack") + (description "This package provides a message bus for rack.") + (home-page "https://github.com/SamSaffron/message_bus") + (license license:expat))) + +(define-public ruby-phantomjs + (package + (name "ruby-phantomjs") + (version "2.1.1.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "phantomjs" version)) + (sha256 + (base32 + "0y8pbbyq9dirxb7igkb2s5limz2895qmr41c09fjhx6k6fxcz4mk")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; don't know how to build task 'test' + (synopsis + "Auto-install phantomjs on demand for current platform. Comes with poltergeist integration.") + (description + "Auto-install phantomjs on demand for current platform. Comes with poltergeist integration.") + (home-page "https://github.com/colszowka/phantomjs-gem") + (license license:expat))) + +(define-public ruby-jasmine-core + (package + (name "ruby-jasmine-core") + (version "3.6.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "jasmine-core" version)) + (sha256 + (base32 + "0072bf0l1y6gnqw3mm4mlq7ivs19lyzr074sjibpfvryi7b449r6")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis + "Test your JavaScript without any framework dependencies, in any environment, and with a nice descriptive syntax.") + (description + "Test your JavaScript without any framework dependencies, in any environment, and with a nice descriptive syntax.") + (home-page "http://jasmine.github.io") + (license license:expat))) + +(define-public ruby-jasmine + (package + (name "ruby-jasmine") + (version "3.6.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "jasmine" version)) + (sha256 + (base32 + "1zbsr1d6507pvcfr3ji5hv0ksaaygi8jfp4dz1y1k1jdkkapy24b")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; cannot load such file -- rpsec + (propagated-inputs + `(("ruby-jasmine-core" ,ruby-jasmine-core) + ("ruby-phantomjs" ,ruby-phantomjs) + ("ruby-rack" ,ruby-rack) + ("ruby-rake" ,ruby-rake))) + (synopsis + "Test your JavaScript without any framework dependencies, in any environment, and with a nice descriptive syntax.") + (description + "Test your JavaScript without any framework dependencies, in any environment, and with a nice descriptive syntax.") + (home-page "http://jasmine.github.io/") + (license license:expat))) + +(define-public ruby-rubocop-rspec + (package + (name "ruby-rubocop-rspec") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rubocop-rspec" version)) + (sha256 + (base32 + "0jj6h9ynmacvi2v62dc50qxwrrlvm1hmiblpxc0w2kypik1255ds")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-rubocop" ,ruby-rubocop) + ("ruby-rubocop-ast" ,ruby-rubocop-ast))) + (synopsis + " Code style checking for RSpec files. + A plugin for the RuboCop code style enforcing & linting tool. +") + (description + " Code style checking for RSpec files. + A plugin for the RuboCop code style enforcing & linting tool. +") + (home-page "https://github.com/rubocop-hq/rubocop-rspec") + (license license:expat))) + +(define-public ruby-rubocop-discourse + (package + (name "ruby-rubocop-discourse") + (version "2.4.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rubocop-discourse" version)) + (sha256 + (base32 + "1z1h8spsjnsqz6c25n9ib1yimkwr7a76bas8w1k9c404hcqhlahv")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; don't know how to build task 'test' + (propagated-inputs + `(("ruby-rubocop" ,ruby-rubocop) + ("ruby-rubocop-rspec" ,ruby-rubocop-rspec))) + (synopsis + "Custom rubocop cops used by Discourse") + (description + "Custom rubocop cops used by Discourse") + (home-page "https://github.com/discourse/rubocop-discourse") + (license license:expat))) + +(define-public ruby-rails-multisite + (package + (name "ruby-rails-multisite") + (version "2.5.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rails_multisite" version)) + (sha256 + (base32 + "0p7g9gkcmw030zfqlw3k933i40j31wf3jh4bj1niihzk7slha97y")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-activerecord" ,ruby-activerecord) + ("ruby-railties" ,ruby-railties))) + (synopsis "Multi tenancy support for Rails") + (description "Multi tenancy support for Rails") + (home-page "") + (license #f))) + +(define-public ruby-fast-xs + (package + (name "ruby-fast-xs") + (version "0.8.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "fast_xs" version)) + (sha256 + (base32 + "1iydzaqmvqq7ncxkr182aybkk6xap0cb2w9amr73vbdxi2qf3wjz")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; undefined method `url=' + (propagated-inputs + `(("ruby-hoe" ,ruby-hoe))) + (synopsis "Ruby extensions for escaping text") + (description + "@code{fast_xs} escapes text so it can be embedded more directly into XML +and HTML without having to deal with character set issues.") + (home-page "http://fast-xs.rubyforge.org/") + (license license:expat))) + +(define-public ruby-xorcist + (package + (name "ruby-xorcist") + (version "1.1.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "xorcist" version)) + (sha256 + (base32 + "1q7hr3qyn1hczv9fglqc2cbaax0fb37gjjr0y24x19mmp817csdn")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (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-fastimage + (package + (name "ruby-fastimage") + (version "2.2.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "fastimage" version)) + (sha256 + (base32 + "1zgv6588jiaisgng3bkcf5a3rlia82yrs39g7n27jhmpmhgk8j1w")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis + "FastImage finds the size or type of an image given its uri by fetching as little as needed.") + (description + "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-email-reply-trimmer + (package + (name "ruby-email-reply-trimmer") + (version "0.1.13") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "email_reply_trimmer" version)) + (sha256 + (base32 + "1jgcxifm48xq5dz9k47q43pqm5bfnf14l62l3bqhmv8f6z8dw4ki")))) + (build-system ruby-build-system) + (synopsis + "EmailReplyTrimmer is a small library to trim replies from plain text email.") + (description + "EmailReplyTrimmer is a small library to trim replies from plain text email.") + (home-page "https://github.com/discourse/email_reply_trimmer") + (license license:expat))) + +(define-public ruby-progress + (package + (name "ruby-progress") + (version "3.5.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "progress" version)) + (sha256 + (base32 + "1pm3bv5n8c8j0vfm7wghd7xf6yq4m068cksxjldmna11qi0h0s8s")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis "Show progress of long running tasks") + (description + "Show progress of long running tasks") + (home-page "http://github.com/toy/progress") + (license license:expat))) + +(define-public ruby-in-threads + (package + (name "ruby-in-threads") + (version "1.5.4") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "in_threads" version)) + (sha256 + (base32 + "0m71806p1gm4kxiz4gvkyr8qip16hifn2kdf926jz44jj6kc6bbs")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis + "Run all possible enumerable methods in concurrent/parallel threads") + (description + "Run all possible enumerable methods in concurrent/parallel threads") + (home-page "https://github.com/toy/in_threads") + (license license:expat))) + +(define-public ruby-image-size + (package + (name "ruby-image-size") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "image_size" version)) + (sha256 + (base32 + "00irlgdpg67ay3wf5ljmphpdk6wc6khs6nhc5ysl5l10mmfi62p6")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis + "Measure following file dimensions: apng, bmp, cur, gif, ico, j2c, jp2, jpeg, jpx, mng, pam, pbm, pcx, pgm, png, ppm, psd, svg, swf, tiff, webp, xbm, xpm") + (description + "Measure following file dimensions: apng, bmp, cur, gif, ico, j2c, jp2, jpeg, jpx, mng, pam, pbm, pcx, pgm, png, ppm, psd, svg, swf, tiff, webp, xbm, xpm") + (home-page "https://github.com/toy/image_size") + (license #f))) + +(define-public ruby-fspath + (package + (name "ruby-fspath") + (version "3.1.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "fspath" version)) + (sha256 + (base32 + "0xcxikkrjv8ws328nn5ax5pyfjs8pn7djg1hks7qyb3yp6prpb5m")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis "Better than Pathname") + (description "Better than Pathname") + (home-page "http://github.com/toy/fspath") + (license license:expat))) + +(define-public ruby-exifr + (package + (name "ruby-exifr") + (version "1.3.9") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "exifr" version)) + (sha256 + (base32 + "0mylhwmh6n4xihxr9s3zj0lc286f5maxbqd4dgk3paqnd7afz88s")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; test files missing? + (synopsis + "EXIF Reader is a module to read EXIF from JPEG and TIFF images.") + (description + "EXIF Reader is a module to read EXIF from JPEG and TIFF images.") + (home-page "https://remvee.github.io/exifr/") + (license license:expat))) + +(define-public ruby-image-optim + (package + (name "ruby-image-optim") + (version "0.28.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "image_optim" version)) + (sha256 + (base32 + "04n7xia22pr4ihzyf7bprnn630284cnfy2p3pk9q4b2cxaf5gj3s")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-exifr" ,ruby-exifr) + ("ruby-fspath" ,ruby-fspath) + ("ruby-image-size" ,ruby-image-size) + ("ruby-in-threads" ,ruby-in-threads) + ("ruby-progress" ,ruby-progress))) + (synopsis + "Command line tool and ruby interface to optimize (lossless compress, optionally lossy) jpeg, png, gif and svg images using external utilities (advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, pngcrush, pngout, pngquant, svgo)") + (description + "Command line tool and ruby interface to optimize (lossless compress, optionally lossy) jpeg, png, gif and svg images using external utilities (advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, pngcrush, pngout, pngquant, svgo)") + (home-page "https://github.com/toy/image_optim") + (license license:expat))) + +(define-public ruby-discourse-image-optim + (package + (name "ruby-discourse-image-optim") + (version "0.26.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "discourse_image_optim" version)) + (sha256 + (base32 + "11nqmga5ygxyhjmsc07gsa0fwwyhdpwi20yyr4fnh263xs1xylvv")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-exifr" ,ruby-exifr) + ("ruby-fspath" ,ruby-fspath) + ("ruby-image-size" ,ruby-image-size) + ("ruby-in-threads" ,ruby-in-threads) + ("ruby-progress" ,ruby-progress))) + (synopsis + "Optimize (lossless compress, optionally lossy) images (jpeg, png, gif, svg) using external utilities (advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, pngcrush, pngout, pngquant, svgo)") + (description + "Optimize (lossless compress, optionally lossy) images (jpeg, png, gif, svg) using external utilities (advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, pngcrush, pngout, pngquant, svgo)") + (home-page + "http://github.com/toy/discourse_image_optim") + (license license:expat))) + +(define-public ruby-omniauth-facebook + (package + (name "ruby-omniauth-facebook") + (version "8.0.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "omniauth-facebook" version)) + (sha256 + (base32 + "1z0f5sr2ddnvfva0jrfd4926nlv4528rfj7z595288n39304r092")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-omniauth-oauth2" ,ruby-omniauth-oauth2))) + (native-inputs + `(("ruby-mocha" ,ruby-mocha))) + (synopsis "Facebook OAuth2 Strategy for OmniAuth") + (description + "Facebook OAuth2 Strategy for OmniAuth") + (home-page "https://github.com/simi/omniauth-facebook") + (license license:expat))) + +(define-public ruby-oauth + (package + (name "ruby-oauth") + (version "0.5.5") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "oauth" version)) + (sha256 + (base32 + "1m08365nyp0fgw2iyzj8q8qy8zml0c1hw2dd8cp82pp6656ahbh3")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis "OAuth Core Ruby implementation") + (description "OAuth Core Ruby implementation") + (home-page #f) + (license license:expat))) + +(define-public ruby-omniauth-oauth + (package + (name "ruby-omniauth-oauth") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "omniauth-oauth" version)) + (sha256 + (base32 + "0yw2vzx633p9wpdkd4jxsih6mw604mj7f6myyfikmj4d95c8d9z7")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; cannot load such file -- rspec/core/rake_task + (propagated-inputs + `(("ruby-oauth" ,ruby-oauth) + ("ruby-omniauth" ,ruby-omniauth))) + (synopsis + "A generic OAuth (1.0/1.0a) strategy for OmniAuth.") + (description + "This package provides a generic OAuth (1.0/1.0a) strategy for OmniAuth.") + (home-page "https://github.com/intridea/omniauth-oauth") + (license license:expat))) + +(define-public ruby-omniauth-twitter + (package + (name "ruby-omniauth-twitter") + (version "1.4.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "omniauth-twitter" version)) + (sha256 + (base32 + "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; cannot load such file -- rspec/core/rake_task + (propagated-inputs + `(("ruby-omniauth-oauth" ,ruby-omniauth-oauth) + ("ruby-rack" ,ruby-rack))) + (synopsis "OmniAuth strategy for Twitter") + (description "OmniAuth strategy for Twitter") + (home-page "https://github.com/arunagw/omniauth-twitter") + (license license:expat))) + +(define-public ruby-omniauth-github + (package + (name "ruby-omniauth-github") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "omniauth-github" version)) + (sha256 + (base32 + "0jc66zp4bhwy7c6s817ws0nkimski3crrhwd7xyy55ss29v6b8hw")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; cannot load such file -- rspec/core/rake_task + (propagated-inputs + `(("ruby-omniauth" ,ruby-omniauth) + ("ruby-omniauth-oauth2" ,ruby-omniauth-oauth2))) + (synopsis "Official OmniAuth strategy for GitHub") + (description + "Official OmniAuth strategy for GitHub.") + (home-page "https://github.com/intridea/omniauth-github") + (license license:expat))) + +(define-public ruby-omniauth-google-oauth2 + (package + (name "ruby-omniauth-google-oauth2") + (version "0.8.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "omniauth-google-oauth2" version)) + (sha256 + (base32 + "10awaj2s3c46knpv9vawhjzbbaygp685dm9n8blq2d3j4w5m3d53")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; cannot load such file -- rspec/core/rake_task + (propagated-inputs + `(("ruby-jwt" ,ruby-jwt) + ("ruby-oauth2" ,ruby-oauth2) + ("ruby-omniauth" ,ruby-omniauth) + ("ruby-omniauth-oauth2" ,ruby-omniauth-oauth2))) + (synopsis + "A Google OAuth2 strategy for OmniAuth 1.x. This allows you to login to Google with your ruby app.") + (description + "This package provides a Google OAuth2 strategy for OmniAuth 1.x. This allows you to login to Google with your ruby app.") + (home-page "https://github.com/zquestz/omniauth-google-oauth2") + (license license:expat))) + +(define-public ruby-mini-sql + (package + (name "ruby-mini-sql") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "mini_sql" version)) + (sha256 + (base32 + "1a2s8n4nq3w86hx3ya7xs2fkzz8rp0kmz0zqzhf9r5rybprr702m")))) + (build-system ruby-build-system) + (synopsis + "A fast, safe, simple direct SQL executor for PG") + (description + "This package provides a fast, safe, simple direct SQL executor for PG") + (home-page "https://github.com/discourse/mini_sql") + (license license:expat))) + +(define-public ruby-rinku + (package + (name "ruby-rinku") + (version "2.0.6") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rinku" version)) + (sha256 + (base32 + "0zcdha17s1wzxyc5814j6319wqg33jbn58pg6wmxpws36476fq4b")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; cannot load such file -- rake/extensiontask + (synopsis + " A fast and very smart autolinking library that + acts as a drop-in replacement for Rails `auto_link` +") + (description + " A fast and very smart autolinking library that + acts as a drop-in replacement for Rails `auto_link` +") + (home-page "https://github.com/vmg/rinku") + (license #f))) + +(define-public ruby-sidekiq + (package + (name "ruby-sidekiq") + (version "6.1.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "sidekiq" version)) + (sha256 + (base32 + "0ir95jdcv7ch57xiirmy6mjh8z2lm39nnwcpkwcjqx5698w0lsvs")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; cannot load such file -- standard/rake + (propagated-inputs + `(("ruby-connection-pool" ,ruby-connection-pool) + ("ruby-rack" ,ruby-rack) + ("ruby-redis" ,ruby-redis))) + (synopsis + "Simple, efficient background processing for Ruby.") + (description + "Simple, efficient background processing for Ruby.") + (home-page "https://sidekiq.org") + (license #f))) + +(define-public ruby-mini-scheduler + (package + (name "ruby-mini-scheduler") + (version "0.13.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "mini_scheduler" version)) + (sha256 + (base32 + "1cy9c2wv19m4h2sv9fs66hh1an7hq3y9513678dzx43vm3kjvhz5")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; cannot load such file -- rspec/core/rake_task + (propagated-inputs + `(("ruby-sidekiq" ,ruby-sidekiq))) + (synopsis "Adds recurring jobs for Sidekiq") + (description "Adds recurring jobs for Sidekiq") + (home-page "https://github.com/discourse/mini_scheduler") + (license license:expat))) + +;; TODO: This package needs fixing! +(define-public ruby-libv8 + (package + (name "ruby-libv8") + (version "8.4.255.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "libv8" version)) + (sha256 + (base32 + "0317sr3nrl51sp844bps71smkrwim3fjn47wdfpbycixnbxspivm")))) + (build-system ruby-build-system) + (native-inputs + `( + ("glib" ,(@ (gnu packages glib) glib)) + ("pkg-config" ,(@ (gnu packages pkg-config) pkg-config)) + ("python" ,python-2) + ("ruby-rake-compiler" ,ruby-rake-compiler) + )) + (synopsis + "Distributes the V8 JavaScript engine in binary and source forms in order to support fast builds of The Ruby Racer") + (description + "Distributes the V8 JavaScript engine in binary and source forms in order to support fast builds of The Ruby Racer") + (home-page "http://github.com/rubyjs/libv8") + (license license:expat))) + +(define-public ruby-mini-racer + (package + (name "ruby-mini-racer") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "mini_racer" version)) + (sha256 + (base32 + "0r7j241mvhyyc017bqgp0pvf3jyrwbcqvz2pzm0r8zn2r85ks1jl")))) + (build-system ruby-build-system) + (propagated-inputs `(("ruby-libv8" ,ruby-libv8))) + (synopsis "Minimal embedded v8 engine for Ruby") + (description + "Minimal embedded v8 engine for Ruby") + (home-page "https://github.com/discourse/mini_racer") + (license license:expat))) + +(define-public ruby-uglifier + (package + (name "ruby-uglifier") + (version "4.2.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "uglifier" version)) + (sha256 + (base32 + "0wgh7bzy68vhv9v68061519dd8samcy8sazzz0w3k8kqpy3g4s5f")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; cannot load such file -- rspec/core/rake_task + (propagated-inputs + `(("ruby-execjs" ,ruby-execjs))) + (synopsis + "Uglifier minifies JavaScript files by wrapping UglifyJS to be accessible in Ruby") + (description + "Uglifier minifies JavaScript files by wrapping UglifyJS to be accessible in Ruby") + (home-page "http://github.com/lautis/uglifier") + (license license:expat))) + +(define-public ruby-fast-blank + (package + (name "ruby-fast-blank") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "fast_blank" version)) + (sha256 + (base32 + "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (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-lru-redux + (package + (name "ruby-lru-redux") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "lru_redux" version)) + (sha256 + (base32 + "1yxghzg7476sivz8yyr9nkak2dlbls0b89vc2kg52k0nmg6d0wgf")))) + (build-system ruby-build-system) + (native-inputs + `( + ("ruby-timecop" ,ruby-timecop) + )) + (synopsis + "An efficient implementation of an lru cache") + (description + "An efficient implementation of an lru cache") + (home-page "https://github.com/SamSaffron/lru_redux") + (license license:expat))) + +(define-public ruby-rack-mini-profiler + (package + (name "ruby-rack-mini-profiler") + (version "2.3.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rack-mini-profiler" version)) + (sha256 + (base32 + "1zir2lf9vc6h98gly4qmsd2gdvly4pn8576pl9kzx7i9j4v54ysh")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-rack" ,ruby-rack))) + (synopsis + "Profiling toolkit for Rack applications with Rails integration. Client Side profiling, DB profiling and Server profiling.") + (description + "Profiling toolkit for Rack applications with Rails integration. Client Side profiling, DB profiling and Server profiling.") + (home-page "https://miniprofiler.com") + (license license:expat))) + +(define-public ruby-logster + (package + (name "ruby-logster") + (version "2.9.5") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "logster" version)) + (sha256 + (base32 + "1r0s6y2gh81vsajnc1ny5k9lv9zdm7667v4b3kh2w0w4v82kiiw1")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; TODO: only disable network tests + (native-inputs + `( + ("ruby-byebug" ,ruby-byebug) + ("ruby-rack" ,ruby-rack) + ("ruby-redis" ,ruby-redis) + ("ruby-timecop" ,ruby-timecop) + )) + (synopsis "UI for viewing logs in Rack") + (description "UI for viewing logs in Rack") + (home-page "https://github.com/discourse/logster") + (license license:expat))) + +(define-public ruby-sassc-rails + (package + (name "ruby-sassc-rails") + (version "2.1.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "sassc-rails" version)) + (sha256 + (base32 + "1d9djmwn36a5m8a83bpycs48g8kh1n2xkyvghn7dr6zwh4wdyksz")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; cannot find tzinfo-data + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" (getcwd)) + (substitute* "sassc-rails.gemspec" + (("~> 10.0") ">= 10.0")) + #t))))) + (propagated-inputs + `(("ruby-railties" ,ruby-railties) + ("ruby-sassc" ,ruby-sassc) + ("ruby-sprockets" ,ruby-sprockets) + ("ruby-sprockets-rails" ,ruby-sprockets-rails) + ("ruby-tilt" ,ruby-tilt))) + (native-inputs + `( + ("ruby-mocha" ,ruby-mocha) + ("ruby-pry" ,ruby-pry) + ("ruby-rake" ,ruby-rake) + ("ruby-tzinfo-data" ,ruby-tzinfo-data) + )) + (synopsis "Integrate SassC-Ruby into Rails.") + (description "Integrate SassC-Ruby into Rails.") + (home-page "https://github.com/sass/sassc-rails") + (license license:expat))) + +(define-public ruby-rqrcode-core + (package + (name "ruby-rqrcode-core") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rqrcode_core" version)) + (sha256 + (base32 + "00kqasqja8zyzqvlgiwd9r0wndqk01qk5j68a8lhlz4ayrd4qy0y")))) + (build-system ruby-build-system) + (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 "1.2.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rqrcode" version)) + (sha256 + (base32 + "0f1cv9a9sjqc898qm3h7zmkhwglrjw5blsskbg3gsaws01d4bc47")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-chunky-png" ,ruby-chunky-png) + ("ruby-rqrcode-core" ,ruby-rqrcode-core))) + (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-sqlite3-1.3 + (package + (inherit ruby-sqlite3) + (name "ruby-sqlite3") + (version "1.3.13") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "sqlite3" version)) + (sha256 + (base32 + "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i")))))) + +(define-public ruby-bbcode-to-md + (let ((commit "3b9aaf2b634704a415788c94f7dee93a81f616b5") + (revision "1")) + (package + (name "ruby-bbcode-to-md") + (version (git-version "0.0.15" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nlalonde/ruby-bbcode-to-md") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1c173jr1y4z7vxk7cshh17mjdkq8d690zzs3kc76j2wbvfbmcpcp")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (delete-file "Gemfile.lock") + #t))))) + (propagated-inputs + `(("ruby-activesupport" ,ruby-activesupport))) + (native-inputs + `(("ruby-pry" ,ruby-pry))) + (synopsis + "Convert BBCode to Markdown and check whether the BBCode is valid.") + (description + "Convert BBCode to Markdown and check whether the BBCode is valid.") + (home-page "https://github.com/rikkit/ruby-bbcode-to-md") + (license license:expat)))) + +(define-public ruby-tiny-tds + (package + (name "ruby-tiny-tds") + (version "2.1.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "tiny_tds" version)) + (sha256 + (base32 + "0hy3kbcb6nwydy312rhjm4b30yavmayszzzyjpfdv6p0s8d9mfvb")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; File does not exist: tiny_tds/tiny_tds + (inputs + `(("freetds" ,freetds))) + (native-inputs + `(("ruby-connection-pool" ,ruby-connection-pool) + ("ruby-mini-portile" ,ruby-mini-portile-2) + ("ruby-rake" ,ruby-rake) + ("ruby-rake-compiler" ,ruby-rake-compiler) + ("ruby-rake-compiler-dock" ,ruby-rake-compiler-dock))) + (synopsis + "TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library. Developed for the ActiveRecord SQL Server adapter.") + (description + "TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library. Developed for the ActiveRecord SQL Server adapter.") + (home-page "https://github.com/rails-sqlserver/tiny_tds") + (license license:expat))) + +(define-public ruby-rake-compiler-dock + (package + (name "ruby-rake-compiler-dock") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rake-compiler-dock" version)) + (sha256 + (base32 + "0z70p0jdp4ww0ax783nvfz1ppr8bf31kgy3la8wrcyhz1lvpq799")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; cannot load rake_compiler_dock + (synopsis + "Easy to use and reliable cross compiler environment for building Windows and Linux binary gems. +Use rake-compiler-dock to enter an interactive shell session or add a task to your Rakefile to automate your cross build.") + (description + "Easy to use and reliable cross compiler environment for building Windows and Linux binary gems. +Use rake-compiler-dock to enter an interactive shell session or add a task to your Rakefile to automate your cross build.") + (home-page "https://github.com/rake-compiler/rake-compiler-dock") + (license license:expat))) + +(define-public ruby-csv + (package + (name "ruby-csv") + (version "3.1.9") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "csv" version)) + (sha256 + (base32 + "07mgyalwdxaxnff86j5p6n5szmhqz7nrlkb40826mzggrmva8v1m")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis + "The CSV library provides a complete interface to CSV files and data. It offers tools to enable you to read and write to and from Strings or IO objects, as needed.") + (description + "The CSV library provides a complete interface to CSV files and data. It offers tools to enable you to read and write to and from Strings or IO objects, as needed.") + (home-page "https://github.com/ruby/csv") + (license (list #f #f)))) + +(define-public ruby-maxminddb + (package + (name "ruby-maxminddb") + (version "0.1.22") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "maxminddb" version)) + (sha256 + (base32 + "0zlhqilyggiryywgswfi624bv10qnkm66hggmg79vvgv73j3p4sh")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; don't how how to build task 'test' + (native-inputs + `( + ("ruby-rspec" ,ruby-rspec) + ("ruby-rspec-its" ,ruby-rspec-its) + )) + (synopsis + "Pure Ruby MaxMind DB (GeoIP2) binary file reader.") + (description + "Pure Ruby MaxMind DB (GeoIP2) binary file reader.") + (home-page "https://github.com/yhirose/maxminddb") + (license license:expat))) + +(define-public ruby-codeclimate-test-reporter + (package + (name "ruby-codeclimate-test-reporter") + (version "1.0.9") + (source + (origin + (method url-fetch) + (uri (rubygems-uri + "codeclimate-test-reporter" + version)) + (sha256 + (base32 + "1hq1f9c3f9lh0wr0apccgl6w1q2w39q93raagg50kchi7zp288cm")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-simplecov" ,ruby-simplecov-0.13))) + (synopsis + "Collects test coverage data from your Ruby test suite and sends it to Code Climate's hosted, automated code review service. Based on SimpleCov.") + (description + "Collects test coverage data from your Ruby test suite and sends it to Code Climate's hosted, automated code review service. Based on SimpleCov.") + (home-page "https://github.com/codeclimate/ruby-test-reporter") + (license license:expat))) + +(define-public ruby-simplecov-0.13 + (package + (inherit ruby-simplecov) + (name "ruby-simplecov") + (version "0.13.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "simplecov" version)) + (sha256 + (base32 + "1r46dxq6r5rc7mgfb4w68qsm27w4qrp9kwjpssch9d5ngr12g0n7")))))) + +(define-public ruby-minitest-5.10 + (package + (inherit ruby-minitest) + (name "ruby-minitest") + (version "5.10.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "minitest" version)) + (sha256 + (base32 + "05521clw19lrksqgvg2kmm025pvdhdaniix52vmbychrn2jm7kz2")))))) + +(define-public ruby-kaminari-activerecord + (package + (name "ruby-kaminari-activerecord") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "kaminari-activerecord" version)) + (sha256 + (base32 + "02n5xxv6ilh39q2m6vcz7qrdai7ghk3s178dw6f0b3lavwyq49w3")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-activerecord" ,ruby-activerecord) + ("ruby-kaminari-core" ,ruby-kaminari-core))) + (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.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "kaminari-core" version)) + (sha256 + (base32 + "0h04cr4y1jfn81gxy439vmczifghc2cvsyw47aa32is5bbxg1wlz")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (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.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "kaminari-actionview" version)) + (sha256 + (base32 + "0w0p1hyv6lgf6h036cmn2kbkdv4x7g0g9q9kc5gzkpz7amlxr8ri")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-actionview" ,ruby-actionview) + ("ruby-kaminari-core" ,ruby-kaminari-core))) + (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.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "kaminari" version)) + (sha256 + (base32 + "1vxkqciny5v4jgmjxl8qrgbmig2cij2iskqbwh4bfcmpxf467ch3")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; cannot load such file -- kaminari + (propagated-inputs + `(("ruby-activesupport" ,ruby-activesupport) + ("ruby-kaminari-actionview" ,ruby-kaminari-actionview) + ("ruby-kaminari-activerecord" ,ruby-kaminari-activerecord) + ("ruby-kaminari-core" ,ruby-kaminari-core))) + (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))) + +;; TODO? Replace ruby-kaminari-* inputs with correct version? +(define-public ruby-kaminari-0.16 + (package + (inherit ruby-kaminari) + (name "ruby-kaminari") + (version "0.16.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "kaminari" version)) + (sha256 + (base32 + "14vx3kgssl4lv2kn6grr5v2whsynx5rbl1j9aqiq8nc3d7j74l67")))))) + +(define-public ruby-will-paginate + (package + (name "ruby-will-paginate") + (version "3.3.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "will_paginate" version)) + (sha256 + (base32 + "10qk4mf3rfc0vr26j0ba6vcz7407rdjfn13ph690pkzr94rv8bay")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis + "will_paginate provides a simple API for performing paginated queries with Active Record, DataMapper and Sequel, and includes helpers for rendering pagination links in Rails, Sinatra, Hanami, and Merb web apps.") + (description + "will_paginate provides a simple API for performing paginated queries with Active Record, DataMapper and Sequel, and includes helpers for rendering pagination links in Rails, Sinatra, Hanami, and Merb web apps.") + (home-page "https://github.com/mislav/will_paginate") + (license license:expat))) + +(define-public ruby-rack-accept + (package + (name "ruby-rack-accept") + (version "0.4.5") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rack-accept" version)) + (sha256 + (base32 + "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936")))) + (build-system ruby-build-system) + (propagated-inputs `(("ruby-rack" ,ruby-rack))) + (synopsis + "HTTP Accept, Accept-Charset, Accept-Encoding, and Accept-Language for Ruby/Rack") + (description + "HTTP Accept, Accept-Charset, Accept-Encoding, and Accept-Language for Ruby/Rack") + (home-page "http://mjijackson.github.com/rack-accept") + (license #f))) + +(define-public ruby-mustermann-grape + (package + (name "ruby-mustermann-grape") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "mustermann-grape" version)) + (sha256 + (base32 + "0djlbi7nh161a5mwjdm1ya4hc6lyzc493ah48gn37gk6vyri5kh0")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; You must use Bundler 2 or greater with this lockfile. + (propagated-inputs + `(("ruby-mustermann" ,ruby-mustermann))) + (synopsis + "Adds Grape style patterns to Mustermman") + (description + "Adds Grape style patterns to Mustermman") + (home-page "https://github.com/ruby-grape/mustermann-grape") + (license license:expat))) + +(define-public ruby-dry-logic + (package + (name "ruby-dry-logic") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "dry-logic" version)) + (sha256 + (base32 + "17dnc3g9y2nj42rdx2bdvsvvms10vgw4qzjb2iw2gln9hj8b797c")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-concurrent-ruby" ,ruby-concurrent-ruby) + ("ruby-dry-core" ,ruby-dry-core))) + (synopsis + "Predicate logic with rule composition") + (description + "Predicate logic with rule composition") + (home-page "https://dry-rb.org/gems/dry-logic") + (license license:expat))) + +(define-public ruby-dry-inflector + (package + (name "ruby-dry-inflector") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "dry-inflector" version)) + (sha256 + (base32 + "17mkdwglqsd9fg272y3zms7rixjgkb1km1xcb88ir5lxvk1jkky7")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (synopsis "String inflections for dry-rb") + (description "String inflections for dry-rb") + (home-page "https://dry-rb.org") + (license license:expat))) + +(define-public ruby-dry-core + (package + (name "ruby-dry-core") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "dry-core" version)) + (sha256 + (base32 + "14s45hxcqpp2mbvwlwzn018i8qhcjzgkirigdrv31jd741rpgy9s")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-concurrent-ruby" ,ruby-concurrent-ruby))) + (synopsis + "A toolset of small support modules used throughout the dry-rb ecosystem") + (description + "This package provides a toolset of small support modules used throughout the dry-rb ecosystem") + (home-page "https://dry-rb.org/gems/dry-core") + (license license:expat))) + +(define-public ruby-dry-configurable + (package + (name "ruby-dry-configurable") + (version "0.12.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "dry-configurable" version)) + (sha256 + (base32 + "1fxr1352sgjbyk85qh4nfj974czw5b3rqjnl71q9p8v8fxrl6ln3")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-concurrent-ruby" ,ruby-concurrent-ruby) + ("ruby-dry-core" ,ruby-dry-core))) + (synopsis + "A mixin to add configuration functionality to your classes") + (description + "This package provides a mixin to add configuration functionality to your classes") + (home-page "https://dry-rb.org/gems/dry-configurable") + (license license:expat))) + +(define-public ruby-dry-container + (package + (name "ruby-dry-container") + (version "0.7.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "dry-container" version)) + (sha256 + (base32 + "1npnhs3x2xcwwijpys5c8rpcvymrlab0y8806nr4h425ld5q4wd0")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-concurrent-ruby" ,ruby-concurrent-ruby) + ("ruby-dry-configurable" ,ruby-dry-configurable))) + (native-inputs + `( + ("ruby-rspec" ,ruby-rspec) + )) + (synopsis + "A simple container intended for use as an IoC container") + (description + "This package provides a simple container intended for use as an IoC container") + (home-page "https://github.com/dry-rb/dry-container") + (license license:expat))) + +(define-public ruby-concurrent-ruby + (package + (name "ruby-concurrent-ruby") + (version "1.1.8") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "concurrent-ruby" version)) + (sha256 + (base32 + "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ;; TODO: Fix + (synopsis + "Modern concurrency tools including agents, futures, promises, thread pools, actors, supervisors, and more. +Inspired by Erlang, Clojure, Go, JavaScript, actors, and classic concurrency patterns. +") + (description + "Modern concurrency tools including agents, futures, promises, thread pools, actors, supervisors, and more. +Inspired by Erlang, Clojure, Go, JavaScript, actors, and classic concurrency patterns. +") + (home-page "http://www.concurrent-ruby.com") + (license license:expat))) + +(define-public ruby-dry-types + (package + (name "ruby-dry-types") + (version "1.5.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "dry-types" version)) + (sha256 + (base32 + "1gv0s396lzxlr882qgwi90462wn6f99wq6g0y204r94i3yfh1lvd")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-concurrent-ruby" ,ruby-concurrent-ruby) + ("ruby-dry-container" ,ruby-dry-container) + ("ruby-dry-core" ,ruby-dry-core) + ("ruby-dry-inflector" ,ruby-dry-inflector) + ("ruby-dry-logic" ,ruby-dry-logic))) + (synopsis + "Type system for Ruby supporting coercions, constraints and complex types like structs, value objects, enums etc") + (description + "Type system for Ruby supporting coercions, constraints and complex types like structs, value objects, enums etc") + (home-page "https://dry-rb.org/gems/dry-types") + (license license:expat))) + +(define-public ruby-grape + (package + (name "ruby-grape") + (version "1.5.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "grape" version)) + (sha256 + (base32 + "0adf01kihxbmh8q84r6zyfgdmpbyb0lwcar3fi8j6bl6qcsbgwqx")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; no rakefile found + (propagated-inputs + `(("ruby-activesupport" ,ruby-activesupport) + ("ruby-builder" ,ruby-builder) + ("ruby-dry-types" ,ruby-dry-types) + ("ruby-mustermann-grape" ,ruby-mustermann-grape) + ("ruby-rack" ,ruby-rack) + ("ruby-rack-accept" ,ruby-rack-accept))) + (synopsis + "A Ruby framework for rapid API development with great conventions.") + (description + "This package provides a Ruby framework for rapid API development with great conventions.") + (home-page "https://github.com/ruby-grape/grape") + (license license:expat))) + +(define-public ruby-m + (package + (name "ruby-m") + (version "1.5.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "m" version)) + (sha256 + (base32 + "15jnbpl7b08im4g42ambc850w01lmc49k1z4438ipj83xsj5x32w")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + ;(delete-file "Gemfile.lock") + (substitute* "Gemfile.lock" + (("\\(.*\\)") "")) + #t))))) + (propagated-inputs + `( + ;("ruby-method-source" ,ruby-method-source) + ;("ruby-rake" ,ruby-rake) + )) + (native-inputs + `( + ("ruby-activesupport" ,ruby-activesupport) + ("ruby-allocation-stats" ,ruby-allocation-stats) + ("ruby-benchmark-ips" ,ruby-benchmark-ips) + ("ruby-coveralls" ,ruby-coveralls) + ("ruby-rdiscount" ,ruby-rdiscount) + )) + (synopsis + "Run test/unit tests by line number. Metal!") + (description + "Run test/unit tests by line number. Metal!") + (home-page "https://github.com/qrush/m") + (license #f))) + +(define-public ruby-allocation-stats + (package + (name "ruby-allocation-stats") + (version "0.1.5") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "allocation_stats" version)) + (sha256 + (base32 + "00xrlbprgnval73s0na9365zd6qapr260cgqww4d7l3ir0wb56yb")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; TODO: fix tests + #:test-target "spec")) + (native-inputs + `( + ("ruby-pry" ,ruby-pry) + ("ruby-rspec" ,ruby-rspec) + ("ruby-simplecov" ,ruby-simplecov) + ("ruby-yajl-ruby" ,ruby-yajl-ruby) + ("ruby-yard" ,ruby-yard) + )) + (synopsis + "Tooling for tracing object allocations in Ruby 2.1") + (description + "Tooling for tracing object allocations in Ruby 2.1") + (home-page "https://github.com/srawlins/allocation_stats") + (license license:asl2.0))) + +(define-public ruby-rdiscount + (package + (name "ruby-rdiscount") + (version "2.2.0.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rdiscount" version)) + (sha256 + (base32 + "16srf8cr8ynlafyh6ls654b9a3bqgai8n3y86zzv9mcpvlk6k27g")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;(add-after 'unpack 'use-system-discount + ; (lambda _ + ; (substitute* "Rakefile" + ; (("FileList\\['ext.*") + ; "FileList['ext/*.rb', 'ext/rdiscount.c', \"ext/ruby-#{RUBYDIGEST}\"] do\n")) + ; (substitute* "ext/extconf.rb" + ; (("(dir_config\\('rdiscount'\\))" dirconfig) + ; (string-append dirconfig "\n\nhave_library('markdown')\n"))) + ; #t)) + ))) + (inputs + `( + ("markdown" ,(@ (gnu packages markup) markdown)) + )) + (synopsis + "Fast Implementation of Gruber's Markdown in C") + (description + "Fast Implementation of Gruber's Markdown in C") + (home-page "http://dafoster.net/projects/rdiscount/") + (license #f))) + |