Railsでおなじみのhas_secure_passwordですが、どんな仕組みでできているのでしょうか。 class User < ActiveRecord::Base has_secure_password end user = User.new user.authenticate('password') 動的にメソッドが追加される仕組みにより、これ以上無いくらいすっきりモデルの定義が書けますよね。 自作のGemなどでこんなAPIを作りたいと思ったので、調べました。 読んだソースコードはこれです。 結論 見かけ上は、下記のコードで同等の振る舞いを持たせることが可能です。