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')

スペース含むキーワードとか、シングルクォーテーションを含むキーワードとかを突っ込むとおかしいことになります、きっと。あしからず。