require'uri'require'json'classAppDelegateattr_accessor:windowattr_accessor:textFieldattr_accessor:tableViewdefsearch(sender)text=textField.stringValue# Text Field から文字列を取得iftext.length>0query=URI.escape(text)# 検索クエリーをエスケープurl="http://search.twitter.com/search.json?q=#{query}&rpp=30"# HTTP アクセスし、レスポンスを取得nsurl=NSURL.URLWithString(url)str=NSString.stringWithContentsOfURL(nsurl,encoding:NSUTF8StringEncoding,error:nil)json=JSON.parse(str)@search_result=json['results']# TableView をリロード# numberOfRowsInTableView や tableView:objectValueForTableColumn:row:# が呼びだされますtableView.reloadDataendenddefnumberOfRowsInTableView(aTableView)return0if@search_result.nil?return@search_result.sizeenddeftableView(aTableView,objectValueForTableColumn:aTableColumn,row:rowIndex)caseaTableColumn.identifierwhen"name"return@search_result[rowIndex]['from_user']when"text"return@search_result[rowIndex]['text']endendend
検索結果を取得する際に NSString.stringWithContentsOfURL を使用していますが、Ruby の Net::HTTP を使用することもできます。また、JSON の解析も Mac OS X 10.7 以降に限定すれば NSJSONSerialization を使うことができます。Ruby メソッドと Mac OS X API をいろいろ組み合わせて使用できますので、用途や利便性などで使いわけてみてください。