Rubyの強力な点の一つは、多くの一般的なタスクを処理するための豊富な「標準ライブラリ」が同梱されていることです。これらは "batteries included"(電池付属)とよく表現されます。
他の言語で import や include を使うのと同様に、Rubyでは require を使ってこれらのライブラリをロードします。ただし、File や Time、Regexp のようなコア機能の多くは、require なしで利用可能です。
この章では、特に使用頻度の高い標準ライブラリの機能を見ていきます。
ファイルシステムとのやり取りは、多くのアプリケーションで不可欠です。
File クラスは、ファイルに対する基本的な読み書き操作を提供します。
ファイルの書き込みと追記:
ruby file_io_example.rbファイルの読み込み:
ruby file_read_example.rbDir クラスはディレクトリの内容を操作するために使われます。特に Dir.glob はワイルドカードを使ってファイルやディレクトリを検索するのに便利です。
しかし、パスの連結や解析を文字列として扱うのは面倒です。Pathname ライブラリは、パスをオブジェクトとして扱うための優れたインターフェースを提供します。
Rubyには Time(組み込み)と Date(要 require)の2つの主要な日時クラスがあります。
現代のWeb開発においてJSONの扱いは不可欠です。json ライブラリは、JSON文字列とRubyのHash/Arrayを相互に変換する機能を提供します。
Rubyの正規表現 (Regexp) は、Perl互換の強力なパターンマッチング機能を提供します。/pattern/ リテラルで記述するのが一般的です。
=~ 演算子: マッチした位置のインデックス(0から始まる)を返すか、マッチしなければ nil を返します。
String#match: MatchData オブジェクトを返すか、マッチしなければ nil を返します。MatchData は、キャプチャグループ(()で囲んだ部分)へのアクセスに便利です。String#scan: マッチするすべての部分文字列を(キャプチャグループがあればその配列として)返します。
String#gsub: マッチするすべての部分を置換します (Global SUBstitute)。require でロードできる豊富な標準ライブラリが付属しています。
strftime でフォーマットできます。JSON.parse(文字列→Hash)と to_json(Hash→文字列)を提供します。/pattern/)はパターンマッチングに使います。String#match で MatchData を取得し、scan や gsub で検索・置換を行います。これらは標準ライブラリのごく一部です。他にもCSVの処理 (csv)、HTTP通信 (net/http)、テスト (minitest) など、多くの機能が提供されています。
config.json ファイルを読み込み、内容をJSONパースしてRubyのHashに変換してください。logging の値を true に変更し、さらに :updated_at というキーで現在時刻(文字列)を追加してください。config_updated.json という名前でファイルに保存してください。(読みやすさのために JSON.pretty_generate を使っても構いません)ruby practice10_1.rbsystem.log というファイルを1行ずつ読み込みます。[INFO] で始まり、かつ logged in という文字列を含む行だけを検出してください。192.168.1.10 のような形式)を正規表現のキャプチャグループを使って抽出し、IPアドレスだけをコンソールに出力してください。ruby practice10_2.rb