ユーザに Gem の読み込み方針を提示するために、命名規則が推奨されている
実際には、↑ の命名になっていない Gem もあるけど、デファクトスタンダードとして知っておく
① クラス・モジュール名に複数単語が含まれる場合
単語を _ 区切りにする
require 先と同じ表記になるので、ユーザーフレンドリー
例えば、
- Gem 名は
ruby_parser - require 先は
〃 - クラス・モジュール名は
RubyParser
② 別の Gem を拡張する場合
拡張元を - 区切りにする
require先は / 区切りとなり、クラス・モジュール名は :: 区切りにする
例えば、net/http に persistent 機能を追加する場合
- Gem 名は
net-http-persistent - require 先は
net/http/persistent - クラス・モジュール名は
Net::HTTP::Persistent
③ ①と②の場合
例えば、net/http に digest authentication 機能を追加する場合
- Gem 名は
net-http-digest_auth - require 先は
net/http/digest_auth - クラス・モジュール名は
Net::HTTP::DigestAuth
※ 大文字は使わない(小文字で統一する)
OS によって、小文字や大文字を区別しない場合があり、意図せず Gem を読み込んでしまう可能性があるため