diff options
Diffstat (limited to 'gnu/packages/rails.scm')
-rw-r--r-- | gnu/packages/rails.scm | 625 |
1 files changed, 625 insertions, 0 deletions
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm index 5348d914cf..84d735c465 100644 --- a/gnu/packages/rails.scm +++ b/gnu/packages/rails.scm @@ -21,6 +21,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) #:use-module (guix packages) + #:use-module (gnu packages) #:use-module (gnu packages ruby) #:use-module (guix build-system ruby)) @@ -64,6 +65,41 @@ migration.") (home-page "https://github.com/rails/spring") (license license:expat))) +(define-public ruby-spring-watcher-listen + (package + (name "ruby-spring-watcher-listen") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "spring-watcher-listen" version)) + (sha256 + (base32 + "16gjqbhj3bkambafziza4pbw6g4zvh8z17lj87m8r90pgzcp93sj")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f ; circular dependency with rails? + #:phases + (modify-phases %standard-phases + (add-before 'check 'fix-gemfile + (lambda _ + (substitute* "Gemfile" + (("^gem \\\"spring.*") "gem 'spring'\ngem 'listen'\n")) + #t))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-activesupport" ,ruby-activesupport))) + (propagated-inputs + `(("ruby-listen" ,ruby-listen) + ("ruby-spring" ,ruby-spring))) + (synopsis + "Makes spring watch files using the listen gem.") + (description + "Makes spring watch files using the listen gem.") + (home-page + "https://github.com/jonleighton/spring-watcher-listen") + (license license:expat))) + (define-public ruby-debug-inspector (package (name "ruby-debug-inspector") @@ -93,3 +129,592 @@ API.") (home-page "https://github.com/banister/debug_inspector") (license license:expat))) + +(define-public ruby-activemodel + (package + (name "ruby-activemodel") + (version "5.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "activemodel" version)) + (sha256 + (base32 + "043nnxaf3cfq8jijls0jh1bg3a8v5zd9slc62zc2acp2n2wkjnd4")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs + `(("ruby-activesupport" ,ruby-activesupport))) + (synopsis + "A toolkit for building modeling frameworks like Active Record. Rich support for attributes, callbacks, validations, serialization, internationalization, and testing.") + (description + "This package provides a toolkit for building modeling frameworks like Active Record. Rich support for attributes, callbacks, validations, serialization, internationalization, and testing.") + (home-page "http://www.rubyonrails.org") + (license license:expat))) + +(define-public ruby-activerecord + (package + (name "ruby-activerecord") + (version "5.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "activerecord" version)) + (sha256 + (base32 + "0pc7cycvhzjpw0swil2inka6c0fvcxhln793czp52pidg0654g7g")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs + `(("ruby-activemodel" ,ruby-activemodel) + ("ruby-activesupport" ,ruby-activesupport) + ("ruby-arel" ,ruby-arel))) + (synopsis + "Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes. Strong conventions for associations, validations, aggregations, migrations, and testing come baked-in.") + (description + "Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes. Strong conventions for associations, validations, aggregations, migrations, and testing come baked-in.") + (home-page "http://www.rubyonrails.org") + (license license:expat))) + +(define-public ruby-rails-html-sanitizer + (package + (name "ruby-rails-html-sanitizer") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rails-html-sanitizer" version)) + (sha256 + (base32 + "138fd86kv073zqfx0xifm646w6bgw2lr8snk16lknrrfrss8xnm7")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; tests not included + (propagated-inputs + `(("ruby-loofah" ,ruby-loofah))) + (synopsis + "HTML sanitization for Rails applications") + (description + "HTML sanitization for Rails applications") + (home-page + "https://github.com/rails/rails-html-sanitizer") + (license license:expat))) + +(define-public ruby-rails-dom-testing + (package + (name "ruby-rails-dom-testing") + (version "2.0.2") + (source + (origin + (method url-fetch) + ;; The gem does not include a Rakefile, so we fetch the tarball from + ;; Github. + (uri (string-append "https://github.com/rails/rails-dom-testing/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1bjc0mm4hc2xrq0066q7kbgzzmdn1vdnsv08xwy90vf2b6x70lxf")))) + (build-system ruby-build-system) + (native-inputs + `(("bundler" ,bundler))) + (propagated-inputs + `(("ruby-activesupport" ,ruby-activesupport) + ("ruby-nokogiri" ,ruby-nokogiri))) + (synopsis + " This gem can compare doms and assert certain elements exists in doms using Nokogiri. ") + (description + " This gem can compare doms and assert certain elements exists in doms using Nokogiri. ") + (home-page + "https://github.com/rails/rails-dom-testing") + (license license:expat))) + +(define-public ruby-actionview + (package + (name "ruby-actionview") + (version "5.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "actionview" version)) + (sha256 + (base32 + "0dxanjs7ngpny4ig7dg93ywmg9ljswzg8risdlff6ag8fzvsnidf")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; tests not included + (propagated-inputs + `(("ruby-activesupport" ,ruby-activesupport) + ("ruby-builder" ,ruby-builder) + ("ruby-erubi" ,ruby-erubi) + ("ruby-rails-dom-testing" + ,ruby-rails-dom-testing) + ("ruby-rails-html-sanitizer" + ,ruby-rails-html-sanitizer))) + (synopsis + "Simple, battle-tested conventions and helpers for building web pages.") + (description + "Simple, battle-tested conventions and helpers for building web pages.") + (home-page "http://www.rubyonrails.org") + (license license:expat))) + +(define-public ruby-actionpack + (package + (name "ruby-actionpack") + (version "5.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "actionpack" version)) + (sha256 + (base32 + "19zv9ix9iwpd8dxi5hyxgwrc1gh0fvx0a2vjhmic8dn8six41f4f")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; tests not included + (propagated-inputs + `(("ruby-actionview" ,ruby-actionview) + ("ruby-activesupport" ,ruby-activesupport) + ("ruby-rack" ,ruby-rack) + ("ruby-rack-test" ,ruby-rack-test) + ("ruby-rails-dom-testing" + ,ruby-rails-dom-testing) + ("ruby-rails-html-sanitizer" + ,ruby-rails-html-sanitizer))) + (synopsis + "Web apps on Rails. Simple, battle-tested conventions for building and testing MVC web applications. Works with any Rack-compatible server.") + (description + "Web apps on Rails. Simple, battle-tested conventions for building and testing MVC web applications. Works with any Rack-compatible server.") + (home-page "http://www.rubyonrails.org") + (license license:expat))) + +(define-public ruby-actioncable + (package + (name "ruby-actioncable") + (version "5.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "actioncable" version)) + (sha256 + (base32 + "17vdxn0afi5rfnbs09nl0m0cyj7yvpi445bmi8pkmzbaqzqkq3ff")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; tests not included + (propagated-inputs + `(("ruby-actionpack" ,ruby-actionpack) + ("ruby-nio4r" ,ruby-nio4r) + ("ruby-websocket-driver" ,ruby-websocket-driver))) + (synopsis + "Structure many real-time application concerns into channels over a single WebSocket connection.") + (description + "Structure many real-time application concerns into channels over a single WebSocket connection.") + (home-page "http://rubyonrails.org") + (license license:expat))) + +(define-public ruby-activejob + (package + (name "ruby-activejob") + (version "5.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "activejob" version)) + (sha256 + (base32 + "1m4l7z08cx1lybfswfggy7y1rxnwr6gi15h0g9kkkkvmmn6klf3r")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs + `(("ruby-activesupport" ,ruby-activesupport) + ("ruby-globalid" ,ruby-globalid))) + (synopsis + "Declare job classes that can be run by a variety of queueing backends.") + (description + "Declare job classes that can be run by a variety of queueing backends.") + (home-page "http://www.rubyonrails.org") + (license license:expat))) + +(define-public ruby-activestorage + (package + (name "ruby-activestorage") + (version "5.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "activestorage" version)) + (sha256 + (base32 + "0wncr3h94jsjmmqqmmips9vgy2kf1zhb96rlv5fbrgqplfhvpyag")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) + (propagated-inputs + `(("ruby-actionpack" ,ruby-actionpack) + ("ruby-activerecord" ,ruby-activerecord) + ("ruby-marcel" ,ruby-marcel))) + (synopsis + "Attach cloud and local files in Rails applications.") + (description + "Attach cloud and local files in Rails applications.") + (home-page "http://rubyonrails.org") + (license license:expat))) + +(define-public ruby-actionmailer + (package + (name "ruby-actionmailer") + (version "5.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "actionmailer" version)) + (sha256 + (base32 + "0h1nqg47jap0wzp0dhlnck4xjijfvdfw49aipjp8y2ihdpvyqrx6")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; tests not included + (propagated-inputs + `(("ruby-actionpack" ,ruby-actionpack) + ("ruby-actionview" ,ruby-actionview) + ("ruby-activejob" ,ruby-activejob) + ("ruby-mail" ,ruby-mail) + ("ruby-rails-dom-testing" + ,ruby-rails-dom-testing))) + (synopsis + "Email on Rails. Compose, deliver, receive, and test emails using the familiar controller/view pattern. First-class support for multipart email and attachments.") + (description + "Email on Rails. Compose, deliver, receive, and test emails using the familiar controller/view pattern. First-class support for multipart email and attachments.") + (home-page "http://www.rubyonrails.org") + (license license:expat))) + +(define-public ruby-discard + (package + (name "ruby-discard") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "discard" version)) + (sha256 + (base32 + "1vyxhy7yz6l6kkys65kd7b5lj79ajvh495qqhvzn60wlz2dpap7r")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-activerecord" ,ruby-activerecord))) + (synopsis + "Allows marking ActiveRecord objects as discarded, and provides scopes for filtering.") + (description + "Allows marking ActiveRecord objects as discarded, and provides scopes for filtering.") + (home-page + "https://github.com/jhawthorn/discard") + (license license:expat))) + +(define-public ruby-railties + (package + (name "ruby-railties") + (version "5.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "railties" version)) + (sha256 + (base32 + "19y343dvb7vih82q2ssyhp1cirmp5sp1vpw4k5zmd1bxxkjix9qv")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; tests not included + (propagated-inputs + `(("ruby-actionpack" ,ruby-actionpack) + ("ruby-activesupport" ,ruby-activesupport) + ("ruby-method-source" ,ruby-method-source) + ("ruby-thor" ,ruby-thor))) + (synopsis + "Rails internals: application bootup, plugins, generators, and rake tasks.") + (description + "Rails internals: application bootup, plugins, generators, and rake tasks.") + (home-page "http://www.rubyonrails.org") + (license license:expat))) + +(define-public ruby-sprockets-rails + (package + (name "ruby-sprockets-rails") + (version "3.1.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "sprockets-rails" version)) + (sha256 + (base32 + "1sak0as7ka964f6zjb1w8hkvfkkbf55kpcyvh7k6nyrb6pqnwmnf")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; tests not included + (propagated-inputs + `(("ruby-actionpack" ,ruby-actionpack) + ("ruby-activesupport" ,ruby-activesupport) + ("ruby-sprockets" ,ruby-sprockets))) + (synopsis "Sprockets Rails integration") + (description "Sprockets Rails integration") + (home-page + "https://github.com/rails/sprockets-rails") + (license license:expat))) + +(define-public ruby-sass-rails + (package + (name "ruby-sass-rails") + (version "5.0.6") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "sass-rails" version)) + (sha256 + (base32 + "0iji20hb8crncz14piss1b29bfb6l89sz3ai5fny3iw39vnxkdcb")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; No tests are included in gem. + (propagated-inputs + `(("ruby-railties" ,ruby-railties) + ("ruby-sass" ,ruby-sass) + ("ruby-sprockets" ,ruby-sprockets) + ("ruby-sprockets-rails" ,ruby-sprockets-rails) + ("ruby-tilt" ,ruby-tilt))) + (synopsis + "Sass adapter for the Rails asset pipeline.") + (description + "Sass adapter for the Rails asset pipeline.") + (home-page "https://github.com/rails/sass-rails") + (license license:expat))) + +(define-public ruby-coffee-rails + (package + (name "ruby-coffee-rails") + (version "4.2.2") + (source + (origin + (method url-fetch) + ;; Tests are not distributed at rubygems.org so download from GitHub + ;; instead. + (uri (string-append "https://github.com/rails/coffee-rails/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1zbcs26dnic3ws1p0chggjrcjwkrgv445l765s4r615y1wqq1nfp")) + (patches (search-patches "ruby-coffee-rails-fix-rakefile.patch")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; Tests require rails, disable to precent circular dependency. + (propagated-inputs + `(("ruby-coffee-script" ,ruby-coffee-script) + ("ruby-railties" ,ruby-railties))) + (synopsis + "CoffeeScript adapter for the Rails asset pipeline.") + (description + "CoffeeScript adapter for the Rails asset pipeline.") + (home-page + "https://github.com/rails/coffee-rails") + (license license:expat))) + +(define-public ruby-jquery-rails + (package + (name "ruby-jquery-rails") + (version "4.3.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "jquery-rails" version)) + (sha256 + (base32 + "02ii77vwxc49f2lrkbdzww2168bp5nihwzakc9mqyrsbw394w7ki")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) + (native-inputs + `(("bundler" ,bundler))) + (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 + "http://rubygems.org/gems/jquery-rails") + (license license:expat))) + +(define-public ruby-web-console + (package + (name "ruby-web-console") + (version "3.3.1") + (source + (origin + (method url-fetch) + ;; Download from GitHub as test files are not provided in the gem. + (uri (string-append "https://github.com/rails/web-console/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1gmymwvgwqjv4gmg2vb0abm6flwax9sg73wmh6yb7m818pn2lz3n")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; Do not test to prevent dependency cycle with rails. + ;; (arguments + ;; `(#:phases + ;; (modify-phases %standard-phases + ;; (add-before 'check 'setenv + ;; (lambda _ + ;; (setenv "RUBYLIB" "lib") + ;; ;; (substitute* "Rakefile" + ;; ;; (("require 'web_console") ; This is not required for + ;; ;; ; travis, so hmm. + ;; ;; "require 'pathname'; require 'uri'; require 'web_console")) + ;; #t))))) + ;; (native-inputs + ;; `(("bundler" ,bundler))) + (propagated-inputs + `(("ruby-actionview" ,ruby-actionview) + ("ruby-activemodel" ,ruby-activemodel) + ("ruby-debug-inspector" ,ruby-debug-inspector) + ("ruby-railties" ,ruby-railties))) + (synopsis + "A debugging tool for your Ruby on Rails applications.") + (description + "This package provides a debugging tool for your Ruby on Rails applications.") + (home-page + "https://github.com/rails/web-console") + (license license:expat))) + +(define-public ruby-with-advisory-lock + (package + (name "ruby-with-advisory-lock") + (version "3.2.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "with_advisory_lock" version)) + (sha256 + (base32 + "1gdwy0mmhn199n1sh42j14m47chbhbdym3sah4yz3igpj1l956r7")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) + (propagated-inputs + `(("ruby-activerecord" ,ruby-activerecord))) + (synopsis "Advisory locking for ActiveRecord") + (description "Advisory locking for ActiveRecord") + (home-page + "https://github.com/mceachen/with_advisory_lock") + (license license:expat))) + +(define-public ruby-rails + (package + (name "ruby-rails") + (version "5.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rails" version)) + (sha256 + (base32 + "1307cv1p6cj350hq2mi00dfgjb77rzvlhrr3h0bjz5s0a6jgwv3p")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; No tests included in gem. TODO: download from GitHub so + ; tests can be run. + (propagated-inputs + `(("ruby-actioncable" ,ruby-actioncable) + ("ruby-actionmailer" ,ruby-actionmailer) + ("ruby-actionpack" ,ruby-actionpack) + ("ruby-actionview" ,ruby-actionview) + ("ruby-activejob" ,ruby-activejob) + ("ruby-activemodel" ,ruby-activemodel) + ("ruby-activerecord" ,ruby-activerecord) + ("ruby-activestorage" ,ruby-activestorage) + ("ruby-activesupport" ,ruby-activesupport) + ("bundler" ,bundler) + ("ruby-railties" ,ruby-railties) + ("ruby-sprockets-rails" ,ruby-sprockets-rails) + ("ruby-spring" ,ruby-spring) + ("ruby-sqlite3" ,ruby-sqlite3) + ("ruby-puma" ,ruby-puma) + ("ruby-sass-rails" ,ruby-sass-rails) + ("ruby-uglifier" ,ruby-uglifier) + ("ruby-coffee-rails" ,ruby-coffee-rails) + ("ruby-jquery-rails" ,ruby-jquery-rails) + ("ruby-turbolinks" ,ruby-turbolinks) + ("ruby-jbuilder" ,ruby-jbuilder) + ("ruby-byebug" ,ruby-byebug) + ("ruby-web-console" ,ruby-web-console) + ("ruby-listen" ,ruby-listen-3.0) + ("ruby-spring-watcher-listen" ,ruby-spring-watcher-listen))) + (synopsis + "Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration.") + (description + "Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration.") + (home-page "http://www.rubyonrails.org") + (license license:expat))) + +(define-public ruby-squasher + (package + (name "ruby-squasher") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "squasher" version)) + (sha256 + (base32 + "1z7s4qllbqa27h4qf52h3hacs6y7zksnw32r2qkgs4spsd4x9s2h")))) + (build-system ruby-build-system) + (arguments + '(#:test-target "spec")) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec))) + (synopsis "Squash your old migrations") + (description "Squash your old migrations") + (home-page "https://github.com/jalkoby/squasher") + (license license:expat))) + +(define-public ruby-annotate + (package + (name "ruby-annotate") + (version "2.7.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "annotate" version)) + (sha256 + (base32 + "079y33iy65nv1cqnh1zmi3v2y9yp1z3zzsf2wdh35m3c80v6kaz4")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'patch-annotate + (lambda _ + (substitute* "bin/annotate" + (("require 'bundler'") + "") + (("Bundler.setup") + ""))))))) + (propagated-inputs + `(("ruby-activerecord" ,ruby-activerecord) + ("ruby-activesupport" ,ruby-activesupport))) + (synopsis + "Annotates Rails/ActiveRecord Models, routes, fixtures, and others based on the database schema.") + (description + "Annotates Rails/ActiveRecord Models, routes, fixtures, and others based on the database schema.") + (home-page + "http://github.com/ctran/annotate_models") + (license #f))) |