Re: [PATCH] gnu: Add ruby-rack.
On Mon, Sep 7, 2015 at 12:02 PM, Ludovic Courtès wrote: > David Thompson skribis: > >> From a740a5ca98c02bd0e9c792677dfc8ff8464c8365 Mon Sep 17 00:00:00 2001 >> From: David Thompson >> Date: Fri, 4 Sep 2015 16:47:52 -0400 >> Subject: [PATCH] gnu: Add ruby-rack. >> >> * gnu/packages/ruby.scm (ruby-rack): New variable. > > [...] > >> + (add-before 'check 'fix-tests >> + (lambda _ >> + ;; A few of the tests use the length of a file on disk for >> + ;; Content-Length and Content-Range headers. However, this >> file >> + ;; has a shebang in it which an earlier phase patches, growing >> + ;; the file size from 193 to 239 bytes. >> + (substitute* '("test/spec_file.rb") >> + (("193") "239") > > I think this phase should use the actual length of the shebang, in case > the store is not at /gnu/store, with something like: > > (- (string-length (which "ruby")) (string-length "/usr/bin/ruby")) > > Could you look into it? Good point. It was easy to implement, too: (let ((size-diff (- (string-length (which "ruby")) (string-length "/usr/bin/env ruby" (substitute* '("test/spec_file.rb") (("193") (number->string (+ 193 size-diff))) (("bytes(.)22-33" all delimiter) (string-append "bytes" delimiter (number->string (+ 22 size-diff)) "-" (number->string (+ 33 size-diff)) Pushed, thanks! - Dave
Re: [PATCH] gnu: Add ruby-rack.
David Thompson skribis: > From a740a5ca98c02bd0e9c792677dfc8ff8464c8365 Mon Sep 17 00:00:00 2001 > From: David Thompson > Date: Fri, 4 Sep 2015 16:47:52 -0400 > Subject: [PATCH] gnu: Add ruby-rack. > > * gnu/packages/ruby.scm (ruby-rack): New variable. [...] > + (add-before 'check 'fix-tests > + (lambda _ > + ;; A few of the tests use the length of a file on disk for > + ;; Content-Length and Content-Range headers. However, this file > + ;; has a shebang in it which an earlier phase patches, growing > + ;; the file size from 193 to 239 bytes. > + (substitute* '("test/spec_file.rb") > + (("193") "239") I think this phase should use the actual length of the shebang, in case the store is not at /gnu/store, with something like: (- (string-length (which "ruby")) (string-length "/usr/bin/ruby")) Could you look into it? TIA, Ludo’.
[PATCH] gnu: Add ruby-rack.
>From a740a5ca98c02bd0e9c792677dfc8ff8464c8365 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Fri, 4 Sep 2015 16:47:52 -0400 Subject: [PATCH] gnu: Add ruby-rack. * gnu/packages/ruby.scm (ruby-rack): New variable. --- gnu/packages/ruby.scm | 37 + 1 file changed, 37 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 9bfa14c..906b6eb 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1072,3 +1072,40 @@ build on. It provides breakpoint handling and bindings for stack frames among other things and it comes with a command line interface.") (home-page "http://github.com/deivid-rodriguez/byebug";) (license license:bsd-3))) + +(define-public ruby-rack + (package +(name "ruby-rack") +(version "1.6.4") +(source + (origin + (method url-fetch) + (uri (rubygems-uri "rack" version)) + (sha256 +(base32 + "09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5" +(build-system ruby-build-system) +(arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-tests + (lambda _ + ;; A few of the tests use the length of a file on disk for + ;; Content-Length and Content-Range headers. However, this file + ;; has a shebang in it which an earlier phase patches, growing + ;; the file size from 193 to 239 bytes. + (substitute* '("test/spec_file.rb") + (("193") "239") + ;; Adjust by 46 bytes to accomodate patched shebang. + (("bytes(.)22-33" all delimiter) +(string-append "bytes" delimiter "68-79"))) + #t) +(native-inputs + `(("ruby-bacon" ,ruby-bacon))) +(synopsis "Unified web application interface for Ruby") +(description "Rack provides a minimal, modular and adaptable interface for +developing web applications in Ruby. By wrapping HTTP requests and responses, +it unifies the API for web servers, web frameworks, and software in between +into a single method call.") +(home-page "http://rack.github.io/";) +(license license:expat))) -- 2.5.0 -- David Thompson GPG Key: 0FF1D807