From 3355e49cf809dc276cd5c78f6b6a88ce99ac1a7e Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Mon, 25 Feb 2019 16:10:58 +0100 Subject: gnu: ruby-rack-protection: Update to 2.0.5. * gnu/packages/ruby.scm (ruby-rack-protection): Update to 2.0.5. --- gnu/packages/ruby.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu/packages/ruby.scm') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 53df4cf9fc..e6f73e591a 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2017, 2018, 2019 Christopher Baines ;;; Copyright © 2018 Vasile Dumitrascu ;;; Copyright © 2018 Alex Vong +;;; Copyright © 2019 Pierre Neidhardt ;;; ;;; This file is part of GNU Guix. ;;; @@ -4982,14 +4983,14 @@ testing libraries to build on.") (define-public ruby-rack-protection (package (name "ruby-rack-protection") - (version "2.0.3") + (version "2.0.5") (source (origin (method url-fetch) (uri (rubygems-uri "rack-protection" version)) (sha256 (base32 - "1z5598qipilmnf45428jnxi63ykrgvnyywa5ckpr52zv2vpd8jdp")))) + "15167q25rmxipqwi6hjqj3i1byi9iwl3xq9b7mdar7qiz39pmjsk")))) (build-system ruby-build-system) (arguments '(;; Tests missing from the gem. -- cgit v1.2.3 From acb9e3d8ccadb18244cf9e0cd1f12e87d9488bf5 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 28 Feb 2019 18:40:13 +0100 Subject: gnu: Add ruby-mustermann. * gnu/packages/ruby.scm (ruby-mustermann): New variable. --- gnu/packages/ruby.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'gnu/packages/ruby.scm') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index e6f73e591a..1a5097c075 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -8380,3 +8380,25 @@ uniquely identify it.") serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.") (home-page "https://github.com/rails/sprockets") (license license:expat))) + +(define-public ruby-mustermann + (package + (name "ruby-mustermann") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "mustermann" version)) + (sha256 + (base32 + "0lycgkmnyy0bf29nnd2zql5a6pcf8sp69g9v4xw0gcfcxgpwp7i1")))) + (build-system ruby-build-system) + (arguments + ;; No tests. + '(#:tests? #f)) + (synopsis "Library implementing patterns that behave like regular expressions") + (description "Given a string pattern, Mustermann will turn it into an +object that behaves like a regular expression and has comparable performance +characteristics.") + (home-page "https://github.com/sinatra/mustermann") + (license license:expat))) -- cgit v1.2.3 From 3bb094e282e58becdbe16a7a3b9af9011eb12d3c Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 28 Feb 2019 18:40:50 +0100 Subject: gnu: Add ruby-sinatra. * gnu/packages/ruby.scm (ruby-sinatra): New variable. --- gnu/packages/ruby.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu/packages/ruby.scm') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 1a5097c075..61c4fd097d 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -8402,3 +8402,27 @@ object that behaves like a regular expression and has comparable performance characteristics.") (home-page "https://github.com/sinatra/mustermann") (license license:expat))) + +(define-public ruby-sinatra + (package + (name "ruby-sinatra") + (version "2.0.5") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "sinatra" version)) + (sha256 + (base32 + "1gasgn5f15myv08k10i16p326pchxjsy37pgqfw0xm66kcc5d7ry")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-mustermann" ,ruby-mustermann) + ("ruby-rack" ,ruby-rack) + ("ruby-rack-protection" ,ruby-rack-protection) + ("ruby-tilt" ,ruby-tilt))) + (synopsis "DSL for quick web applications creation in Ruby") + (description + "Sinatra is a DSL for quickly creating web applications in Ruby with +minimal effort.") + (home-page "http://sinatrarb.com/") + (license license:expat))) -- cgit v1.2.3 From 6e87695ba45eb68edbc4026240c10c8b819fe18f Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 28 Feb 2019 18:41:04 +0100 Subject: gnu: Add ruby-thin. * gnu/packages/ruby.scm (ruby-thin): New variable. --- gnu/packages/ruby.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'gnu/packages/ruby.scm') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 61c4fd097d..2902a67878 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -8426,3 +8426,33 @@ characteristics.") minimal effort.") (home-page "http://sinatrarb.com/") (license license:expat))) + +(define-public ruby-thin + (package + (name "ruby-thin") + (version "1.7.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "thin" version)) + (sha256 + (base32 + "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f")))) + (build-system ruby-build-system) + (arguments + ;; No tests. + '(#:tests? #f)) + (propagated-inputs + `(("ruby-daemons" ,ruby-daemons) + ("ruby-eventmachine" ,ruby-eventmachine) + ("ruby-rack" ,ruby-rack))) + (synopsis "Thin and fast web server for Ruby") + (description "Thin is a Ruby web server that glues together 3 Ruby libraries: +@itemize +@item the Mongrel parser, +@item Event Machine, a network I/O library with high scalability, performance +and stability, +@item Rack, a minimal interface between webservers and Ruby frameworks. +@end itemize\n") + (home-page "http://code.macournoyer.com/thin/") + (license license:ruby))) -- cgit v1.2.3 From be6016db4bb7caafe7d375d7a3a9908f08ce101a Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 28 Feb 2019 18:41:16 +0100 Subject: gnu: Add ruby-skinny. * gnu/packages/ruby.scm (ruby-skinny): New variable. --- gnu/packages/ruby.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'gnu/packages/ruby.scm') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 2902a67878..0869a2a5c3 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -8456,3 +8456,35 @@ and stability, @end itemize\n") (home-page "http://code.macournoyer.com/thin/") (license license:ruby))) + +(define-public ruby-skinny + (package + (name "ruby-skinny") + (version "0.2.4") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "skinny" version)) + (sha256 + (base32 + "1y3yvx88ylgz4d2s1wskjk5rkmrcr15q3ibzp1q88qwzr5y493a9")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f ; No included tests + #:phases + (modify-phases %standard-phases + (add-before 'build 'patch-gemspec + (lambda _ + (substitute* ".gemspec" + ((".freeze, \\[\\\"~> 1.0.0\"") + ", [\">= 1.0.0\"") + ((".freeze, \\[\\\"< 1.7\", ") ", [")) + #t))))) + (propagated-inputs + `(("ruby-eventmachine" ,ruby-eventmachine) + ("ruby-thin" ,ruby-thin))) + (synopsis "Simple, upgradable WebSockets for Ruby Thin") + (description "Skinny is a simple, upgradable WebSockets for Ruby, using +the Thin library.") + (home-page "https://github.com/sj26/skinny") + (license license:expat))) -- cgit v1.2.3 From df747c8d68dffd665e72cb0f8e8f05ea64d5d54c Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 28 Feb 2019 18:41:29 +0100 Subject: gnu: Add mailcatcher. * gnu/packages/ruby.scm (mailcatcher): New variable. --- gnu/packages/ruby.scm | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'gnu/packages/ruby.scm') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 0869a2a5c3..66eb2607e6 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -8488,3 +8488,56 @@ and stability, the Thin library.") (home-page "https://github.com/sj26/skinny") (license license:expat))) + +(define-public mailcatcher + (package + (name "mailcatcher") + (version "0.7.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "mailcatcher" version)) + (sha256 + (base32 + "02w1ycyfv7x0sh9799lz7xa65p5qvl5z4pa8a7prb68h2zwkfq0n")))) + (build-system ruby-build-system) + (arguments + ;; Tests require web/assets which is not included in the output. We + ;; might be able to fix this by adding the Git repository to the GEM_PATH + ;; of the tests. See ruby-mysql2. + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'patch-gemspec + (lambda _ + (substitute* ".gemspec" + ((".freeze, \\[\\\"= 1.0.9.1") + ", [\">= 1.0.9.1") + ((".freeze, \\[\\\"~> 1.5") ", [\">= 1.5") + ((".freeze, \\[\\\"~> 1.5.0") ", [\">= 1.5.0") + ((".freeze, \\[\\\"~> 1.2") ", [\">= 1.2")) + #t)) + (add-before 'build 'loosen-dependency-contraint + (lambda _ + (substitute* "lib/mail_catcher.rb" + (("\"eventmachine\", \"1.0.9.1\"") "\"eventmachine\", \">= 1.0.9.1\"") + (("\"rack\", \"~> 1.5\"") "\"rack\", \">= 1.5\"") + (("\"thin\", \"~> 1.5.0\"") "\"thin\", \">= 1.5.0\"") + (("\"sinatra\", \"~> 1.2\"") "\"sinatra\", \">= 1.2\"")) + #t))))) + (inputs + `(("ruby-eventmachine" ,ruby-eventmachine) + ("ruby-mail" ,ruby-mail) + ("ruby-rack" ,ruby-rack) + ("ruby-sinatra" ,ruby-sinatra) + ("ruby-skinny" ,ruby-skinny) + ("ruby-sqlite3" ,ruby-sqlite3) + ("ruby-thin" ,ruby-thin))) + (synopsis "SMTP server which catches messages to display them a browser") + (description + "MailCatcher runs a super simple SMTP server which catches any message +sent to it to display in a web interface. Run mailcatcher, set your favourite +app to deliver to smtp://127.0.0.1:1025 instead of your default SMTP server, +then check out http://127.0.0.1:1080 to see the mail.") + (home-page "https://mailcatcher.me") + (license license:expat))) -- cgit v1.2.3 From 933dad9156bfb05fc264fda01de351839403316b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 8 Mar 2019 00:04:33 +0100 Subject: gnu: Add mruby. * gnu/packages/ruby.scm (mruby): New variable. --- gnu/packages/ruby.scm | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'gnu/packages/ruby.scm') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 66eb2607e6..818553848d 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -34,6 +34,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) @@ -160,6 +161,66 @@ a focus on simplicity and productivity.") (delete-file-recursively "ext/fiddle/libffi-3.2.1") #t)))))) +(define-public mruby + (package + (name "mruby") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mruby/mruby.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1r6w1asjshff43ymdwa6xmrkggza99mi2kw88k7ic6ag2j81hcj5")))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'enable-verbose-tests + (lambda _ + (substitute* "Makefile" + (("ruby ./minirake" m) + (string-append m " --verbose"))) + #t)) + (add-after 'unpack 'disable-broken-tests + (lambda _ + (substitute* "mrbgems/mruby-io/test/io.rb" + (("assert\\('IO.popen.+$" m) + (string-append m "skip \"Hangs in the Guix build environment\"\n")) + (("assert\\('IO#isatty.+$" m) + (string-append m "skip \"Disable for Guix; there is no /dev/tty\"\n")) + ;; This one is really weird. The *expected* output is all wrong. + (("assert\\('`cmd`.*" m) + (string-append m "skip \"Disable for Guix\"\n")) + (("echo foo") + (string-append (which "echo") " foo"))) + #t)) + ;; There is no install target + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lib (string-append out "/lib"))) + (mkdir-p bin) + (copy-recursively "build/host/bin" bin) + (mkdir-p lib) + (copy-recursively "build/host/lib" lib)) + #t))))) + (native-inputs + `(("ruby" ,ruby) + ("bison" ,bison))) + (home-page "https://github.com/mruby/mruby") + (synopsis "Lightweight Ruby") + (description "mruby is the lightweight implementation of the Ruby +language. Its syntax is Ruby 1.9 compatible. mruby can be linked and +embedded within your application.") + (license license:expat))) + (define-public ruby-commander (package (name "ruby-commander") -- cgit v1.2.3