第 1 回から第 3 回にも参加した RubyMotion もくもく会 in Osaka の 第 4 回 RubyMotion もくもく会 in Osaka に参加してきました。

今回も前回と同じく東京と同時開催でした。 前回はハングアウトで接続していたのですが、 今回は接続せずに終わってしまいました。

話に出たもの

話に出てきたアプリやサイトのメモです。

やっていたこと

前回の続きで https://github.com/HipByte/RubyMotionSamples のサンプルを試していたのですが、 https://github.com/HipByte/RubyMotionSamples/tree/master/osx/Tweets が Twitter API 1.1 への変更の影響で動かなくなっていました。

具体的には

        begin
          json = JSONParser.parse_from_url(url)
        rescue RuntimeError => e
          presentError e.message
        end

という部分で

Terminating app due to uncaught exception 'TypeError', reason: 'data_parser.rb:6:in `parse:': exception class/object expected (TypeError)
	from json_parser.rb:3:in `parse_from_url:'
	from app_delegate.rb:71:in `block in search:'

というエラーになっていました。

ブラウザで http://search.twitter.com/search.json?q=xcode%20crash にアクセスしてみると {"errors": [{"message": "The Twitter REST API v1 is no longer active. Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview.", "code": 68}]} というエラーが HTTP/1.1 410 Gone で返ってきていました。

API 1.1 に対応するには OAuth 対応が必須ということで、 簡単には対処できなさそうでしたが、 https://github.com/HipByte/RubyMotionSamples/issues/31 に報告がすでにあったのでコメントをつけておきました。

それとは別に、エラー処理も RuntimeError しか rescue していないので、 TypeErrorrescue できていなかったり、 rescue できても

Terminating app due to uncaught exception 'NoMethodError', reason: 'app_delegate.rb:73:in `block in search:': undefined method `presentError' for #<AppDelegate:0x7fe1eb107910 ...> (NoMethodError)

でエラー処理がちゃんと動いていなかったりしました。

これは NSApplication.sharedApplication.presentError error_ptr にすれば良いのかも、 と思って試してみたけどうまくいかない、というところで時間が来て終了になりました。

Disqus Comments

Kazuhiro NISHIYAMA

Ruby のコミッターとかやってます。 フルスタックエンジニア(って何?)かもしれません。 About znzに主なアカウントをまとめました。

znz znz


Published