blog

[rails]
自分がよく使っている gem

はじめに

この記事は foodison advent calendar 2015 の1日目の記事です。

どうもこんにちは。
先週末、急性胃腸炎で本気で死を意識した vimtaku です。
おかげさまで回復しました。

僕は 2015年3月に フーディソンに join して、
大体 2ヶ月に 1度は rails のプロジェクトを作ってきました。
この記事では自分がよく使っている gem を書いていこうと思います。

よく使っている、好きな gem たち

ridgepole

https://github.com/winebarrel/ridgepole

gem 'ridgepole'

ridgepole は Cookpad さん の この記事 に詳しく書かれています。
僕はこれを愛用しています。 migration という仕組みは僕は個人的にあまり得意ではないです。
ridgepole は migration から多くの部分を開放してくれていると思います。
弊社の開発ではスピードが求められるので、 作りながら走ることがよくあります。
ですので、カラム追加や修正などが多く発生します。
そんな時に vim Schemafile して気軽に修正するだけで良い、便利。
僕が一番好きな gem です。
もしもサービスが急に流行りまくった時(これは縁かつぎみたいなものです)のために bigint にしたい願望があったので

gem 'activerecord-mysql-awesome'

これを入れて

bin/ridgepole -c config/database.yml --apply -f Schemafile  --enable-mysql-awesome

たいていこっちを使っています。

slim-rails

https://github.com/slim-template/slim-rails.git

gem "slim-rails"

僕は slim 派です。

factory_girl_rails

https://github.com/thoughtbot/factory_girl_rails.git

gem 'factory_girl_rails'

僕は factory_girl 派です(しかしそこまで使いこなせてない)。
ただ factory_girl は使い方を覚えるのに学習コストがかかると思うので、たしかになかなかつらいところもあるんですが。
長いことメンテとかしていく時に fixture のデータだけでやっていくのは辛いというのを perl を書いてた時に感じてました。
factory_girl は出来てるし便利だなと思いますし、 trait がすごく便利です。

searchkick

https://github.com/ankane/searchkick.git

gem 'searchkick'

まだ2つのプロジェクトでしか使ってないですが、めっちゃ便利です。
elasticsearch のインデックス作成から、query の送信、その結果から active record のオブジェクトのリストを取得できて
めっちゃ便利です。
ちなみに魚の表記ゆれなどを吸収するような処理だったり、以前に使ったようなものと関連するものを取得するような処理に使っています。

rest-client

https://github.com/rest-client/rest-client

gem 'rest-client'

よく手軽に rest で api とか叩きたい時にさくっと使っちゃいます。

rails_admin

https://github.com/sferik/rails_admin

gem 'rails_admin'

とりあえず操作したい、とりあえず綺麗な画面でハッピーみたいなタイミングでよく使います。
カスタマイズをしようとするとド派手にハマるので、そういうことをするときは他の手法を模索したほうが良さそうです。

sorcery

https://github.com/NoamB/sorcery.git

gem 'sorcery'

ログインの仕組みを作るときにすごく便利です。
devise は便利なんですが、僕はこっちのほうがシンプルで好きです。

ruby-jwt

https://github.com/jwt/ruby-jwt.git

gem 'jwt'

jwt で api のサーバサイドをつくるのが結構いい気がしてて、よく使っています。

fastlane

https://github.com/fastlane/fastlane

これは番外編で、 ruby, rails の文脈じゃないです。
iphone アプリの申請や、スクショ取る、などのいろいろめんどくさいところを解消してくれるものです。
(まだチュートリアルレベルでしかみていないんですが便利そうなので書いておきます。)
各サブプロジェクトで構成され、それぞれが独立で使えそうです。
ちなみにすでに sign は使いましたが簡単に mobileprovision を修正してくれて最高でした。

所感

かなりゆるふわな記事になりました。
自分の gem 収集力の低さを感じたので、また改めてこのような記事を書こうと思います。

最近の興味は主に 水産経済新聞 なので、魚や魚の資源管理に特に興味が向いています。
また、弊社に join してから魚を食べるときにどういう魚なのか、どこの産地なのかなど意識する機会が増えました。

通勤時間の楽しみは水産経済新聞を読むことです。この辺に関しては後日またブログで書きます。

foodison のミッションは「世界の食をもっと楽しく」です。
このミッションに共感するようなエンジニアの方は、是非一度遊びに来てください!
昨日からかちどきのオフィスに移転して勤務が始まっています。
採用関連に関してもっと知りたい方は こちらの wantedly を参照してください。