Rails Webook

Web業界で働いています。Railsを中心にプログラミングや事業開発のようなことを書いていきます。

コードリーディング

RailsのActiveRecordのAutosaveAssociationのコードリーディング

RailsのActiveRecordのautosave機能についてソースコードリーディングをしました。 ドキュメント ActiveRecord::AutosaveAssociation ソースコード ActiveRecord::NestedAttributes - Tag 5.2.1 (18/8/8) Autosaveは、親モデルが保存された時に、関連するモ…

JWT(Json Web Tpken)のRuby実装のruby-jwtのコードリーディング

JWT(Json Web Token)のRuby実装のruby-jwtのコードリーディングをしました。 JWTの仕様やその実装についてみまして。仕様がシンプルなので、本体のコード量は500行程度で読みやすかったです。 目的 1. JWTとは ヘッダー部 ペイロード部 電子署名部 注意点 …

Railsの認証機能Gemのclearanceのコードリーディング

Railsに認証機能を追加するGemのClearanceのソースコードを読んでみました。 本体のコード量は、1,200行程度ですので比較的読みやすいと思います。 Clearnaceは、メールとパスワードで認証できるようにする機能を提供しています。 目的は、小さく、シンプル…

Railsのページネーション機能のKaminariのソースコードリーディング

Railsにページネーション機能を追加するKaminariのソースコードを読んでみてまとめました。 本体のコード量は、700行程度ですので、比較的読みやすいと思います。 モデルはActiveRecord::Baseのメソッドの名前空間を汚さずに、ページネーションのメソッドを…

Railsの権限管理CanCanCanのソースコードリーディング

Railsの権限管理のCanCanCanのソースコードを読んでみてまとめました。 本体のコード量的は1,000行程度で、同じ権限管理をするPundit(300行程度)と比べると多めです。 1. 目的 2. 基本情報 対象バージョン コード量 ディレクトリ構成 クラス図 ドキュメント …

Railsの権限管理Punditのソースコードリーディング

Railsの権限管理のPunditのソースコードを読んでみてまとめました。 本体のコード量的には300行程度なので比較的簡単に読めるかと思います。 1. 目的 2. 基本情報 対象バージョン コード量 ディレクトリ構成 クラス図 ドキュメント 3. Punditの権限管理の実…

Rails5.2から入ったActiveStorageのソースコードを読んでみた

Active Storageの実装にいくつか興味があるところがあったので、いくつかピックアップしてソースコードリーディングをしてみました。 ライブラリということもあり、ビジネスロジックのややこいところもないため、シンプルで読みやすいコードでしたのでぜひ興…