LoginSignup
8
4

More than 3 years have passed since last update.

Alfred Workflowsで入力文字列からリストを作るRubyスクリプトの雛形

Last updated at Posted at 2020-03-14

Alfred Workflowsは便利なんだけど、いざ自分で作ろうとしたとき「動的にリストを作って表示したい」と思った最初の一歩だけでもちょっとめんどくさかったので雛形を作りました。

Alfred Workflowsって何? という人はこちらの記事をどうぞ。
https://qiita.com/jackchuka/items/ccd3f66f6dd00481b98b#workflows

実現したいこと

ヘルパーライブラリとしてはPython製の https://www.deanishe.net/alfred-workflow/ とかが見つかります。が、そこまで大層なものは別に欲しくない。

とりあえず改造しやすい最小限のコードで、以下の画像のような感じの入力と出力が欲しい。
あとリスト項目を選択したら、なんかクリップボードに項目がコピーされると嬉しい。

image.png

コード

def item(q)
    {:title => q, :subtitle => "サブタイトル", :arg => "#{q}ですよ" }
end

queries = ARGV[0].split
items = queries.map do |q| item(q) end

puts "<items>"
items.each_with_index do |item, i| puts <<EOS
  <item uid="#{i}" arg="#{item[:arg]}">
    <title>#{item[:title]}</title>
    <subtitle>#{item[:subtitle]}</subtitle>
    <icon>icon.png</icon>
  </item>
EOS
end
puts "</items>"

使い方

image.png
image.png

Script Filter の言語をRubyにしてベタ書きで書いてもいいし、あるいは Script Filter で bashとかを選んで ruby hoge.rb "{query}" とか書いてもいい。

以上です。

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4