ライド・オン・Rails #2

2.1の途中まで読んだ。
書いてある通りにプラグインをインストールするために、以下のコマンドを実行すると、エラーが発生して異常終了してしまった。

> ruby script/plugin discover

上記のコマンドは、http://wiki.rubyonrails.org/rails/pages/Pluginsのページの内容からURLを拾ってくるもののようだが、このページの最後のほうに以下のようなリンクがあって、これもプラグインのURLだと誤認することが原因。

<a href="/rails/pages/plugins/versions/new">Edit</a>

取り敢えず、Railsのソースの以下の部分を変更して回避した。

--- gems/rails-1.1.4/lib/commands/plugin.rb.orig	2006-07-03 12:58:50.000000000 +0900
+++ gems/rails-1.1.4/lib/commands/plugin.rb	2006-07-06 16:00:46.000000000 +0900
@@ -660,6 +660,7 @@ module Commands
           uri = $1
           if uri =~ /\/plugins\// and uri !~ /\/browser\//
             uri = extract_repository_uri(uri)
+            next unless uri
             yield uri unless dupes.include?(uri) or Repositories.instance.exist?(uri)
             dupes << uri
           end
@@ -668,7 +669,8 @@ module Commands
     end
     
     def extract_repository_uri(uri)
-      uri.match(/(svn|https?):.*\/plugins\//i)[0]
+      m = uri.match(/(svn|https?):.*\/plugins\//i)
+      m ? m[0] : nil
     end 
   end