HEYのGemfileが公開されていたので見てみた(その1)

こんにちは!kossyです!




さて、今回はRuby on Railsの作者として知られているDHHが開発に参加している、HEYという有料の電子メールサービスの
GemfileがGithub上に公開されていたので、どんなGemが使われているかを見てみたいと思います。


connection_pool


Rubyでコネクションプールを貼るためのGemです。

Railsではジョブ管理にRedisを用いられるケースが多いですが、connection_poolはそういったツールとの疎通をよしなに行うGemのようです。

参考:
railsでコネクションプールを使ってredisに接続する - Qiita
ActiveJobでsidekiqを使う場合、connection_poolの値はconcurrency + 1以上にしよう – repl.info

pwned

公式の英語を翻訳してみます。

Troy Hunt's Pwned Passwords API V2 allows you to check if a password has been found in any of the huge data breaches.

TroyHuntのPwnedPasswords API V2を使用すると、巨大なデータ侵害のいずれかでパスワードが見つかったかどうかを確認できます。

Pwned is a Ruby library to use the Pwned Passwords API's k-Anonymity model to test a password against the API without sending the entire password to the service.

Pwnedは、Pwned Passwords APIのk-Anonymityモデルを使用して、パスワード全体をサービスに送信せずにAPIに対してパスワードをテストするためのRubyライブラリです。

The data from this API is provided by Have I been pwned?. Before using the API, please check the acceptable uses and license of the API.

このAPIからのデータは、Have I pwned?によって提供されます。 APIを使用する前に、APIの許容される使用法とライセンスを確認してください。

メールアドレスやパスワードが漏洩していないかをチェックできるGemですね。
使い方を簡単に確認します。

# Gemfile

gem 'pwned'

$ bundle

$ rails c

$ pass = Pwned::Password.new("test1234")

$ pass.pwned?
=> true

$ pass.pwned_count
=> 54917

test1234というパスワードは、パスワードを侵害されたことがあって、
侵害された回数が54917回あるということがわかります、、、

ご自身がよく使うパスワードも調べてみてはいかがでしょうか。

Platform Agent

UserAgentで取得できるクライアントプラットフォームをRubyで扱いやすくしたGemですね。

ソースコードを確認しましたが、メインのコードは100行ちょっとなので、初学者がGemのコードリーディングを行うには最適かもしれません。




勉強になりました。