C&R研究所より献本御礼。
こういう本を待っていた。特に「Rubyクックブック」(翻訳版)の出来がいささか残念だっただけに、この本の価値がさらに高く感じる。
他のプログラミング言語を会得している人であれば、Ruby本はこれと「初めてのRuby」で必要十分なのではないか。
本書「Ruby逆引きハンドブック」は、「出来ることが先」ではなく「やりたい事が先」にある人がRubyを使うための手本。いわゆるクックブックであるが、本家の出来が前述のとおりなので、日本においてはこれが de facto な「Rubyオフィシャルクックブック」となるのではないか。
目次 - Ruby逆引きハンドブックより版型も動物本より一回り小型のA5で、値段も税込みで4,000円弱というのは、二色刷りで768ページの本としては破格だ。内容もRuby本の世界では「コンバットプルーヴン」なるびきち著とあって、ほぼ文句のつけようがない一冊となっている。
強いて文句をつけるとしたら、折角の二色刷りのおかげで、コードが少し読みにくくなってしまったことだろうか。まず以下は Google Code Prettify の標準的なカラーリング。IE以外のブラウザーで見て欲しい。
#!/usr/local/bin/ruby -Ke
# 「scan(/./)」「split(//)」「chars.to_a」(Ruby 1.8.7以降)は1文字ずつに分割するイディオム
"<こんにちは>".scan(/./) # => ["<", "こ", "ん", "に", "ち", "は", ">"]
"<こんにちは>".split(//) # => ["<", "こ", "ん", "に", "ち", "は", ">"]
"<こんにちは>".chars.to_a # => ["<", "こ", "ん", "に", "ち", "は", ">"]
header = <<EOH
From: rubikitch@ruby-lang.org
To: ruby-list@ruby-lang.org
Reply-To: ruby-list@ruby-lang.org
Subject: I love Ruby!
EOH
# マッチしない正規表現の場合は空配列が返る
header.scan(/no match/) # => []
# 正規表現にマッチした部分の配列を得る
header.scan(/^.+ruby-list.+$/)
# => ["To: ruby-list@ruby-lang.org", "Reply-To: ruby-list@ruby-lang.org"]
# ()付き正規表現の場合はキャプチャの配列の配列が返る
header.scan(/^(\S+): (.+)$/)
# => [["From", "rubikitch@ruby-lang.org"],
# ["To", "ruby-list@ruby-lang.org"],
# ["Reply-To", "ruby-list@ruby-lang.org"],
# ["Subject", "I love Ruby!"]]
# キャプチャだけでなく、正規表現にマッチした部分も欲しければ、正規表現全体を()で囲む
header.scan(/(^(\S+): (.+)$)/)
# => [["From: rubikitch@ruby-lang.org", "From", "rubikitch@ruby-lang.org"],
# ["To: ruby-list@ruby-lang.org", "To", "ruby-list@ruby-lang.org"],
# ["Reply-To: ruby-list@ruby-lang.org", "Reply-To", "ruby-list@ruby-lang.org"],
# ["Subject: I love Ruby!", "Subject", "I love Ruby!"]]
# ()が1つのみの場合、かなりの頻度で「Array#flatten」と併用される
header.scan(/^(.+):/) # => [["From"], ["To"], ["Reply-To"], ["Subject"]]
header.scan(/^(.+):/).flatten # => ["From", "To", "Reply-To", "Subject"]
# ブロックを付ければマッチごとにブロックを評価する
header.scan(/^(\S+): (.+)$/) do |name, value|
puts "送信アドレスは#{value}です。" if name == "From"
end
# >> 送信アドレスはrubikitch@ruby-lang.orgです。
次に、以下のPDFをご覧いただきたい。オフィシャルサンプルページである。
コメントが赤くて目立ちすぎると感じないだろうか。少なくともコードそのものよりも目立ってしまう。もう少し暗くしてほしかった。
あともう一つ上げるとすると、書籍のサポートページ。目次が短い。読み物ならこれでもいいが、技術書であれば項単位の目次が必要だ。実際の「やりたいこと」はそこに書いてあるのだから。時間があれば私自身で補完したのだが、現在時間不如意なので今のところはそのまま引用するに留めておく。
しかし、それくらいしかケチのつけどころがない仕上がりである。むしろオライリーに見習って欲しいほど。特に版型はなんとかしてほしい。動物本はかさばり過ぎである。原著の方もA5にして欲しいなあ....
Dan the Occasional Rubyist

このブログにコメントするにはログインが必要です。
さんログアウト
この記事には許可ユーザしかコメントができません。