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.scm700
1 files changed, 698 insertions, 2 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 6da7109d14..53df4cf9fc 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017, 2018, 2019 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;;
@@ -34,6 +35,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages dbm)
#:use-module (gnu packages rails)
@@ -645,13 +647,13 @@ expectations and mocks frameworks.")
(define-public bundler
(package
(name "bundler")
- (version "1.15.4")
+ (version "1.17.3")
(source (origin
(method url-fetch)
(uri (rubygems-uri "bundler" version))
(sha256
(base32
- "0wl4r7wbwdq68xidfv4hhzfb1spb6lmhbspwlzrg4pf1l6ipxlgs"))))
+ "0ln3gnk7cls81gwsbxvrmlidsfd78s6b2hzlm4d4a9wbaidzfjxw"))))
(build-system ruby-build-system)
(arguments
'(#:tests? #f)) ; avoid dependency cycles
@@ -1172,6 +1174,133 @@ complexity.")
(home-page "https://github.com/ThoughtWorksStudios/saikuro_treemap")
(license license:expat)))
+(define-public ruby-oauth2
+ (package
+ (name "ruby-oauth2")
+ (version "1.4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "oauth2" version))
+ (sha256
+ (base32
+ "0av6nlb5y2sm6m8fx669ywrqa9858yqaqfqzny75nqp3anag89qh"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ; No included tests
+ (propagated-inputs
+ `(("ruby-faraday" ,ruby-faraday)
+ ("ruby-jwt" ,ruby-jwt)
+ ("ruby-multi-json" ,ruby-multi-json)
+ ("ruby-multi-xml" ,ruby-multi-xml)
+ ("ruby-rack" ,ruby-rack)))
+ (synopsis "Ruby wrapper for the OAuth 2.0")
+ (description
+ "This package provides a Ruby wrapper for the OAuth 2.0 protocol built
+with a similar style to the original OAuth spec.")
+ (home-page "https://github.com/oauth-xx/oauth2")
+ (license license:expat)))
+
+(define-public ruby-omniauth
+ (package
+ (name "ruby-omniauth")
+ (version "1.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "omniauth" version))
+ (sha256
+ (base32
+ "1p16h1rp8by05k8gfw17xjhgwp60dk8qmj1xalv1n23kmxfsxb1x"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ; No included tests
+ (propagated-inputs
+ `(("ruby-hashie" ,ruby-hashie)
+ ("ruby-rack" ,ruby-rack)))
+ (synopsis "Generalized Rack framework for multiple-provider authentication")
+ (description
+ "This package provides a generalized Rack framework for multiple-provider
+authentication.")
+ (home-page "https://github.com/omniauth/omniauth")
+ (license license:expat)))
+
+(define-public ruby-omniauth-oauth2
+ (package
+ (name "ruby-omniauth-oauth2")
+ (version "1.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "omniauth-oauth2" version))
+ (sha256
+ (base32
+ "11mi36l9d97r77q99jnafdc1yaa0a9wahhpp7dj7ank8q52g7g79"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ ;; The coveralls gem submits coverage information to an online
+ ;; service, and is unnecessary when running the tests
+ (substitute* "Gemfile"
+ ((".*coveralls\"") ""))
+ (substitute* "spec/helper.rb"
+ (("require \"coveralls\"") "")
+ (("Coveralls::SimpleCov::Formatter") ""))
+ #t)))))
+ (propagated-inputs
+ `(("ruby-oauth2" ,ruby-oauth2)
+ ("ruby-omniauth" ,ruby-omniauth)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)
+ ("ruby-simplecov" ,ruby-simplecov)
+ ("ruby-rack-test" ,ruby-rack-test)
+ ("ruby-webmock" ,ruby-webmock-2)))
+ (synopsis "Abstract OAuth2 strategy for OmniAuth")
+ (description
+ "This library provides a generic OAuth2 strategy for OmniAuth. It
+doesn't provide a way to gather user information, so should be used as a
+building block for authentication strategies.")
+ (home-page "https://github.com/omniauth/omniauth-oauth2")
+ (license license:expat)))
+
+(define-public ruby-open4
+ (package
+ (name "ruby-open4")
+ (version "1.3.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "open4" version))
+ (sha256
+ (base32
+ "1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "rakefile"
+ ;; Update the Rakefile so it works
+ (("-rubygems") "-rrubygems")
+ (("Config") "RbConfig"))
+ #t))
+ (add-before 'check 'set-LIB
+ (lambda _
+ ;; This is used in the rakefile when running the tests
+ (setenv "LIB" "open4")
+ #t)))))
+ (synopsis "Open child processes from Ruby and manage them easily")
+ (description
+ "@code{Open4} is a Ruby library to run child processes and manage their
+input and output.")
+ (home-page "https://github.com/ahoward/open4")
+ (license license:ruby)))
+
(define-public ruby-options
(package
(name "ruby-options")
@@ -1291,6 +1420,31 @@ the GNOME Libxml2 XML toolkit.")
(home-page "https://xml4r.github.com/libxml-ruby")
(license license:expat)))
+(define-public ruby-lino
+ (package
+ (name "ruby-lino")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "lino" version))
+ (sha256
+ (base32
+ "11d29g0fk372b9fcpyr0k6hxm2b4j4igpysmi542hgbbgqgp9cd3"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ; No included tests
+ (propagated-inputs
+ `(("ruby-hamster" ,ruby-hamster)
+ ("ruby-open4" ,ruby-open4)))
+ (synopsis "Build and execute commands in Ruby")
+ (description
+ "@code{Lino} provides an interface to run external commands. It provides
+an interface to add options as well as managing the standard input, output and
+error streams.")
+ (home-page "https://github.com/tobyclemson/lino")
+ (license license:expat)))
+
(define-public ruby-xml-simple
(package
(name "ruby-xml-simple")
@@ -1353,6 +1507,63 @@ same log file.")
(home-page "https://github.com/bdurand/lumberjack")
(license license:expat)))
+(define-public ruby-rbnacl
+ (package
+ (name "ruby-rbnacl")
+ (version "6.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rbnacl" version))
+ (sha256
+ (base32
+ "0ajxy5kj2jw09wdsla3jmha8w07vj5l14288xr9djpl327g3lzhn"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ ;; Coveralls relates to a network service, and Rubocop to code
+ ;; linting and both are unnecessary to run the tests
+ (substitute* "Gemfile"
+ ((".*rubocop.*") "\n")
+ ((".*guard-rspec.*") "\n")
+ ((".*coveralls.*") "\n"))
+ (substitute* "spec/spec_helper.rb"
+ (("require \"coveralls\"") "")
+ (("Coveralls.wear!") ""))
+ #t))
+ (add-after 'unpack 'use-libsodium-from-store
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* '("lib/rbnacl/init.rb"
+ "lib/rbnacl/sodium.rb")
+ (("ffi_lib \\[.+\\]")
+ (string-append "ffi_lib [\""
+ (assoc-ref inputs "libsodium") "/lib/libsodium.so"
+ "\"]")))
+ #t))
+ ;; Run Rspec directly to avoid the Rubocop dependency in the Rakefile
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec"))
+ #t)))))
+ (propagated-inputs
+ `(("ruby-ffi" ,ruby-ffi)))
+ (inputs
+ `(("libsodium" ,libsodium)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)))
+ (synopsis "Ruby FFI binding to libsodium")
+ (description
+ "This package provides Ruby FFI bindings to the Networking and
+Cryptography (NaCl) library, also known as libsodium. This provides a
+high-level toolkit for building cryptographic systems and protocols.")
+ (home-page "https://github.com/crypto-rb/rbnacl")
+ (license license:expat)))
+
(define-public ruby-nenv
(package
(name "ruby-nenv")
@@ -1527,6 +1738,79 @@ failure.")
(home-page "https://github.com/thekompanee/fuubar")
(license license:expat)))
+(define-public ruby-haml
+ (package
+ (name "ruby-haml")
+ (version "5.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "haml" version))
+ (sha256
+ (base32
+ "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ; No included tests
+ (propagated-inputs
+ `(("ruby-tilt" ,ruby-tilt)
+ ("ruby-temple" ,ruby-temple)))
+ (synopsis "Haml is a Ruby library to generate HTML documents")
+ (description
+ "@acronym{Haml, HTML Abstraction Markup Language} is a layer on top of
+HTML or XML that is designed to express the structure of documents using
+indentation rather than closing tags. It was originally envisioned as a
+plugin for Ruby on Rails, but it can function as a stand-alone templating
+engine.")
+ (home-page "http://haml.info/")
+ (license license:expat)))
+
+(define-public ruby-hamster
+ (package
+ (name "ruby-hamster")
+ (version "3.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "hamster" version))
+ (sha256
+ (base32
+ "1n1lsh96vnyc1pnzyd30f9prcsclmvmkdb3nm5aahnyizyiy6lar"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ ;; pry is a debugging tool, and is unnecessary when running the
+ ;; tests
+ (substitute* "spec/lib/hamster/vector/insert_spec.rb"
+ (("require 'pry'") ""))
+ (substitute* "spec/spec_helper.rb"
+ (("require \"pry\"") "")
+ ;; CodeClimate is an online service, and is unnecessary for
+ ;; running the tests
+ (("require \"codeclimate-test-reporter\"") "")
+ (("CodeClimate.*\n") ""))
+ #t))
+ ;; No Rakefile is included, so run rspec directly.
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec"))
+ #t)))))
+ (propagated-inputs
+ `(("ruby-concurrent" ,ruby-concurrent)))
+ (native-inputs
+ `(("ruby-rspec" ,ruby-rspec)))
+ (synopsis "Efficient, immutable, thread-safe collection classes for Ruby")
+ (description
+ "Hamster provides 6 persistent data structures: @code{Hash}, @code{Vector},
+@code{Set}, @code{SortedSet}, @code{List}, and @code{Deque} (which works as an
+immutable queue or stack).")
+ (home-page "https://github.com/hamstergem/hamster")
+ (license license:expat)))
+
(define-public ruby-hashdiff
(package
(name "ruby-hashdiff")
@@ -1913,6 +2197,29 @@ localization.")
(home-page "https://github.com/ruby-gettext/locale")
(license (list license:lgpl3+ license:ruby))))
+(define-public ruby-temple
+ (package
+ (name "ruby-temple")
+ (version "0.8.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "temple" version))
+ (sha256
+ (base32
+ "158d7ygbwcifqnvrph219p7m78yjdjazhykv5darbkms7bxm5y09"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("ruby-tilt" ,ruby-tilt)
+ ("ruby-bacon" ,ruby-bacon)
+ ("ruby-erubis" ,ruby-erubis)))
+ (synopsis "Template compilation framework in Ruby")
+ (description
+ "Temple is an abstraction and framework for compiling templates to pure
+Ruby.")
+ (home-page "https://github.com/judofyr/temple")
+ (license license:expat)))
+
(define-public ruby-text
(package
(name "ruby-text")
@@ -1985,6 +2292,29 @@ use GNU gettext tools for maintenance.")
(home-page "http://ranguba.org/packnga/")
(license license:lgpl2.0+)))
+(define-public ruby-test-construct
+ (package
+ (name "ruby-test-construct")
+ (version "2.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "test_construct" version))
+ (sha256
+ (base32
+ "1a2ym3l068d0pxzzr95kvqx87zpdsarxslz9ygd4qfm9frrz0kgj"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-mocha" ,ruby-mocha)
+ ("ruby-rspec" ,ruby-rspec)))
+ (synopsis "Creates temporary files and directories for testing")
+ (description
+ "TestConstruct is a @acronym{DSL, Domain Specific Language} for creating
+temporary files and directories during tests.")
+ (home-page "https://github.com/bhb/test_construct")
+ (license license:expat)))
+
(define-public ruby-test-unit
(package
(name "ruby-test-unit")
@@ -2010,6 +2340,43 @@ It allows writing tests, checking results and automated testing in Ruby.")
(home-page "https://test-unit.github.io/")
(license (list license:psfl license:ruby))))
+(define-public ruby-markaby
+ (package
+ (name "ruby-markaby")
+ (version "0.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "markaby" version))
+ (sha256
+ (base32
+ "1j4jc31ycydbkh5h3q6zwidzpavg3g5mbb5lqyaczd3jrq78rd7i"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; Run rspec manually without using the Rakefile, as the versions of
+ ;; Rake and RSpec 2 are incompatible:
+ ;;
+ ;; NoMethodError: undefined method `last_comment'
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "rspec"))
+ #t)))))
+ (propagated-inputs
+ `(("ruby-builder" ,ruby-builder)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec-2)))
+ (synopsis "Write HTML pages in pure Ruby")
+ (description
+ "Markaby allows writing HTML packages in pure Ruby. This is similar to
+the functionality provided by @acronym{ERB, Embeded Ruby}, but without the
+mixture of HTML and additional ERB syntax.")
+ (home-page "http://markaby.github.io/")
+ (license license:expat)))
+
(define-public ruby-maruku
(package
(name "ruby-maruku")
@@ -2562,6 +2929,40 @@ facilities supporting TDD, BDD, mocking, and benchmarking.")
(delete-file "test/minitest/test_minitest_spec.rb")
#t)))))))
+(define-public ruby-minitest-around
+ (package
+ (name "ruby-minitest-around")
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "minitest-around" version))
+ (sha256
+ (base32
+ "15ywnqx0719jl9c25yqfshmwcir57i5f4hr1ra9v9vay9ylcwndr"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'extract-gemspec 'remove-unnecessary-dependency-versions
+ (lambda _
+ (substitute* "minitest-around.gemspec"
+ (("%q<cucumber>.*") "%q<cucumber>, [\">= 0\"])\n"))
+ #t)))))
+ (propagated-inputs
+ `(("ruby-minitest" ,ruby-minitest)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-cucumber" ,ruby-cucumber)
+ ("ruby-bump" ,ruby-bump)
+ ("ruby-test-construct" ,ruby-test-construct)))
+ (synopsis "Run code around tests in Minitest")
+ (description
+ "This library provides a way to run code around tests in Minitest,
+written using either the unit test or spec style.")
+ (home-page "https://github.com/splattael/minitest-around")
+ (license license:expat)))
+
(define-public ruby-minitest-sprint
(package
(name "ruby-minitest-sprint")
@@ -2934,6 +3335,27 @@ options and parsing command line flags.")
(base32
"00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n"))))))
+(define-public ruby-multi-xml
+ (package
+ (name "ruby-multi-xml")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "multi_xml" version))
+ (sha256
+ (base32
+ "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ; No included tests
+ (synopsis "Swappable XML backends for Ruby")
+ (description
+ "@code{MultiXml} provides swappable XML backends utilizing either LibXML,
+Nokogiri, Ox, or REXML.")
+ (home-page "https://github.com/sferik/multi_xml")
+ (license license:expat)))
+
(define-public ruby-multipart-post
(package
(name "ruby-multipart-post")
@@ -3398,6 +3820,52 @@ file or directories are modified.")
(home-page "http://guardgem.org/")
(license license:expat)))
+(define-public ruby-tilt
+ (package
+ (name "ruby-tilt")
+ (version "2.0.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "tilt" version))
+ (sha256
+ (base32
+ "0ca4k0clwf0rkvy7726x4nxpjxkpv67w043i39saxgldxd97zmwz"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-some-dependencies
+ (lambda _
+ (substitute* "Gemfile"
+ ;; TODO ronn is used for generating the manual
+ (("gem 'ronn'.*") "\n")
+ ;; ruby-haml has a runtime dependency on ruby-tilt, so don't
+ ;; pass it in as a native-input
+ (("gem 'haml'.*") "\n")
+ ;; TODO Not all of these gems are packaged for Guix yet:
+ ;; less, coffee-script, livescript, babel-transpiler,
+ ;; typescript-node
+ (("if can_execjs") "if false")
+ ;; Disable the secondary group to reduce the number of
+ ;; dependencies. None of the normal approaches work, so patch
+ ;; the Gemfile instead.
+ (("group :secondary") "[].each"))
+ #t)))))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-yard" ,ruby-yard)
+ ("ruby-builder" ,ruby-builder)
+ ("ruby-erubis" ,ruby-erubis)
+ ("ruby-markaby" ,ruby-markaby)
+ ("ruby-sassc" ,ruby-sassc)))
+ (synopsis "Generic interface to multiple Ruby template engines")
+ (description
+ "Tilt is a thin interface over a number of different Ruby template
+engines in an attempt to make their usage as generic as possible.")
+ (home-page "https://github.com/rtomayko/tilt/")
+ (license license:expat)))
+
(define-public ruby-thread-safe
(package
(name "ruby-thread-safe")
@@ -3706,6 +4174,29 @@ of terminal output.")
;; There is no mention of the "or later" clause.
(license license:gpl2)))
+(define-public ruby-terraform
+ (package
+ (name "ruby-terraform")
+ (version "0.22.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "ruby-terraform" version))
+ (sha256
+ (base32
+ "13zjkp71cd19j2ds2h9rqwcfr1zdg5nsh63p89l6qcsc9z39z324"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ; No included tests
+ (propagated-inputs
+ `(("ruby-lino" ,ruby-lino)))
+ (synopsis "Ruby wrapper around the Terraform command line interface")
+ (description
+ "This package provides a Ruby wrapper around the Terraform command line
+interface so that Terraform can be more easily invoked from Ruby code.")
+ (home-page "https://github.com/infrablocks/ruby_terraform")
+ (license license:expat)))
+
(define-public ruby-pstree
(package
(name "ruby-pstree")
@@ -3843,6 +4334,44 @@ a native C extension.")
(home-page "https://flori.github.com/json")
(license license:ruby)))
+(define-public ruby-jwt
+ (package
+ (name "ruby-jwt")
+ (version "2.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "jwt" version))
+ (sha256
+ (base32
+ "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ (substitute* "spec/spec_helper.rb"
+ (("require 'simplecov.*") "\n")
+ ;; Use [].each to disable running the SimpleCov configuration
+ ;; block
+ (("SimpleCov\\.configure") "[].each")
+ (("require 'codeclimate-test-reporter'") "")
+ (("require 'codacy-coverage'") "")
+ (("Codacy::Reporter\\.start") ""))
+ #t)))))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)
+ ("ruby-rbnacl" ,ruby-rbnacl)))
+ (synopsis "Ruby implementation of the JSON Web Token standard")
+ (description
+ "This package provides a pure Ruby implementation of the RFC 7519 OAuth
+@acronym{JWT, JSON Web Token} standard.")
+ (home-page "https://github.com/jwt/ruby-jwt")
+ (license license:expat)))
+
;; Even though this package only provides bindings for a Mac OSX API it is
;; required by "ruby-listen" at runtime.
(define-public ruby-rb-fsevent
@@ -5518,6 +6047,77 @@ support to both Ruby and JRuby. It uses @code{unf_ext} on CRuby and
(home-page "https://github.com/knu/ruby-unf")
(license license:bsd-2)))
+(define-public ruby-warden
+ (package
+ (name "ruby-warden")
+ (version "1.2.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "warden" version))
+ (sha256
+ (base32
+ "1fr9n9i9r82xb6i61fdw4xgc7zjv7fsdrr4k0njchy87iw9fl454"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ; No included tests
+ (propagated-inputs
+ `(("ruby-rack" ,ruby-rack)))
+ (synopsis "Rack middleware providing authentication")
+ (description
+ "Warden is a Rack-based middleware that provides a mechanism for
+authentication in Ruby web applications.")
+ (home-page "https://github.com/wardencommunity/warden")
+ (license license:expat)))
+
+(define-public ruby-warden-oauth2
+ (package
+ (name "ruby-warden-oauth2")
+ (version "0.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "warden-oauth2" version))
+ (sha256
+ (base32
+ "1z9154lvzrnnfjbjkmirh4n811nygp6pm2fa6ikr7y1ysa4zv3cz"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:test-target "spec"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ (substitute* "Gemfile"
+ ;; All of these gems relate to development, and are unnecessary
+ ;; when running the tests
+ (("gem 'guard-bundler'") "")
+ (("gem 'guard'") "")
+ (("gem 'guard-rspec'") "")
+ (("gem 'rb-fsevent'") "")
+ (("gem 'pry'") "")
+ (("gem 'growl'") ""))
+ #t))
+ ;; The test suite doesn't work with rspec@2, and this is incompatible
+ ;; with the current version of Rake, so invoke Rspec directly
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "bundle" "exec" "rspec"))
+ #t)))))
+ (propagated-inputs
+ `(("ruby-warden" ,ruby-warden)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec-2)
+ ("ruby-rack-test" ,ruby-rack-test)))
+ (synopsis "OAuth 2.0 strategies for Warden")
+ (description
+ "This library extends Warden to support OAuth 2.0 authorized API
+requests.")
+ (home-page "https://github.com/opperator/warden-oauth2")
+ (license license:expat)))
+
(define-public ruby-webmock-2
(package
(name "ruby-webmock")
@@ -5985,6 +6585,27 @@ requirement specifications systems like Cucumber.")
(home-page "https://rubyworks.github.io/qed")
(license license:bsd-2)))
+(define-public ruby-que
+ (package
+ (name "ruby-que")
+ (version "1.0.0.beta3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "que" version))
+ (sha256
+ (base32
+ "0gr9pb814d4qj3ds98g6cjrdk7wv0yg8aqbm7c1lmgl87jkg8q04"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ; No included tests
+ (synopsis "Job queue using PostgreSQL written in Ruby")
+ (description
+ "This package provides a job queue that uses PostgreSQL for storing jobs
+and locking between worker processes.")
+ (home-page "https://github.com/chanks/que")
+ (license license:expat)))
+
(define-public ruby-ae
(package
(name "ruby-ae")
@@ -6927,6 +7548,81 @@ the @file{spec} directory.")
features that don't exist yet like variables, nesting, mixins and inheritance.")
(license license:expat)))
+(define-public ruby-sassc
+ (package
+ (name "ruby-sassc")
+ (version "2.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "sassc" version))
+ (sha256
+ (base32
+ "1sr4825rlwsrl7xrsm0sgalcpf5zgp4i56dbi3qxfa9lhs8r6zh4"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ ;; TODO: This would be better as a snippet, but the ruby-build-system
+ ;; doesn't seem to support that
+ (add-after 'unpack 'remove-libsass
+ (lambda _
+ (delete-file-recursively "ext")
+ #t))
+ (add-after 'unpack 'dont-check-the-libsass-version
+ (lambda _
+ (substitute* "test/native_test.rb"
+ (("assert_equal.*Native\\.version") ""))
+ #t))
+ (add-after 'unpack 'remove-git-from-gemspec
+ (lambda _
+ (substitute* "sassc.gemspec"
+ (("`git ls-files -z`") "`find . -type f -print0 |sort -z`")
+ (("`git submodule --quiet foreach pwd`") "''"))
+ #t))
+ (add-after 'unpack 'remove-extensions-from-gemspec
+ (lambda _
+ (substitute* "sassc.gemspec"
+ (("\\[\"ext/Rakefile\"\\]") "[]"))
+ #t))
+ (add-after 'unpack 'fix-Rakefile
+ (lambda _
+ (substitute* "Rakefile"
+ (("test: 'libsass:compile'") ":test"))
+ #t))
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ (substitute* "test/test_helper.rb"
+ (("require \"pry\"") ""))
+ #t))
+ (add-before 'build 'patch-native.rb
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "lib/sassc/native.rb"
+ ((".*gem_root = spec.gem_dir") "")
+ (("ffi_lib .*\n")
+ (string-append
+ "ffi_lib '" (assoc-ref inputs "libsass") "/lib/libsass.so'")))
+ #t))
+ ;; The gemspec still references the libsass files, so just keep the
+ ;; one in the gem.
+ (delete 'extract-gemspec))))
+ (propagated-inputs
+ `(("ruby-ffi" ,ruby-ffi)
+ ("ruby-rake" ,ruby-rake)))
+ (inputs
+ `(("libsass" ,libsass)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-minitest-around" ,ruby-minitest-around)
+ ("ruby-test-construct" ,ruby-test-construct)))
+ (synopsis "Use libsss from Ruby")
+ (description
+ "This library provides Ruby q@acronym{FFI, Foreign Function Interface}
+bindings to the libsass library. This enables rendering
+@acronym{SASS,Syntactically awesome style sheets} from Ruby code.")
+ (home-page "https://github.com/sass/sassc-ruby")
+ (license license:expat)))
+
(define-public ruby-jekyll-sass-converter
(package
(name "ruby-jekyll-sass-converter")