トップ «前の日記(2007-04-14) 最新 次の日記(2007-04-19)» 編集

十日日記


2007-04-15

Link 検索のための応急処置

この日記(tdiary)で検索ができなくなっていることに気がついた。検索のできないWebページは索引のない書籍と同じで価値が大きく損なわれると信じているし、何より私自身が不便だ。具体的には、次のようなエラーが出る。

q=Excel VBA
undefined method `strip' for nil:NilClass

tdiarysearchの最新版に置き換えると、今度はInternal Server Errorとなった。diffにかけても違いは「TDiary::Config.new(cgi)」の「(cgi)」の有無だけなので、今回の件とは関係なさそうである。いつの間にかレンタルサーバーのRubyのバージョンが1.8.5になっているので、これと関係があるのかもしれない。

私はRubyについて完全な素人なので、雰囲気を頼りに対処する。今回はstripメソッドが使われている箇所が関数1つに集約されていたので運がよかった。

def load_tdiary_textdb(path)
File.open(path) {|f|
  ver = f.gets.strip
  raise "unkwnown format: #{ver}" unless ver == 'TDIARY2.00.00'
    f.each('') do |header|
      h = {}
      header.untaint.strip.each do |line|
         n, v = *line.split(':', 2)
         h[n.strip] = v.strip
     end
     yield h, f.gets("\n.\n").chomp(".\n").untaint
   end
 }
end

上が問題の関数なのだが、ぜんぜんわからないことだけは自信をもって言える。特にuntaintに至っては想像もつかない。いくつかあるstripのうち、とりあえず異バージョンで例外を投げるverとraiseとの行はコメントアウト。残念、まだ同じエラーが出る。nilがらみの話なので、最後のstripをifブロックで囲ってみた。

if v
  h[n.strip] = v.strip
end

これがビンゴで、少なくとも私の環境では動くようになった。そのうち正式に対処されまで、これでしのぐことになる。

ぜんぜん関係ないけれど、私はRubyを「ルビー」ではなしに「ルビ」と読んでしまう。印刷に興味をもっていた名残だ。あと、JavaScriptの「MochiKit」は直方銘菓「もち吉」に見えてしまう。この理由は不明だ。

Tags: PC
[]


プロフィール

渡辺 慎太郎(na@10days.org)

分野別表示

Admin | Client | Dev | Excel | Linux | PC | PDA | web | 英語 | 音楽 | 言語 | | 文具 |

月別表示

1999|07​|
2003|05​|06​|07​|08​|09​|10​|11​|12​|
2004|01​|02​|03​|04​|05​|06​|07​|09​|10​|11​|12​|
2005|01​|02​|03​|04​|05​|06​|07​|08​|09​|10​|11​|12​|
2006|01​|02​|03​|04​|05​|06​|07​|08​|09​|10​|11​|12​|
2007|01​|02​|03​|04​|05​|06​|07​|08​|09​|10​|11​|12​|
2008|01​|02​|03​|04​|05​|06​|07​|08​|09​|10​|11​|12​|
2009|01​|02​|03​|04​|05​|06​|07​|08​|09​|10​|11​|12​|
2010|01​|02​|

最近の記事

雨量情報 dictionary.com Yahoo google Yahoo! 路線情報 東京アメッシュ l-mura l-aka l-momo 目次 r-mura r-aka r-daidai r-kiiro asahi.com nogulabo r-sora r-midori r-midori r-momo