diff options
Diffstat (limited to 'gnu/packages/ruby.scm')
-rw-r--r-- | gnu/packages/ruby.scm | 229 |
1 files changed, 222 insertions, 7 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index ab8e572175..83a8901b7a 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -200,6 +200,32 @@ a focus on simplicity and productivity.") (string-append "/lib/ruby/gems/" (version-major+minor ruby-version) ".0/gems")) +(define-public ruby-highline + (package + (name "ruby-highline") + (version "1.7.8") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "highline" version)) + (sha256 + (base32 + "1nf5lgdn6ni2lpfdn4gk3gi47fmnca2bdirabbjbz1fk9w4p8lkr")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ;; TODO: NameError: uninitialized constant SPEC + (native-inputs + `(("bundler" ,bundler) + ("ruby-code-statistics" ,ruby-code-statistics))) + (synopsis + "HighLine helps you build command-line interfaces") + (description + "HighLine provides a high-level IO library that provides validation, +type conversion, and more for command-line interfaces. HighLine also includes +a menu system for providing multiple options to the user.") + (home-page "https://github.com/JEG2/highline") + (license (list license:gpl2 license:ruby)))) + (define-public ruby-hoe (package (name "ruby-hoe") @@ -644,6 +670,34 @@ complexity.") (home-page "https://github.com/ThoughtWorksStudios/saikuro_treemap") (license license:expat))) +(define-public ruby-options + (package + (name "ruby-options") + (version "2.3.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "options" version)) + (sha256 + (base32 + "1s650nwnabx66w584m1cyw82icyym6hv5kzfsbp38cinkr5klh9j")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f ;; TODO: NameError: uninitialized constant Config + #:phases + (modify-phases %standard-phases + (add-before 'check 'set-LIB + (lambda _ + ;; This is used in the Rakefile, and setting it avoids an issue + ;; with running the tests. + (setenv "LIB" "options")))))) + (synopsis "Ruby library to parse options from *args cleanly") + (description + "The @code{options} library helps with parsing keyword options in Ruby +functions.") + (home-page "https://github.com/ahoward/options") + (license license:ruby))) + (define-public ruby-orderedhash (package (name "ruby-orderedhash") @@ -931,6 +985,41 @@ Ruby Gems.") (home-page "https://github.com/postmodern/rubygems-tasks") (license license:expat))) +(define-public ruby-rubyzip + (package + (name "ruby-rubyzip") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rubyzip" version)) + (sha256 + (base32 + "06js4gznzgh8ac2ldvmjcmg9v1vg9llm357yckkpylaj6z456zqz")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'patch-tests + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "test/gentestfiles.rb" + (("/usr/bin/zip") + (string-append + (assoc-ref inputs "zip") "/bin/zip"))) + (substitute* "test/input_stream_test.rb" + (("/usr/bin/env ruby") (which "ruby"))) + #t))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-simplecov" ,ruby-simplecov) + ("zip" ,zip) + ("unzip" ,unzip))) + (synopsis "Ruby module is for reading and writing zip files") + (description + "The rubyzip module provides ways to read from and create zip files.") + (home-page "http://github.com/rubyzip/rubyzip") + (license license:bsd-2))) + (define-public ruby-ffi (package (name "ruby-ffi") @@ -1849,6 +1938,28 @@ net/http library.") (home-page "https://github.com/nicksieger/multipart-post") (license license:expat))) +(define-public ruby-multi-json + (package + (name "ruby-multi-json") + (version "1.12.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "multi_json" version)) + (sha256 + (base32 + "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ;; No testsuite included in the gem. + (synopsis "Common interface to multiple JSON libraries for Ruby") + (description + "This package provides a common interface to multiple JSON libraries, +including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem, +NSJSONSerialization, gson.rb, JrJackson, and OkJson.") + (home-page "http://github.com/intridea/multi_json") + (license license:expat))) + (define-public ruby-arel (package (name "ruby-arel") @@ -1980,17 +2091,19 @@ both CSS3 selector and XPath 1.0 support.") (define-public ruby-method-source (package (name "ruby-method-source") - (version "0.8.2") + (version "0.9.0") (source (origin (method url-fetch) (uri (rubygems-uri "method_source" version)) (sha256 (base32 - "1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2")))) + "0xqj21j3vfq4ldia6i2akhn2qd84m0iqcnsl49kfpq3xk6x0dzgn")))) (build-system ruby-build-system) + (arguments + `(#:test-target "spec")) (native-inputs - `(("ruby-bacon" ,ruby-bacon) + `(("ruby-rspec" ,ruby-rspec) ("git" ,git))) (synopsis "Retrieve the source code for Ruby methods") (description "Method_source retrieves the source code for Ruby methods. @@ -2019,24 +2132,54 @@ for select languages.") (home-page "http://coderay.rubychan.de") (license license:expat))) +(define-public ruby-progress_bar + (package + (name "ruby-progress_bar") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "progress_bar" version)) + (sha256 + (base32 + "1qc40mr6p1z9a3vlpnsg1zfgk1qswviql2a31y63wpv3vr6b5f48")))) + (build-system ruby-build-system) + (arguments + '(#:test-target "spec")) + (propagated-inputs + `(("ruby-highline" ,ruby-highline) + ("ruby-options" ,ruby-options))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec) + ("ruby-timecop" ,ruby-timecop))) + (synopsis + "Ruby library for displaying progress bars") + (description + "ProgressBar is a simple library for displaying progress bars. The +maximum value is configurable, and additional information can be displayed +like the percentage completion, estimated time remaining, elapsed time and +rate.") + (home-page "https://github.com/paul/progress_bar") + (license license:wtfpl2))) + (define-public ruby-pry (package (name "ruby-pry") - (version "0.10.4") + (version "0.11.1") (source (origin (method url-fetch) (uri (rubygems-uri "pry" version)) (sha256 (base32 - "05xbzyin63aj2prrv8fbq2d5df2mid93m81hz5bvf2v4hnzs42ar")))) + "0ci461a55sn50rlrmcl97ycf79681glp443a2gzp23rnm7y70fkj")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; no tests (propagated-inputs `(("ruby-coderay" ,ruby-coderay) - ("ruby-method-source" ,ruby-method-source) - ("ruby-slop" ,ruby-slop-3))) + ("ruby-method-source" ,ruby-method-source))) (synopsis "Ruby REPL") (description "Pry is an IRB alternative and runtime developer console for Ruby. It features syntax highlighting, a plugin architecture, runtime @@ -3563,6 +3706,57 @@ It has built-in support for the legacy @code{cookies.txt} and (home-page "https://github.com/sparklemotion/http-cookie") (license license:expat))) +(define-public ruby-httpclient + (package + (name "ruby-httpclient") + (version "2.8.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "httpclient" version)) + (sha256 + (base32 + "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99")))) + (build-system ruby-build-system) + (arguments + '(;; TODO: Some tests currently fail + ;; ------ + ;; 211 tests, 729 assertions, 13 failures, 4 errors, 0 pendings, + ;; 2 omissions, 0 notifications + ;; 91.866% passed + ;; ------ + ;; 6.49 tests/s, 22.41 assertions/s + #:tests? #f + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (if tests? + (zero? + (system* "ruby" + "-Ilib" + "test/runner.rb")) + #t))) + (add-after 'install 'wrap-bin-httpclient + (lambda* (#:key outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") + "/bin/httpclient") + `("GEM_HOME" ":" prefix (,(getenv "GEM_HOME")))) + #t))))) + (native-inputs + `(("ruby-rack" ,ruby-rack))) + (synopsis + "Make HTTP requests with support for HTTPS, Cookies, authentication and more") + (description + "The @code{httpclient} ruby library provides functionality related to +HTTP. Compared to the @code{net/http} library, @{httpclient} also provides +Cookie, multithreading and authentication (digest, NTLM) support. + +Also provided is a @command{httpclient} command, which can perform HTTP +requests either using arguments or with an interactive prompt.") + (home-page "https://github.com/nahi/httpclient") + (license license:ruby))) + (define-public ruby-ansi (package (name "ruby-ansi") @@ -4257,3 +4451,24 @@ really opens up the email messages you are parsing, if you know what you are doing, you can fiddle with every last bit of your email directly.") (home-page "https://github.com/mikel/mail") (license license:expat))) + +(define-public ruby-code-statistics + (package + (name "ruby-code-statistics") + (version "0.2.13") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "code_statistics" version)) + (sha256 + (base32 + "07rdpsbwbmh4vp8nxyh308cj7am2pbrfhv9v5xr2d5gq8hnnsm93")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) ; Not all test code is included in gem. + (synopsis "Port of the rails 'rake stats' method") + (description + "This gem is a port of the rails 'rake stats' method so it can be made +more robust and work for non rails projects.") + (home-page "http://github.com/danmayer/code_statistics") + (license license:expat))) |