Rails 3.1.0 has been released!

Riding Rails: Rails 3.1.0 has been released!


rails guidesに3.1.0 release notesが出ていますが、とりあえずアナウンスをご紹介。

Rails3.1.0ハイライト

ActionPack

・new asset pipelinenew asset pipeline
まだちゃんと読んでませんが、sprocketsの機能を使って
jsやcssをまとめたりminify(圧縮)したりして帯域を圧縮してくれるっぽい。


・Streaming response
これがいまいちよくわからん。
ActionController::Streaming
を見ると、遅延評価で表示速度を上げるっぽいのかな。
Unicorn with Nginx だそうです。


・RJSがgemに

ActiveModel

・attr_accessible系 にasオプションが利用可
rollを渡せるらしい。


・SecurePasswordメソッドが追加
BCryptとsaltでpasswordを暗号化してくれるっぽい。


ActiveRecord

・Prepared statement cacheを統合
insertとcreate時のprepared statmentのキャッシュを統合したっぽい。


・Associationsはrefactoredしてsimpleかつメンテナンスしやすくなったらしい


・default_scope
blockやlambdaやオブジェクトを渡して呼べるらしい(遅延評価)


PostgreSQLは8.2以上


・Migrationはinstance methodを使用するようになった。
class methodじゃなくinstance methodを使うようになった。
self.up から up メソッド。


・Migration 可逆に。
down書かなくてOK。見た目すっきり。
明示的にもかける。


・add_indexが自動で
外部参照列に対してindexが張られるようになったっぽい。
(これは、自動でやって欲しかった機能の一つ)


ActiveResource

・defult JSONへ。XMLも指定は可能。


ActiveSupport

・BufferedLogger
binaryへ。textmodeもportable newlines(なんやこれ、普通の改行のこと?)の出力時には使ってる。
これは、どうなんやろうか。


・Object#in? が追加
オブジェクトが他のオブジェクトに含まれているかどうか


・Dependencies::ClassCache
再読み込み可能な参照を保持できるクラス。(どういうこっちゃ。Identity Mapのこと?)


・weeks_ago and pref_week がDate/DateTime/Timeに追加


・JSON
decodeは1.8系の場合はyamlバックエンドを除いたOkJson、1.9系はdefultのが使われているらしい。
(よくわからん)


Railities

・schema.rbはutf-8
・Rack::Sendfileミドルウェア x_sendfile_headerが存在する場合使える
・rがrails runnerのaliasとして利用可
JQueryがデフォルト
・config.force_ssl でRack::SSLミドルェアを使ってhttpsに変更できるとか