summaryrefslogtreecommitdiff
path: root/gnu/packages/rails.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/rails.scm')
-rw-r--r--gnu/packages/rails.scm372
1 files changed, 372 insertions, 0 deletions
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 5348d914cf..2d7ccceff7 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -20,6 +20,7 @@
(define-module (gnu packages rails)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (gnu packages ruby)
#:use-module (guix build-system ruby))
@@ -93,3 +94,374 @@ API.")
(home-page
"https://github.com/banister/debug_inspector")
(license license:expat)))
+
+(define-public ruby-activemodel
+ (package
+ (name "ruby-activemodel")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "activemodel" version))
+ (sha256
+ (base32
+ "1xmwi3mw8g4shbjvkhk72ra3r5jccbdsd4piphqka2y1h8s7sxvi"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-activesupport" ,ruby-activesupport)))
+ (synopsis "Toolkit for building modeling frameworks like Active Record")
+ (description
+ "This package provides a toolkit for building modeling frameworks like
+Active Record. ActiveSupport handles attributes, callbacks, validations,
+serialization, internationalization, and testing.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
+
+(define-public ruby-activerecord
+ (package
+ (name "ruby-activerecord")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "activerecord" version))
+ (sha256
+ (base32
+ "19a0sns6a5wz2wym25lb1dv4lbrrl5sd1n15s5ky2636znmhz30y"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-activemodel" ,ruby-activemodel)
+ ("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-arel" ,ruby-arel)))
+ (synopsis "Ruby library to connect to relational databases")
+ (description
+ "Active Record connects classes to relational database table to establish
+an almost zero-configuration persistence layer for applications.")
+ (home-page "https://rubyonrails.org")
+ (license license:expat)))
+
+(define-public ruby-rails-html-sanitizer
+ (package
+ (name "ruby-rails-html-sanitizer")
+ (version "1.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rails-html-sanitizer" version))
+ (sha256
+ (base32
+ "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-loofah" ,ruby-loofah)))
+ (synopsis "HTML sanitization for Rails applications")
+ (description
+ "This gem is used to handle HTML sanitization in Rails applications. If
+you need similar functionality in non Rails apps consider using Loofah
+directly.")
+ (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 git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rails/rails-dom-testing.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0zrg6x1w3wjgklbhcphjmggl11jx5s8cl21qjqij7wknm412i5wl"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("bundler" ,bundler)))
+ (propagated-inputs
+ `(("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-nokogiri" ,ruby-nokogiri)))
+ (synopsis "Compare HTML DOMs and assert certain elements exists")
+ (description
+ "This gem can compare HTML and assert certain elements exists. This is
+useful when writing tests.")
+ (home-page "https://github.com/rails/rails-dom-testing")
+ (license license:expat)))
+
+(define-public ruby-actionview
+ (package
+ (name "ruby-actionview")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "actionview" version))
+ (sha256
+ (base32
+ "1lz04drbi1z0xhvb8jnr14pbf505lilr02arahxq7y3mxiz0rs8z"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (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 "Conventions and helpers for building web pages")
+ (description
+ "ActionView provides conventions and helpers for building web pages in
+Ruby.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
+
+(define-public ruby-actionpack
+ (package
+ (name "ruby-actionpack")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "actionpack" version))
+ (sha256
+ (base32
+ "0iwhbqqn0cm39dq040iwq8cfyclqk3kyzwlp5k3j5cz8k2668wws"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (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 "Conventions for building and testing MVC web applications")
+ (description
+ "ActionPack provides conventions for building and testing MVC web
+applications. These work with any Rack-compatible server.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
+
+(define-public ruby-actioncable
+ (package
+ (name "ruby-actioncable")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "actioncable" version))
+ (sha256
+ (base32
+ "0826k5ch0l03f9yrkxy69aiv039z4qi00lnahw2rzywd2iz6r68x"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-actionpack" ,ruby-actionpack)
+ ("ruby-nio4r" ,ruby-nio4r)
+ ("ruby-websocket-driver" ,ruby-websocket-driver)))
+ (synopsis "Integrate integrates WebSockets with Rails applications")
+ (description
+ "Action Cable integrates WebSockets with Rails applications. Through
+WebSockets it allows for real-time features in web applications.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
+
+(define-public ruby-activejob
+ (package
+ (name "ruby-activejob")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "activejob" version))
+ (sha256
+ (base32
+ "1jjkl62x2aprg55x9rpm0h2c82vr2qr989hg3l9r21l01q4822ir"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-globalid" ,ruby-globalid)))
+ (synopsis "Declare job classes for multiple backends")
+ (description
+ "ActiveJob allows declaring job classes in a common way across Rails
+applications.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
+
+(define-public ruby-activestorage
+ (package
+ (name "ruby-activestorage")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "activestorage" version))
+ (sha256
+ (base32
+ "0c72837098sw384vk6dmrb2p7q3wx4swnibk6sw9dp4hn1vc4p31"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-actionpack" ,ruby-actionpack)
+ ("ruby-activerecord" ,ruby-activerecord)
+ ("ruby-marcel" ,ruby-marcel)))
+ (synopsis "Integrate file storage services in to Rails applications")
+ (description
+ "ActiveStorage integrates file storage services with Rails applications,
+allowing files to be attached to ActiveRecord models..")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
+
+(define-public ruby-actionmailer
+ (package
+ (name "ruby-actionmailer")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "actionmailer" version))
+ (sha256
+ (base32
+ "0sfpb8s95cmkpp9ybyp2c88r55r5llscmmnkfwcwgasz9ncjiq5n"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (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 "Work with emails using the controller/view pattern")
+ (description
+ "Compose, deliver, receive, and test emails using the controller/view
+pattern. Including support for multipart email and attachments.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
+
+(define-public ruby-railties
+ (package
+ (name "ruby-railties")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "railties" version))
+ (sha256
+ (base32
+ "00pnylmbz4c46mxw5lhxi8h39lndfg6fs1hpd0qd6swnjhkqsr1l"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-actionpack" ,ruby-actionpack)
+ ("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-method-source" ,ruby-method-source)
+ ("ruby-thor" ,ruby-thor)))
+ (synopsis "Rails internals, including application bootup and generators")
+ (description
+ "@code{railties} provides the core Rails internals including handling
+application bootup, plugins, generators, and Rake tasks.")
+ (home-page "https://rubyonrails.org/")
+ (license license:expat)))
+
+(define-public ruby-sprockets-rails
+ (package
+ (name "ruby-sprockets-rails")
+ (version "3.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "sprockets-rails" version))
+ (sha256
+ (base32
+ "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; No included tests
+ #:tests? #f))
+ (propagated-inputs
+ `(("ruby-actionpack" ,ruby-actionpack)
+ ("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-sprockets" ,ruby-sprockets)))
+ (synopsis "Sprockets Rails integration")
+ (description
+ "Provides Sprockets implementation for the Rails Asset Pipeline.")
+ (home-page
+ "https://github.com/rails/sprockets-rails")
+ (license license:expat)))
+
+(define-public ruby-rails
+ (package
+ (name "ruby-rails")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rails" version))
+ (sha256
+ (base32
+ "1m9cszds68dsiycciiayd3c9g90s2yzn1izkr3gpgqkfw6dmvzyr"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; This gem acts as glue between the gems that actually make up
+ ;; Rails. The important thing to check is that the gemspec matches up
+ ;; with the Guix packages and Rubygems can successfully activate the
+ ;; Rails gem.
+ ;;
+ ;; The following check phase tests this.
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key tests? outputs #:allow-other-keys)
+ (setenv "GEM_PATH"
+ (string-append
+ (getenv "GEM_PATH")
+ ":"
+ (assoc-ref outputs "out") "/lib/ruby/vendor_ruby"))
+ (when tests?
+ (invoke "ruby" "-e" "gem 'rails'"))
+ #t)))))
+ (propagated-inputs
+ `(("ruby-activesupport" ,ruby-activesupport)
+ ("ruby-actionpack" ,ruby-actionpack)
+ ("ruby-actionview" ,ruby-actionview)
+ ("ruby-activemodel" ,ruby-activemodel)
+ ("ruby-activerecord" ,ruby-activerecord)
+ ("ruby-actionmailer" ,ruby-actionmailer)
+ ("ruby-activejob" ,ruby-activejob)
+ ("ruby-actioncable" ,ruby-actioncable)
+ ("ruby-activestorage" ,ruby-activestorage)
+ ("ruby-railties" ,ruby-railties)
+ ("bundler" ,bundler)
+ ("ruby-sprockets-rails" ,ruby-sprockets-rails)))
+ (synopsis "Full-stack web framework optimized for programmer happiness")
+ (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 "https://rubyonrails.org/")
+ (license license:expat)))