December 30 2021, 15:25#

update gems, pull mastodon-api from recent git release to stop it for… · tekniklr/tekniklr.com@355ca40 · GitHub

Lien : https://github.com/tekniklr/tekniklr.com/commit/355ca406b6933ed3ac1ac6774bca14e81821df56

La gem mastodon-api est fonctionnelle avec Ruby 2.6.6, en revanche après mise à jour vers Ruby 2.7.2, ça cafouille.

6: from /usr/home/gregory/.gem/ruby/2.7/gems/mastodon-api-2.0.0/lib/mastodon/rest/media.rb:17:in `upload_media'               
    5: from /usr/home/gregory/.gem/ruby/2.7/gems/mastodon-api-2.0.0/lib/mastodon/rest/utils.rb:18:in `perform_request_with_object'
    4: from /usr/home/gregory/.gem/ruby/2.7/gems/mastodon-api-2.0.0/lib/mastodon/rest/utils.rb:10:in `perform_request'            
    3: from /usr/home/gregory/.gem/ruby/2.7/gems/mastodon-api-2.0.0/lib/mastodon/rest/request.rb:26:in `perform'                  
    2: from /usr/local/lib/ruby/2.7/forwardable.rb:229:in `empty?'                                                                
    1: from /usr/home/gregory/.gem/ruby/2.7/gems/http-3.3.0/lib/http/response/body.rb:52:in `to_s'                                
/usr/home/gregory/.gem/ruby/2.7/gems/http-3.3.0/lib/http/response/body.rb:52:in `force_encoding': can't modify frozen String: "" (Froz
enError)

L'origine du bug vient de Ruby. Une correction a déjà été apportée mais les gems concernées doivent se mettre à jour. Ce qui n'est pas le cas de celle-ci.

Un fix a été apporté par un contributeur sur GitHub, mais pas intégré à ce jour dans la gem. Pour en profiter, il faut créer la gem depuis le dépôt Git.

Cloner le dépôt

git clone https://github.com/tootsuite/mastodon-api.git

Se positionner sur le bon commit

cd mastodon-api
git checkout 60b0ed0

Installer les dépendances

Voir le fichier Gemfile.

Dans mon cas, installation côté user uniquement.

gem install --user-install rake yard rspec fuubar rubocop simplecov timecop webmock yardstick

Construire la gem

rake build mastodon.gemspec
mastodon-api 2.0.0 built to pkg/mastodon-api-2.0.0.gem.

Installer la gem

Dans mon cas, installation côté user uniquement.

gem install --user-install pkg/mastodon-api-2.0.0.gem

Tags : mastodon api ruby git github