IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Ruby & Rails

CTC 教育サービス

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート 

第32回 あのGemは今 その2 (松永紘) 2017年11月

 少し前の話になりますが、去る9/18(月)~9/20(水)の3日間、広島国際会議場にてRubyKaigi2017が開催されました。
 弊社からは私も含め4名のエンジニアが会社の補助を受けて参加しております(*1)。その様子を弊社技術ブログ(*2)でも参加レポートとしてまとめていますので、ぜひご覧ください!

 さて前回に引き続き、今回も「あのGemは今」というタイトルで過去にこのコラムにてご紹介したGemの今を取り上げていきます。
 なお動作確認はRuby2.4.2、Rails5.1.4で行っています。

第6回Arproxy(2013年8月)

 バージョン: 0.1.3 -> 0.2.3

 Arproxyは以下の図のようにActiveRecordとDB Adapterとの間に入り、処理をフックすることができるライブラリです。

fig01

 当時のRails3.xから現在の5.xではActiveRecord周りにもかなりの修正が入っていますが、きちんと追随しているようでmysql2のアダプタであれば問題なく動いています(*3)。
 またバージョンは当時の0.1.xから0.2.xにマイナーアップデートをしていますが、中身を調べてみたところフック処理の定義部分をPluginに切り出せる機能を追加しているようです(*4)。

第7回Mail(2013年9月)

 バージョン: 2.5.4 -> 2.6.6(*5)

 Rails標準のライブラリAction Mailerに使われているライブラリです。Action Mailerはどちらかと言えばメールの作成・送信に特化しており、メールの受信・解析はやや煩雑になりがちです。そういう際にはAction Mailerを介さずにこのライブラリを使う方が楽なケースもあるでしょうし、またRubyから直接メールを扱う場合にも役に立つライブラリです。バッドノウハウの塊ともいえるメールの構造をあまり意識せずに扱うことができるので、特に解析の部分で重宝するなあと個人的にも感じています。
 さてそんなMailライブラリですが、大きなアップデートこそないものの前述のようにAction Mailerに使われていることもあって、頻繁にアップデートされているようです。手元の環境でも以前のソースコードが問題なく動くことを確認できました。 なお、このMailライブラリは今年の7月に脆弱性が発見されているため注意が必要です。バージョン2.5.5よりも古いものを使っている場合、SMTP コマンドインジェクションの脆弱性が存在するそうです(*6)。既に対策がされたバージョンが公開されているので、対象のバージョンをお使いの方はアップデートをお勧めします。

第9回RailsPanel(2013年11月)

 バージョン
  RailsPanel: 0.1.7 -> 0.3.1
  meta_request: 0.2.8 -> 0.4.3

 Chromeの拡張機能とRailsアプリケーションにそれぞれインストールを行うことで、Chromeの開発者ツールに"Rails Panel"が表示されるライブラリです。

fig02

 このライブラリもRailsやChromeのアップデートに対応しており、今でも問題なく使えます(*7)。
 大きな変更はありませんが、以前と比較するとBreakdownタブに処理時間の内訳が切り出され、Cacheタブが新たに追加されています。また以前は動作していなかったLogタブのBugFixも行われているようです。
 補足になりますがCacheタブやLogタブは、ソース上にRails.loggerやRails.cacheを埋め込んだ場合の出力となりますので少し注意が必要です。
 以前もそうでしたがRails開発を始める場合には、今でもとりあえず入れておいて間違いのないライブラリの一つだと思います。

まとめ

 以上、前回に引き続き「あのGemは今」の2回目を書いてみました。今回振り返ったGemは、大きな変更こそありませんが、きちんとRubyやRailsのバージョンアップに追随しており今でも使えるものとなっています。メンテナンスされている方々には頭が下がる思いですね。
 次回は「あのGemは今」の最終回(?)です。

 それでは、Enjoy Ruby!

(注釈)
*1: チケット代から宿泊費、交通費に至るまで支援をいただきました。この場を借りて改めて所属する会社に感謝を伝えます。ありがとうございます!
*2: RubyKaigiの参加を機にこの度開設しました。随時更新予定ですので、こちらも併せてよろしくお願いします。
http://zenet-tech.hatenablog.com/
*3: ただ2013年の時同様、PostgreSQLでは正しく動作しないようです。以下のようにPostgeSQL利用時のIssueも上がっていますが、執筆時点では対応されていません。
https://github.com/cookpad/arproxy/issues/9
*4: https://github.com/cookpad/arproxy/pull/6
*5: 執筆時現在、2.7.0はRC3まで出ているようです。
*6: http://jvndb.jvn.jp/ja/contents/2015/JVNDB-2015-007636.html
*7: Chromeに関してはver.62で表示に関するIssueが上がっています。
https://github.com/dejan/rails_panel/issues/134
MacOSでのIssueですが、Windowsでも同様の現象が起きることを確認しています(執筆時時点)

 


 

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート