見出し画像

初心者がRailsのコードリーディングに挑戦 #7


以前見たこちらの記事を参考に、Railsのコードリーディングに挑戦してみたいと思います。

◇ 前回までの記事一覧


確認用のRailsプロジェクトを作る

の続きから!

前回GemfileにGemを追記したので、その詳細を見ていきます。
調べた事をメモしましたが違いが分かりづらいので、後半でちょっと実験をしてみようと思っています。


— インストールしたGemについて —

◇ pgとは

PostgreSQLの接続に使用するGem

◇ PostgreSQLとは

無償のデータベースのメジャーなものが「PostgreSQL」、「MySQL」、「SQLite」の3つのようです。
それぞれ性能が違うようで、作りたい機能によってどれを使うかを選ぶようです。

いつも使っていたのはSQLite3でしたが、ここではこのPostgreSQLというものを使っていくという事でしょうか。

◇ pry-railsとは

デバックするためのGem

pry-railsの機能の一つにbinding.pryがあります。
binding.pryはコード上にbinding.pryを記述することでbinding.pryの書かれている箇所までの処理を実行し、binding.pryの書かれている箇所で処理を一時的に止めることができます。

この機能を使ってRailsのソースコードを読んでいくようです。

◇ pry-docとは

pryにpry-docをインストールして$コマンドを使うことで、C言語で実装されたRubyメソッドを参照することができます。

◇ pry-byebugとは

バグを修正するためのGem

【pry-byebugで使えるコマンド】

下記サイトから引用しました

手順を追っている参考サイトで ”step” というコマンドを使っているので、これを使う為にインストールしたのかなと思います。

◇ byebugとは

こちらもデバックするためのGemのようです。
こちらでは、処理を止めたいところに ”byebug” というメソッドを書くようです。

【byebugで使えるコマンド】

next    一行進む
continue    次のブレイクポイントに進む
step    メソッドの内部にステップインする
list    ソースコードを表示する
up    ソースコードの上を表示する
down    ソースコードの下を表示する


pryとは “覗く” という意味のようです。

ここからは勝手な想像ですが、docはdo C(C言語にする)という事でしょうか。
byebugは「ばいばいバク」みたいな感じですかね。かわいいです。

byebugとpry-byebugの違いが分かりづらいので試してみます。
byebugはそれ単体で処理を止める記述を足したり、コマンドプロンプトで確認するところまで出来そうです。
pry-byebugはpry-railsとセットで使う感じでしょうか。

— Gemを試しに使ってみる —

実験1  byebugだけ使ってみる

実験用につくったフォルダーのGemfileにbyebugだけ追加してインストールしてみました。

そしてUserモデルを作って、記述内に ”byebug” とバリデーションを追記。

コンソールで

user = User.new(name: “ “)

と入力しようとしたところ、
「user = User.」と入力したところでこんな感じになりました。

そして “step” というコマンドを使ってみました。

これで、railsリポジトリのactivemodel/lib/active_model/validations/validates.rbというファイルの107行目にバリデーションの事が書いてあるということが分かるんですね。

これだけでも充分使えそうですね。

実験2  pry-railsだけ使ってみる

次はさっきのbyebugをアンインストールし、pry-railsのみ入れてみます。

そしてUserモデル内の記述を ”byebug” から“binding.pry” に変更。

そしてまたコンソールでデータを入力してみます。

今度は最後まで入力できました。
Enterキーを押すとこんな感じ。

まだpry-byebugをインストールしていないので、たぶんstepは使えないと思いますが、ちょっと試してみます。

やっぱりだめみたいですね。

実験3  pry-railsとpry-byebugを使ってみる

ではpry-byebugもインストールしてみます。
この状態でコンソールにデータを入力すると、

stepが使えるようになりました!
示している場所はさっきのbyebugの時と同じですね。

実験4  pry-railsとpry-byebugとpry-docを使ってみる

では最後にpry-docもインストールしてみます。
どう変わるでしょうか。

ここまでは特に変化は見られませんね。
pry-docはどこで効果を発揮するのでしょうか。

pry-docの事を調べたこのサイト ↓

これをマネして入力してみました。

何やら出てきましたね。
でもそういえば私はそもそもC言語が分からないので見てもよく分かりません(ーー;)
実際にソースコードを読んでいく時に出てきたらその都度調べようと思います。


長くなってしまったので、今回はこのへんで!
実験していくうちにコマンドも手に馴染んできて結構楽しかったです。

この記事が気に入ったらサポートをしてみませんか?