redmine 2.0がリリースされて一ヶ月ちょい。
新featureが出てくる前に自作のプラグインも移行しておかないとなーと思いつつ放置してたんだけど、やっと手をつけた。
以下のURLを参考にした。
Redmine 2.0.xにプラグインを移植する
Redmine2.0へのプラグインのマイグレーションについて
自分のところでひっかかったこと。
- RAILS_ROOTが使えない
 → Rails.root
- RAILS_DEFAULT_LOGGERが使えない
 →Rails.logger
- RAILS_ROOT/vendor/plugin/が変更された
 →RAILS_ROOT/plugin/
- routesの定義の仕方
 →ActionController::Routing::Routes.draw からRedmineApp::Application.routes.drawにRedmineApp::Application.routes.draw do match 'projects/:project_id/wiki/:id/graphviz', :to => 'wiki_graphviz#graphviz' end 
- テンプレートのファイル名が変わった
 →*.rhtml から *.html.erbに
- テスト用webサーバ他のコマンドが変わった
 →./script/sever から ./script/rails server に
 →./script/runner から ./script/rails runner に
- ActionController::Base.cache_configured? がprivateになった
 →意図が違うが ActionController::Base.perform_caching で代替
ここからはredmine 2.0への移行じゃなくて、ruby 1.8から1.9に変えたことでひっかかったこと。
- String#eachがなくなった
 →String#each_line とか
- proc+ブロックで得たProcオブジェクトのブロック内でreturnしたら呼び出し元メソッドがreturnした
 これを知らなくてすごく悩んだ。
 Redmineのviewフック内でコントローラにrender_to_stringをsendしている。
 テンプレート内でクロージャ(proc由来のProcオブジェクト)を使ってtrue/falseを返しているつもりだったのだけど、viewフックメソッドからtrueが返る状態になってしまった。
 lambdaに変更した。
それぞれremdine-2.0ブランチ
https://github.com/tckz/redmine-wiki_graphviz_plugin
https://github.com/tckz/redmine_wiki_preview_ext
https://github.com/tckz/redmine_wiki_astah
でも、redmine 2.0系のfeatureが増えてくるまでは、運用環境は1.4系のままかな。
