Ruby meets Spotlight.(2)
ぬるい抽象化。
module Spotlight def Spotlight.find(key, dir=nil) #検索キーワード生成 keystr = key if key.class == String if key.class == Array keystr = key.join(' ') keystr = '"' + keystr + '"' end #検索対象フォルダパス生成 dirstr = '' if dir == nil dirstr = '-onlyin "' + dir + '"' unless dir == nil #コマンド生成 command = "mdfind #{dirstr} #{keystr}" #コマンド実行・出力整形 ret = `#{command}` return ret.split("\n") end end
つかいかた。
require 'spotlight' #キーワード一個 ret = Spotlight::find('keyword') #複数キーワード ret2 = Spotlight::find(['keyword1', 'keyword2']) #検索対象フォルダ指定 ret3 = Spotlight::find('keyword', '/Users/user/desktop')
スペース含むキーワードとか、シングルクォーテーションを含むキーワードとかを突っ込むとおかしいことになります、きっと。あしからず。