Skip to content

Radiant が 0.7.1 から 0.8.0 へバージョンアップ

Posted on:2009年7月5日 at 02:53

2009/06/14 に Radiant 0.8.0 のリリースアナウンスが行なわれた。

Table of Contents

Open Table of Contents

0.7.1 から 0.8.0 への変更点

変更点を github に記載のある Developer Upgrade Notes からひろってみる。

5 点記載されている。

1. default_order pluging は削除された

Old:

order_by :name

New:

default_scope :order => "name ASC"

2. ApplicationController のファイル名が application.rb から application_controller.rb に変更

これは Radiant における変更というわけではなく、0.8.0 の Radiant が採用した Rails プラットフォームのバージョン(2.3.2)に依存する。

これまで、ApplicationController は、application.rb というファイル名であったが、application_controller.rb というファイル名となった。

Old:

require_dependency 'application'

New:

require_dependency 'application_controller'

Extension の幾つかで、require_dependency 'application' を使用しているものが残っている。(help extention など)

3. ResponseCache は Radiant::Cache へ変更

ResponseCache への参照が全て削除されている。

これまで Radiant 独自で採用していた Cache の方式から、Rack 対応した Rails 2.3 に合わせて、ミドルウェアとして Cache の仕組みを組み込む方式となっている。

$ rake middleware
  (in /Users/hoge/work/radiant_080_test)
  use Rack::Lock
  use ActionController::Failsafe
  use ActionController::Reloader
  use ActionController::Session::CookieStore, #<Proc:0x018f0254@(eval):8>
  use ActionController::RewindableInput
  use ActionController::ParamsParser
  use Rack::MethodOverride
  use Rack::Head
  use Radiant::Cache
  use ActiveRecord::ConnectionAdapters::ConnectionManagement
  use ActiveRecord::QueryCache
  run ActionController::Dispatcher.new
  use Rack::Lock
  use ActionController::Failsafe
  use ActionController::Reloader
  use ActionController::Session::CookieStore, #<Proc:0x018f0254@(eval):8>
  use ActionController::RewindableInput
  use ActionController::ParamsParser
  use Rack::MethodOverride
  use Rack::Head
  use Radiant::Cache
  use ActiveRecord::ConnectionAdapters::ConnectionManagement
  use ActiveRecord::QueryCache
  run ActionController::Dispatcher.new

use Radiant::Cache が確認できる。

radiant-0.8.0/config/environment.rb に記載されている、

config.middleware.use ::Radiant::Cache

が Radiant における、その Cache の組み込みになる。

radiant-0.8.0/lib/radiant/cache.rbRadiant::Cache がそれにあたるが、その中身は Rack::Cache の拡張になっている。

4. Testing Framework は、RSpec 1.2.4、Cucumber 0.3.x、Webrat 0.4.4.+ へ

正確には、

config/environments/test.rb を見ると、

config.gem "rspec", :version => "1.2.6", :lib => false
config.gem "rspec-rails", :version => "1.2.6", :lib => false
config.gem "webrat", :version => "~>0.4.4", :lib => false
config.gem "cucumber", :version => "~>0.3.9", :lib => false

となっている。

Cucumber 0.3.x という書き方はしているが、上記記載の通り、0.3 台での最新のものを使っていた方が間違いない。

0.3.3 を使っていたのだが、db:bootstrap 時に、Cucumber::Rake::Task でひっかかった。現在は最新の 0.3.11 を使用していて問題ない。

5. Rails 2.3.2

Rails 2.3.2 で freeze されている。

さて、Extensions の対応をどうするか

Radiant CMS 自体は非常にシンプルな機能の提供のみとなっており、必要な機能は Extension を導入して拡張していくことになる。

本体のバージョンアップが行われた際には、既に導入済み、及び、0.8.0 で導入しようとしている Extensions が 0.8.0 に対応しているかどうかが気になるところ。メジャーな Extension の幾つかは、既に 0.8.0 にも対応を行ってきてはいるが、まだ未対応なものの方が多い。

0.8.0 への移行に対して、大きな変更である Cache の変更に関しては、

という記事もあるが、使用していた Extensions の 1 つ tags extension においては、どう対応すべきか思案中。まだ本家は対応を行っていない。

application_controller への対応は行なっているのだが、Cache の変更への対応がとられていない。

Radiant の場合、ユーザ向けのページの表示は、正常系は全て SiteControllershow_page アクションにルーティングされるようになっている。この tags extension は、その SiteController を拡張し、タグの一覧表示を行うページのレンダリングの際には通常とは異なるキャッシング(クエリに含まれる tag の名称を URI に含めたキャッシング)を行っていた。この部分については、まずは暫定的な方法で対応しておこうかと思ったのだが、それ以外にも対応が必要な箇所が出てきてしまい、対応をもう一度考えることにした。(本家が先に対応してくれるとうれしいのだが。。)

まだ 2、3 個の Extension しか試していないが、0.8.0 へのバージョンアップにはもう少し時間を要しそうだ。