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系のままかな。