2017/09/23

RGhost に PR を送ってマージされた

現プロジェクトで画像を扱う機会があって RGhost を使っていました。
その時以下のようなエラーが。パッと見て何が起きたか何も分からない。

具体的にその時は Tempfile を渡していたのですが、nil 関係無くても出てくる。

ちょっと困ったなー、ということで調べてみる。
具体的にエラーが発生しているのは shellescape というメソッド。
これを呼んでるのはこことかこことかここ
RGhost は ImageMagick を使って画像を変換するのでそれ用に引数を shellescape しているようです。
(書いてて思ったけれど ImageMagick 側は何もAPIとか提供してないのかな)

それで、よくよく見てみると file_in は case を使って @document のクラスで確定するらしい
あー、それなら Tempfile は扱えないな。
ということで File にして一時の問題は解決。
他の人にも同じ轍を踏んで欲しくないので、対応してないのならメッセージが出るとかした方が良いな、と思う。

ということで PR にしてみました
やったことは単純で、case に else 節を足して例外を投げるように変更。
RGhost::Document と File と String しか対応してないよー、と例外経由でメッセージが出るようになった。
RSpec ももちろん追加。
gemspec に RSpec のバージョンが指定されていないのが若干ひやひやものである。
3.0 未満の RSpec だと raise_error とか無かった気がする。
あと浮動小数の値がちょっと違う。なんか最近YARVに変更入ったっけ。分からない。
そのあたりも含めて最新に合わせつつ、バージョン情報とかを PR に書いて投げた。
そしたら一晩でマージしてくれた。対応早くてうれしい。

という訳で Rubykaigi の熱がさめないうちに OSS 活動をしたのであった。まる。

0 件のコメント:

コメントを投稿