PIYO - Tech & Life -

Gem

deviseのskip confirmationの話

Railsのdeviseの話です。 deviseは使わない派、deviseは悪派な人も多いですが、deviseの標準的な範囲で使えそうならとりあえず使っちゃう派です。まあ、その辺の論争は置いといて。 (ユーザーを一括作成するなど)都合により認証メールを送らないでいるための方法と、認証メールとか関係なく認証済にしてしまう方法、それぞれ別の手段が提供されています。

RubyでGmail風プロフィール画像を生成するinitial_avatarでユーザーを識別しやすくする

ユーザーにアバター画像(プロフィール画像)を登録してもらうサービスの場合、画像未登録のユーザー用にデフォルトの画像を用意することがあると思います。 グレー背景のシルエットとか、Googleのイニシャル(漢字なら最初の一文字)、Twitterのたまごとか、Slackの模様とか、いろいろなパターンがありますね。

Railsでorder忘れを防止するためのgemを作りました

order、つけ忘れがちですよね。環境が変わると思ってた順番に出なかったりします。 更に厄介なのは、つけ忘れてもなんとなく正しい順番で動いているときで、何かのタイミングで思った順ではなくなってしまうことがあります。というかありました。

rest-clientで簡易にAPIクライアントを書く

オープンではないサービスのAPIを使うとき、APIクライアントが無いってことが多いです。なのでアプリケーションから使いたいAPIだけを叩くような簡易なAPIクライアントを自分で書きます。そのときはrest-clientあたりを使ってベタっと書いてしまうことがほとんどです。

roo gemでxlsxファイルを読み込もうとしてundefined method `bytesize'

Rubyでxlsxファイルを読めるrooというgemでエクセルを読んでいる箇所がエラーになるようになりました。 しかもローカル環境のMacでのみ発生し、AWSのAmazonLinuxやUbuntu上では問題なく動くという罠っぷり。これのおかげでだいぶハマりました。 問題のはS3上に置いたエクセルをRubyで開こうとしたときで、コードはだいたいこんな感じでした。

GitHubで依存Gemの脆弱性をチェック

だいぶ前からGitHubにて、プロジェクトが利用するGemfileの脆弱性を判定してくれるようになっています。 参考までに僕が2年以上前にコミットしたサンプルプロジェクトを見てみます。 ちなみに脆弱性の情報は対象のリポジトリの権限をもっていないと表示されません。

Railsで電話番号のバリデーション

電話番号を単に数字とハイフンの並びと見るだけであればまだいいのですが、真面目に扱おうとすると割と面倒です。 幸い、Googleのlibphonenumberやそれをバリデーション用にラップしたtelephone_numberというgemがあるので、それらを活用すると簡単に扱えるはずです。

Rubyでフリーメールの判定をするfreemail gem

フリーメールで登録できないようにしたい、という要望に答えるためにfreemailというgemを使いました。 https://github.com/smudge/freemail このgemはフリーメールのリストを管理していて、該当するかメールアドレスかどうかを判定してくれます。ある程度のリストが最初からあって自分で用意する必要がないというのが良いところです。

Railsでメールにプレフィックスつけるgem email_prefixer

メール送るときにプレフィックスつけたいときあるじゃないですか。サービス名だったり、ステージング用でテストするためのメールだったり。 で、1個1個subjectに設定するのは面倒だし忘れてしまいがちなので、email_prefixerを使っています。