トップ «前の日記(2023/07/25 (火) ) 最新 次の日記(2023/07/27 (木) )» 編集 RSS feed

HsbtDiary


2023/07/26 (水) [長年日記]

bundled gems や default gems を require した時に状況に応じて便利なメッセージを出すようにした

将来 default gems から bundled gems になるぞ、もう bundled gems になってるぞ、というようなライブラリを require した時に LoadError を出して終わり、ではなくて何をすれば良いのか、というメッセージを出すようにしてみた。

https://bugs.ruby-lang.org/issues/19776

実際の動きは以下の通り。

$ cat Gemfile
# frozen_string_literal: true

source "https://rubygems.org"

gem "rss"

$ bundle exec irb
>> require "csv"
csv is not part of the default gems since Ruby 3.4.0. Add it to your Gemfile.
=> true
>> require "csv"
=> false
>> require "net-imap"
net-imap is not part of the default gems since Ruby 3.1.0. Add it to your Gemfile.
/Users/hsbt/.local/share/rbenv/versions/3.3.0-dev/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:264:in `require': cannot load such file -- net-imap (LoadError)

実装の本体は bundler にあるものの、Gem::BUNDLED_GEMS という定数がある時だけ警告を出すようになっている。

https://github.com/rubygems/rubygems/pull/6831

今後は、require している場所はどこなのかというのを出しつつ、それが gem だったら Gemfile に追加しろ、に加えてその gem の gemspec に追加しろ、というところまで警告を出すようにしていきたい。ひとまず preview2 向けの梅レベルの実装としてはこんな感じで。

Threads

最近の X(Twitter) はホント厳しくて、DM があるからと、たまに見るようにはしてるけどモバイルアプリなどは全部消してしまったので緊急時の連絡にはどうせ使えないし、別のなにかに本格的に移行しないとな、という状況。

で、Threads はリリースされた当初に instagram からアカウントを作成して使っていて、前から X の方で見ていたアートや美術館関連のニュースなどは軒並みクロスポストのアカウントを持っているので片っ端からフォローしては、X の方では unfollow してしまった。instagram で強いアートや民芸、デザインなどは Threads でも積極的に情報を発信しているのでニュース収集用と割り切るとちょうどいい気がする。

そういえば、Oculus のアカウント分離のときに facebook, instagram, oculus でアカウントをすべて統合したら、facebook や instagram のアカウント名が oculus のアカウント名に強制的に変わってしまっておいおい〜となったのを思い出した。その後 instagram は hsbt と同じ名前へ、facebook は hiroshi.sbt に変更とすることでだいたい同じ状態にはできたけど、この辺がいきなり変わるのは勘弁してほしいよなあ。

instagram の アカウント名を hsbt に戻せた後で Threads にサインアップしたおかげで Threads でも hsbt を確保できたのは良かった。最近は bluesky, mastodon とあちこちに出没しているけど、現状の使い分けは以下のようになった。

  • bluesky: 日本語のボヤキ
  • mastodon: Ruby 関連の話、英語
  • Threads: ニュース集め

見るものが増えるのはあれではあるけど、これはこれでコンテキストの切り分けができていいかもしれない。