Alfred workflow の Ruby バージョンを変更: hkob の雑記録 (262)

はじめに

hkob の雑記録の第262回目は、Alfred workflow の ruby のバージョンを変更する方法について検討します。

Alfred の Run script で利用可能なもの

Alfred の Run script については、こちらで解説しています。

hkob.hatenablog.com

利用できるスクリプトですが、以下のようになっています。基本的には /usr/bin に保存されているものか、External Script で Workspace 内にエディタでスクリプトを作成するかになります。

利用できる言語

External Script であればなんでも設定できるのですが、別途エディタで記載するとなるとメンテナンス性が下がります。そこで、シェルスクリプトの中でヒアドキュメントで Ruby script を書いてみることにします。

Ruby 3.4.6 & NorionRubyMapping 3.0.0 の起動確認

とりあえず、システム以外の Ruby が呼べることを以下のワークフローでテストしてみましょう。

テストワークフロー

Run Script の中は以下のようにしてみました。

Run Script の中身

スクリプトはこちらです。

query=$1
PATH="$HOME/.local/share/mise/shims:$PATH"

ruby <<-EOL
require "notion_ruby_mapping"
include NotionRubyMapping

print NotionRubyMapping::VERSION
EOL

今、Ruby や python のバージョン管理をしているのですが、対話的シェル以外で使うなら、やはり shims に PATH を通してしまった方が楽なようです。

mise(rtx)を対話的シェル以外で使うなら大人しくshimsにPATH通した方がいい - Acme::AnaTofuZ->new;

動作確認

実際にデバッグメニューで動作確認してみました。正しく、NotionRubyMapping の 3.0.0 というバージョンが取得できているようです。システムの方に入っているのは 0.8.8 という古いものなので、正しく 3.4.6 の方に入れた NotionRubyMapping が呼ばれているようです。

[22:20:38.989] hkob's Notion tools[Hotkey] Processing complete
[22:20:38.997] hkob's Notion tools[Hotkey] Passing output '' to Run Script
[22:20:39.347] hkob's Notion tools[Run Script] Processing complete
[22:20:39.356] hkob's Notion tools[Run Script] Passing output '3.0.0' to Large Type
[22:20:39.358] hkob's Notion tools[Large Type] Processing complete
[22:20:39.359] hkob's Notion tools[Large Type] No connected objects, discarding output '3.0.0'

おわりに

問題ないようなので、この仕組みを使って、各ワークフローを Notion-Version 2025-09-03 に対応させようと思います。

hkob.notion.site