2008.06.30 Mon [長年日記]
# [Ruby] 今度こそ、Ruby
日本 Ruby 会議 2008の動画をあれこれ見てたら猛烈にRubyでプログラミングがしたくなったので、始めることにしました。
というわけで、Rubyの新しいをインストール。「One-Click Ruby Installer for Windows 1.8.6-26 Final (2007-12-14)」
次にリファレンスマニュアル。「なお、現在、新バージョンのリファレンスの整備も進行中です。こちらもダウンロードすることも可能です。」との事なので、「Rubyリファレンスマニュアル刷新計画 パッケージ版 1.8.6/1.9.0両用」をインストール。
ここでちょっと躓いた。コマンドラインツールのRefe2を使えるように付属のreadme.htmlにしたがってバッチファイルを作成。
refe.bat
@ruby -Ke -I c:/rubyrefm/bitclust/lib c:/rubyrefm/bitclust/bin/refe.rb -d c:/rubyrefm/db-1_8_6 -e sjis %*
でもエラー。
unknown database scheme: c
ぐぐったけど情報無かったので、プログラミングRuby 第2版 言語編(Dave Thomas/Chad Fowler/Andy Hunt/田和 勝/まつもと ゆきひろ)(当然未読)の13章「デバッガ」を読みつつ初Debug。
C:\work>ruby -r debug -Ke -I c:/rubyrefm/bitclust/lib
c:/rubyrefm/bitclust/bin/refe.rb -d c:/rubyrefm/db-1_8_6 -e sjis %*Debug.rb
Emacs support available.
c:/ruby/lib/ruby/site_ruby/1.8/ubygems.rb:10:require 'rubygems'
(rdb:1) c
c:/rubyrefm/bitclust/bin/refe.rb:6: `unsupported signal SIGPIPE' (ArgumentError)
from c:/rubyrefm/bitclust/bin/refe.rb:6:in `main'
from c:/rubyrefm/bitclust/bin/refe.rb:26
c:/rubyrefm/bitclust/bin/refe.rb:6: Signal.trap(:PIPE, 'IGNORE') rescue nil #Win32 does not have SIGPIPE
(rdb:1) c
c:/rubyrefm/bitclust/lib/bitclust/database.rb:36: `unknown database scheme: c' (BitClust::InvalidScheme)
from c:/rubyrefm/bitclust/lib/bitclust/database.rb:36:in `connect'
from c:/rubyrefm/bitclust/lib/bitclust/searcher.rb:150:in `new_database'
from c:/rubyrefm/bitclust/lib/bitclust/searcher.rb:200:in `search_pattern'
from c:/rubyrefm/bitclust/lib/bitclust/searcher.rb:93:in `exec'
from c:/rubyrefm/bitclust/bin/refe.rb:16:in `_main'
from c:/rubyrefm/bitclust/bin/refe.rb:8:in `main'
from c:/rubyrefm/bitclust/bin/refe.rb:26
c:/rubyrefm/bitclust/lib/bitclust/database.rb:36: raise InvalidScheme, "unknown database scheme: #{uri.scheme}"
(rdb:1) c
unknown database scheme: c
c:/rubyrefm/bitclust/lib/bitclust/database.rbを見つつ、refe.batの
-d c:/rubyrefm/db-1_8_6
のところを
-d file://c:/rubyrefm/db-1_8_6
に変更。動きました。
C:\work>refe Array#map
Array < Enumerable#map
--- collect {|item| ... } -> [Object]
--- map {|item| ... } -> [Object]
各要素に対してブロックを評価した結果を全て含む配列を返します。
ブロックを省略した場合、
obj.collect {|item| item } を実行します。
これは [[m:Enumerable#to_a]] と同じです。
例:
# すべて 3 倍にする
p [1, 2, 3].map {|n| n * 3 } # => [3, 6, 9]
これで良いのか悪いのか解りませんが、とりあえず動くのでOK。 早速読書&写経開始。持っている本の中から初めの一歩に選んだのは、やさしいけどあんまりたのしくない 「たのしいRuby 第2版 Rubyではじめる気軽なプログラミング(高橋 征義/後藤 裕蔵)」。
[]
Good Job!!<br>助かりました。