block_given?

ジャングル ブロック ナイ アルノハ jump ダケ。CC-BY-SA 3.0

rubotyにウェブサイトのスクショを撮らせるプラグインruboty-ssを公開した。

デフォルトだと画像はGyazoに保存される。Dropboxに保存することも出来る。

f:id:block_given:20141013193111p:plain

試したもの

json-collectionとjsonism

GistのAPIを叩くために使った。 画像の添付などmultipartでpostしようとして少し時間がかかった。 ほんとはもっと楽な方法あるのかもしれないけどやり方がわからなかったので内部のfaradayのconnection差し替えたりしてそこが面倒だった。

phantomjs-gem

今まではHerokuでPhantomJSを動かしたい場合、phantomjsのビルドパックを使っていた。 今回はphantomjs-gemを使うことにした。あまり何も考えていなくてもHerokuでphantomjsが動かせて便利。 こういうバイナリダウンロード系のgem、Herokuで雑に動かしたいときにすごく役に立つ。

dropbox api

公式のクライアントを使った。 access tokenさえ取れれば比較的なんでも出来る。

gyazo api

どうでもいい画像はるときに便利。消せないのが残念だけど画像を貼るだけに特化しているのですごく扱いやすい。

ハマったところ

Gistに画像が貼れない

画像の保存先としてGistを使おうとしたがGistはAPIから画像を保存することはできない。 もしも保存したいのならば

  1. APIを使いGistを作る
  2. GistをcloneしてきてGitでimageを追加したコミットをpushする

の2ステップが必要なのであきらめた

反省

結局画像の保存先選びが一番苦労した。 Gist/Dropbox/Gyazoの順で試していったが最初からGyazoればよかった。

スクリーンショットを撮るサービスは探せばありそうだ。

  • PhantomJS使ってウェブサイトをキャプチャする処理
  • 画像を保存する処理

どちらもやってくれるサービスを探せばよかった。

次に向けて

RubyのライブラリがないAPIを叩くとRubotyのプラグインをつくるついでにライブラリのgemが1個できるのでよさそう。 既存のgemを使うだけだと書いててお得感が無い。