summaryrefslogtreecommitdiff
path: root/gnu/packages/ruby.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r--gnu/packages/ruby.scm217
1 files changed, 133 insertions, 84 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 6c2e08f29d..c6b6eedb9d 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -423,13 +423,13 @@ expectations and mocks frameworks.")
(define-public bundler
(package
(name "bundler")
- (version "1.11.2")
+ (version "1.12.5")
(source (origin
(method url-fetch)
(uri (rubygems-uri "bundler" version))
(sha256
(base32
- "0s37j1hyngc4shq0in8f9y1knjdqkisdg3dd1mfwgq7n1bz8zan7"))))
+ "1q84xiwm9j771lpmiply0ls9l2bpvl5axn3jblxjvrldh8di2pkc"))))
(build-system ruby-build-system)
(arguments
'(#:tests? #f)) ; avoid dependency cycles
@@ -1707,6 +1707,33 @@ instance, it provides @code{assert_true}, @code{assert_false} and
(home-page "http://blowmage.com/minitest-rg")
(license license:expat)))
+(define-public ruby-minitest-hooks
+ (package
+ (name "ruby-minitest-hooks")
+ (version "1.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "minitest-hooks" version))
+ (sha256
+ (base32
+ "092fymh0c09v3a585qw3hc15b0zf159s74rxx1ga87drk5jr958z"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:test-target "spec"))
+ (native-inputs
+ `(("ruby-sequel" ,ruby-sequel)
+ ("ruby-sqlite3" ,ruby-sqlite3)))
+ (synopsis "Hooks for the minitest framework")
+ (description
+ "Minitest-hooks adds @code{around}, @code{before_all}, @code{after_all},
+@code{around_all} hooks for Minitest. This allows, for instance, running each
+suite of specs inside a database transaction, running each spec inside its own
+savepoint inside that transaction. This can significantly speed up testing
+for specs that share expensive database setup code.")
+ (home-page "http://github.com/jeremyevans/minitest-hooks")
+ (license license:expat)))
+
(define-public ruby-daemons
(package
(name "ruby-daemons")
@@ -1871,24 +1898,24 @@ to reproduce user environments.")
(define-public ruby-mini-portile-2
(package (inherit ruby-mini-portile)
- (version "2.0.0")
+ (version "2.1.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "mini_portile2" version))
(sha256
(base32
- "056drbn5m4khdxly1asmiik14nyllswr6sh3wallvsywwdiryz8l"))))))
+ "1y25adxb1hgg1wb2rn20g3vl07qziq6fz364jc5694611zz863hb"))))))
(define-public ruby-nokogiri
(package
(name "ruby-nokogiri")
- (version "1.6.7.1")
+ (version "1.6.7.2")
(source (origin
(method url-fetch)
(uri (rubygems-uri "nokogiri" version))
(sha256
(base32
- "12nwv3lad5k2k73aa1d1xy4x577c143ixks6rs70yp78sinbglk2"))))
+ "11sbmpy60ynak6s3794q32lc99hs448msjy8rkp84ay7mq7zqspv"))))
(build-system ruby-build-system)
(arguments
;; Tests fail because Nokogiri can only test with an installed extension,
@@ -1897,7 +1924,13 @@ to reproduce user environments.")
#:gem-flags (list "--" "--use-system-libraries"
(string-append "--with-xml2-include="
(assoc-ref %build-inputs "libxml2")
- "/include/libxml2" ))))
+ "/include/libxml2" ))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'extract-gemspec 'update-dependency
+ (lambda _
+ (substitute* ".gemspec" (("2.0.0.rc2") "2.0"))
+ #t)))))
(native-inputs
`(("ruby-hoe" ,ruby-hoe)
("ruby-rake-compiler" ,ruby-rake-compiler)))
@@ -2505,67 +2538,68 @@ multibyte strings, internationalization, time zones, and testing.")
(license license:expat)))
(define-public ruby-nokogumbo
- (package
- (name "ruby-nokogumbo")
- (version "1.4.6")
- (source (origin
- ;; We use the git reference, because there's no Rakefile in the
- ;; published gem and the tarball on Github is outdated.
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/rubys/nokogumbo.git")
- (commit "d56f954d20a")))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "0bnppjy96xiadrsrc9dp8y6wvdwnkfa930n7acrp0mqm4qywl2wl"))))
- (build-system ruby-build-system)
- (arguments
- `(#:modules ((guix build ruby-build-system)
- (guix build utils)
- (ice-9 rdelim))
- #:phases
- (modify-phases %standard-phases
- (add-before 'build 'build-gemspec
- (lambda _
- (substitute* "Rakefile"
- ;; Build Makefile even without a copy of gumbo-parser sources
- (("'gumbo-parser/src',") "")
- ;; We don't bundle gumbo-parser sources
- (("'gumbo-parser/src/\\*',") "")
- (("'gumbo-parser/visualc/include/\\*',") "")
- ;; The definition of SOURCES will be cut in gemspec, and
- ;; "FileList" will be undefined.
- (("SOURCES \\+ FileList\\[")
- "['ext/nokogumboc/extconf.rb', 'ext/nokogumboc/nokogumbo.c', "))
-
- ;; Copy the Rakefile and cut out the gemspec.
- (copy-file "Rakefile" ".gemspec")
- (with-atomic-file-replacement ".gemspec"
- (lambda (in out)
- (let loop ((line (read-line in 'concat))
- (skipping? #t))
- (if (eof-object? line)
- #t
- (let ((skip-next? (if skipping?
- (not (string-prefix? "SPEC =" line))
- (string-prefix? "end" line))))
- (when (or (not skipping?)
- (and skipping? (not skip-next?)))
- (format #t "~a" line)
- (display line out))
- (loop (read-line in 'concat) skip-next?))))))
- #t)))))
- (inputs
- `(("gumbo-parser" ,gumbo-parser)))
- (propagated-inputs
- `(("ruby-nokogiri" ,ruby-nokogiri)))
- (synopsis "Ruby bindings to the Gumbo HTML5 parser")
- (description
- "Nokogumbo allows a Ruby program to invoke the Gumbo HTML5 parser and
+ (let ((commit "fb51ff299a1c34346837580b6d1d9a60fadf5dbd"))
+ (package
+ (name "ruby-nokogumbo")
+ (version (string-append "1.4.7-1." (string-take commit 8)))
+ (source (origin
+ ;; We use the git reference, because there's no Rakefile in the
+ ;; published gem and the tarball on Github is outdated.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rubys/nokogumbo.git")
+ (commit "d56f954d20a")))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0bnppjy96xiadrsrc9dp8y6wvdwnkfa930n7acrp0mqm4qywl2wl"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:modules ((guix build ruby-build-system)
+ (guix build utils)
+ (ice-9 rdelim))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'build-gemspec
+ (lambda _
+ (substitute* "Rakefile"
+ ;; Build Makefile even without a copy of gumbo-parser sources
+ (("'gumbo-parser/src',") "")
+ ;; We don't bundle gumbo-parser sources
+ (("'gumbo-parser/src/\\*',") "")
+ (("'gumbo-parser/visualc/include/\\*',") "")
+ ;; The definition of SOURCES will be cut in gemspec, and
+ ;; "FileList" will be undefined.
+ (("SOURCES \\+ FileList\\[")
+ "['ext/nokogumboc/extconf.rb', 'ext/nokogumboc/nokogumbo.c', "))
+
+ ;; Copy the Rakefile and cut out the gemspec.
+ (copy-file "Rakefile" ".gemspec")
+ (with-atomic-file-replacement ".gemspec"
+ (lambda (in out)
+ (let loop ((line (read-line in 'concat))
+ (skipping? #t))
+ (if (eof-object? line)
+ #t
+ (let ((skip-next? (if skipping?
+ (not (string-prefix? "SPEC =" line))
+ (string-prefix? "end" line))))
+ (when (or (not skipping?)
+ (and skipping? (not skip-next?)))
+ (format #t "~a" line)
+ (display line out))
+ (loop (read-line in 'concat) skip-next?))))))
+ #t)))))
+ (inputs
+ `(("gumbo-parser" ,gumbo-parser)))
+ (propagated-inputs
+ `(("ruby-nokogiri" ,ruby-nokogiri)))
+ (synopsis "Ruby bindings to the Gumbo HTML5 parser")
+ (description
+ "Nokogumbo allows a Ruby program to invoke the Gumbo HTML5 parser and
access the result as a Nokogiri parsed document.")
- (home-page "https://github.com/rubys/nokogumbo/")
- (license license:asl2.0)))
+ (home-page "https://github.com/rubys/nokogumbo/")
+ (license license:asl2.0))))
(define-public ruby-sanitize
(package
@@ -3129,14 +3163,14 @@ that TURN is no longer being maintained.")
(define-public ruby-mime-types-data
(package
(name "ruby-mime-types-data")
- (version "3.2015.1120")
+ (version "3.2016.0221")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "mime-types-data" version))
(sha256
(base32
- "04fzvy02w8d0rrsg8avncn7h58pvwdxj82aps54srb3sam2dkhic"))))
+ "05ygjn0nnfh6yp1wsi574jckk95wqg9a6g598wk4svvrkmkrzkpn"))))
(build-system ruby-build-system)
(native-inputs
`(("ruby-hoe" ,ruby-hoe)))
@@ -3153,14 +3187,14 @@ look up the likely MIME type definitions.")
(define-public ruby-mime-types
(package
(name "ruby-mime-types")
- (version "3.0")
+ (version "3.1")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "mime-types" version))
(sha256
(base32
- "1snjc38a9vqvy8j41xld1i1byq9prbl955pbjw7dxqcfcirqlzra"))))
+ "0087z9kbnlqhci7fxh9f6il63hj1k02icq2rs0c6cppmqchr753m"))))
(build-system ruby-build-system)
(propagated-inputs
`(("ruby-mime-types-data" ,ruby-mime-types-data)))
@@ -3169,7 +3203,8 @@ look up the likely MIME type definitions.")
("ruby-fivemat" ,ruby-fivemat)
("ruby-minitest-focus" ,ruby-minitest-focus)
("ruby-minitest-rg" ,ruby-minitest-rg)
- ("ruby-minitest-bonus-assertions" ,ruby-minitest-bonus-assertions)))
+ ("ruby-minitest-bonus-assertions" ,ruby-minitest-bonus-assertions)
+ ("ruby-minitest-hooks" ,ruby-minitest-hooks)))
(synopsis "Library and registry for MIME content type definitions")
(description "The mime-types library provides a library and registry for
information about Multipurpose Internet Mail Extensions (MIME) content type
@@ -3265,26 +3300,18 @@ names.")
(define-public ruby-shoulda-matchers
(package
(name "ruby-shoulda-matchers")
- (version "3.0.1")
+ (version "3.1.1")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "shoulda-matchers" version))
(sha256
(base32
- "1agabvb8i39mjrp3kb78nvhl41xk1i258hdwdlj0fm8nj9yzn1jb"))))
+ "1cf6d2d9br82vylr9p362yk9cfrd14jz8v77n0yb0lbcxdbk7xzq"))))
(build-system ruby-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-before 'build 'fix-import
- (lambda _
- ;; A presumed bug reported upstream at
- ;; https://github.com/thoughtbot/shoulda-matchers/pull/871
- (substitute* (string-append "lib/shoulda/matchers/active_model/"
- "validate_inclusion_of_matcher.rb")
- (("^require 'bigdecimal'")
- "require 'bigdecimal'; require 'date'"))))
(replace 'check
(lambda _
;; Do not run tests to avoid circular dependence with rails. Instead
@@ -3380,14 +3407,14 @@ support to both Ruby and JRuby. It uses @code{unf_ext} on CRuby and
(define-public ruby-domain-name
(package
(name "ruby-domain-name")
- (version "0.5.25")
+ (version "0.5.20160310")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "domain_name" version))
(sha256
(base32
- "16qvfrmcwlzz073aas55mpw2nhyhjcn96s524w0g1wlml242hjav"))))
+ "0g1175zspkqhlvl9s11g7p2nbmqpvpxxv02q8csd0ryc81laapys"))))
(build-system ruby-build-system)
(arguments
`(#:phases
@@ -3878,3 +3905,25 @@ part of the Prawn PDF generator.")
;; From the README: "Matz's terms for Ruby, GPLv2, or GPLv3. See LICENSE
;; for details."
(license (list license:gpl2 license:gpl3 license:ruby))))
+
+(define-public ruby-sequel
+ (package
+ (name "ruby-sequel")
+ (version "4.34.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "sequel" version))
+ (sha256
+ (base32
+ "0qscddpfwcajggxvbm4a4jv8kkpn6q056bgdg03km34bz8bis1x1"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ; Avoid dependency loop with ruby-minitest-hooks.
+ (synopsis "Database toolkit for Ruby")
+ (description "Sequel provides thread safety, connection pooling and a
+concise DSL for constructing SQL queries and table schemas. It includes a
+comprehensive ORM layer for mapping records to Ruby objects and handling
+associated records.")
+ (home-page "http://sequel.jeremyevans.net")
+ (license license:expat)))