summary refs log tree commit diff
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)))