📕

【Ruby】組み込みライブラリとKernelモジュール

2022/11/20に公開約1,400字

記事の概要

Rubyにデフォルトで用意されているタイトルの内容について確認する

この記事を書く理由

Rubyをちゃんと学ばないまま実務でRailsを触ってきた自分が最近これらを学び、もっと早くから知っていたかった!と感じたから

組み込みライブラリとgem(外部ライブラリ)

RubyやRailsを触っているとよく出てくるString,Integer,Array,hashなどは、組み込みライブラリとして、Rubyに始めから用意されている。(公式リファレンスの組み込みライブラリ一覧

それに対し、gemというものもある。
開発を行っていると、こちらもよく出てくると思うが(rails,rspec,deviseなど)、これらはgemと呼ばれているが、わかりやすく言うならgemは「外部ライブラリ」である。

組み込みライブラリとgemは使い方として以下の違いがある。

組み込みライブラリ gem
使う方法 何もしなくても使える includeしないと使えない

※組み込みライブラリではないがRubyに元から備わっている「標準ライブラリ」というものもある

個人的雑感

String,Arrayといったものとrspec,deviseのようなgemが、大枠としては同じ「ライブラリ」であるというのが衝撃だった。
Rubyはこれらのライブラリをそのまま使ったり、includeして使ったりして、目的の挙動を実現しているのだと理解できた。

Kernelモジュール

開発していると、putsを使って出力を確認する場面が自分にはよくあった。メソッドの中でputs 変数と書いて、想定した値が取得できているかをターミナルで確認したり、という使い方だ。

このputsというのはどこで定義されているのか?

それが Kernel モジュール である。

そして、KernelモジュールをObjectクラスがincludeしているため、どのクラスでも基本的にputsが使えるということになる。

Kernelモジュールのリファレンスはこちら

主要クラスとKernelモジュールの関係を図で表したものを以下に載せておきます。(書籍「プロを目指す人のためのRuby入門」、p300を参考)

個人的雑感

上の図のような言語の仕組みというのは、経験が浅い段階では理解できていないまま実務に当たることも出てくると思うが、まったくわかっていないまま放置するのではなく、少しずつでもいいので理解のために学習していくことが重要なのだと感じた。

参考資料

書籍「プロを目指す人のためのRuby入門」Amazonページ

Discussion

ログインするとコメントできます