Subject: [patch] package ruby-t (twitter interface)

From: "Dr. Arne Babenhauserheide" <[email-masked]>
Date: Fri, 17 Jun 2022 23:55:10 +0200

Hi,

the following patch provides t for ruby. I tested it, but I had to
disable the tests for quite a few of the packaged gems.

It would be great to have that in Guix by default.

From 458d15882fb29dfa1c8781c2f8c80185bb68c9f2 Mon Sep 17 00:00:00 2001
From: Arne Babenhauserheide <[email-masked]>
Date: Fri, 17 Jun 2022 09:57:33 +0200
Subject: [PATCH] gnu: Add ruby-t with its dependencies.

    * gnu/packages/ruby.scm (ruby-t ruby-simple-oauth ruby-naught
    ruby-memoizable ruby-ffi-compiler ruby-llhttp-ffi ruby-http-form-data
    ruby-http ruby-equalizer ruby-buftok ruby-twitter ruby-retryable
    ruby-oauth ruby-launchy ruby-geokit ruby-t): New variables.
---
 gnu/packages/ruby.scm | 313 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 313 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 800ab194fe..2dde88774e 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2667,6 +2667,319 @@ (define-public ruby-thor
     (home-page "http://whatisthor.com/")
     (license license:expat)))
 
+
+(define-public ruby-simple-oauth
+  (package
+    (name "ruby-simple-oauth")
+    (version "0.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "simple_oauth" version))
+              (sha256
+               (base32
+                "0dw9ii6m7wckml100xhjc6vxpjcry174lbi9jz5v7ibjr3i94y8l"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (synopsis "Simply builds and verifies OAuth headers")
+    (description "Simply builds and verifies OAuth headers")
+    (home-page "https://github.com/laserlemon/simple_oauth")
+    (license license:expat)))
+
+(define-public ruby-naught
+  (package
+    (name "ruby-naught")
+    (version "1.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "naught" version))
+              (sha256
+               (base32
+                "1wwjx35zgbc0nplp8a866iafk4zsrbhwwz4pav5gydr2wm26nksg"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (synopsis "Naught is a toolkit for building Null Objects")
+    (description "Naught is a toolkit for building Null Objects")
+    (home-page "https://github.com/avdi/naught")
+    (license license:expat)))
+
+(define-public ruby-memoizable
+  (package
+    (name "ruby-memoizable")
+    (version "0.4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "memoizable" version))
+              (sha256
+               (base32
+                "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (propagated-inputs (list ruby-thread-safe))
+    (synopsis "Memoize method return values")
+    (description "Memoize method return values")
+    (home-page "https://github.com/dkubb/memoizable")
+    (license license:expat)))
+
+(define-public ruby-ffi-compiler
+  (package
+    (name "ruby-ffi-compiler")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "ffi-compiler" version))
+              (sha256
+               (base32
+                "0c2caqm9wqnbidcb8dj4wd3s902z15qmgxplwyfyqbwa0ydki7q1"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f)) ; no test suite
+    (propagated-inputs (list ruby-ffi ruby-rake))
+    (synopsis "Ruby FFI library")
+    (description "Ruby FFI library")
+    (home-page "http://wiki.github.com/ffi/ffi")
+    (license license:asl2.0)))
+
+(define-public ruby-llhttp-ffi
+  (package
+    (name "ruby-llhttp-ffi")
+    (version "0.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "llhttp-ffi" version))
+              (sha256
+               (base32
+                "00dh6zmqdj59rhcya0l4b9aaxq6n8xizfbil93k0g06gndyk5xz5"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (propagated-inputs (list ruby-ffi-compiler ruby-rake))
+    (synopsis "Ruby FFI bindings for llhttp.")
+    (description "Ruby FFI bindings for llhttp.")
+    (home-page "https://github.com/metabahn/llhttp/")
+    (license #f)))
+
+(define-public ruby-http-form-data
+  (package
+    (name "ruby-http-form-data")
+    (version "2.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "http-form_data" version))
+              (sha256
+               (base32
+                "1wx591jdhy84901pklh1n9sgh74gnvq1qyqxwchni1yrc49ynknc"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (synopsis
+     "Utility-belt to build form data request bodies. Provides support for `application/x-www-form-urlencoded` and `multipart/form-data` types.")
+    (description
+     "Utility-belt to build form data request bodies.  Provides support for
+`application/x-www-form-urlencoded` and `multipart/form-data` types.")
+    (home-page "https://github.com/httprb/form_data.rb")
+    (license license:expat)))
+
+(define-public ruby-http
+  (package
+    (name "ruby-http")
+    (version "5.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "http" version))
+              (sha256
+               (base32
+                "0jn1y6sfxpfaq0hcblv8hhyxzam8n39kvypi07q2vxaimh6ly7mj"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (propagated-inputs (list ruby-addressable ruby-http-cookie
+                             ruby-http-form-data ruby-llhttp-ffi))
+    (synopsis
+     "An easy-to-use client library for making requests from Ruby. It uses a simple method chaining system for building requests, similar to Python's Requests.")
+    (description
+     "An easy-to-use client library for making requests from Ruby.  It uses a simple
+method chaining system for building requests, similar to Python's Requests.")
+    (home-page "https://github.com/httprb/http")
+    (license license:expat)))
+
+(define-public ruby-equalizer
+  (package
+    (name "ruby-equalizer")
+    (version "0.0.11")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "equalizer" version))
+              (sha256
+               (base32
+                "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (synopsis "Module to define equality, equivalence and inspection methods")
+    (description
+     "Module to define equality, equivalence and inspection methods")
+    (home-page "https://github.com/dkubb/equalizer")
+    (license license:expat)))
+
+(define-public ruby-buftok
+  (package
+    (name "ruby-buftok")
+    (version "0.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "buftok" version))
+              (sha256
+               (base32
+                "0zsvhdnxv0d2fhhfijf17akiinl47g3blwlp04s8737nlv35w3gd"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (synopsis
+     "BufferedTokenizer extracts token delimited entities from a sequence of string inputs")
+    (description
+     "BufferedTokenizer extracts token delimited entities from a sequence of string
+inputs")
+    (home-page "https://github.com/sferik/buftok")
+    (license license:expat)))
+
+(define-public ruby-twitter
+  (package
+    (name "ruby-twitter")
+    (version "7.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "twitter" version))
+              (sha256
+               (base32
+                "13dmkjgsnym1avym9f7y2i2h3mlk8crqvc87drrzr4f0sf9l8g2y"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (propagated-inputs (list ruby-addressable
+                             ruby-buftok
+                             ruby-equalizer
+                             ruby-http
+                             ruby-http-form-data
+                             ruby-http-parser.rb
+                             ruby-memoizable
+                             ruby-multipart-post
+                             ruby-naught
+                             ruby-simple-oauth))
+    (synopsis "A Ruby interface to the Twitter API.")
+    (description "This package provides a Ruby interface to the Twitter API.")
+    (home-page "http://sferik.github.com/twitter/")
+    (license license:expat)))
+
+(define-public ruby-retryable
+  (package
+    (name "ruby-retryable")
+    (version "3.0.5")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "retryable" version))
+              (sha256
+               (base32
+                "0pymcs9fqcnz6n6h033yfp0agg6y2s258crzig05kkxs6rldvwy9"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (synopsis "Retrying code blocks in Ruby")
+    (description "Retrying code blocks in Ruby")
+    (home-page "http://github.com/nfedyashev/retryable")
+    (license license:expat)))
+
+(define-public ruby-oauth
+  (package
+    (name "ruby-oauth")
+    (version "0.5.10")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "oauth" version))
+              (sha256
+               (base32
+                "1asrxrbgzgzf1r9rb0c785zyyaq9v5z7v3k1avsais2sh9q1y763"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (synopsis "OAuth Core Ruby implementation")
+    (description "OAuth Core Ruby implementation")
+    (home-page "https://github.com/oauth-xx/oauth-ruby")
+    (license license:expat)))
+
+(define-public ruby-launchy
+  (package
+    (name "ruby-launchy")
+    (version "2.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "launchy" version))
+              (sha256
+               (base32
+                "1xdyvr5j0gjj7b10kgvh8ylxnwk3wx19my42wqn9h82r4p246hlm"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (propagated-inputs (list ruby-addressable))
+    (synopsis
+     "Launchy is helper class for launching cross-platform applications in a fire and forget manner. There are application concepts (browser, email client, etc) that are common across all platforms, and they may be launched differently on each platform. Launchy is here to make a common approach to launching external applications from within ruby programs.")
+    (description
+     "Launchy is helper class for launching cross-platform applications in a fire and
+forget manner.  There are application concepts (browser, email client, etc) that
+are common across all platforms, and they may be launched differently on each
+platform.  Launchy is here to make a common approach to launching external
+applications from within ruby programs.")
+    (home-page "https://github.com/copiousfreetime/launchy")
+    (license #f)))
+
+(define-public ruby-geokit
+  (package
+    (name "ruby-geokit")
+    (version "1.13.1")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "geokit" version))
+              (sha256
+               (base32
+                "0mvdpbx88wflqqrcrfa54a5sckvj2sqzm304p7ji3c06frbhmxw8"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f)) ; no Rakefile in test suite
+    (synopsis
+     "Geokit provides geocoding and distance calculation in an easy-to-use API")
+    (description
+     "Geokit provides geocoding and distance calculation in an easy-to-use API")
+    (home-page "http://github.com/geokit/geokit")
+    (license license:expat)))
+
+(define-public ruby-t
+  (package
+    (name "ruby-t")
+    (version "3.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "t" version))
+              (sha256
+               (base32
+                "0qj5zqc819yiscqbyb93alxillyli5ajvrr4gzq52clgkvyap7bd"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (propagated-inputs (list ruby-geokit
+                             ruby-htmlentities
+                             ruby-launchy
+                             ruby-oauth
+                             ruby-retryable
+                             ruby-thor
+                             ruby-twitter))
+    (synopsis "A command-line power tool for Twitter.")
+    (description
+     "This package provides a command-line power tool for Twitter.")
+    (home-page "http://sferik.github.com/t/")
+    (license license:expat)))
+
 (define-public ruby-lumberjack
   (package
     (name "ruby-lumberjack")
-- 
2.36.1

Best wishes,
Arne
-- 
Unpolitisch sein
heißt politisch sein,
ohne es zu merken.
draketo.de