2015/03/30分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
activemodel/CHANGELOG.md
activejob/CHANGELOG.md
Merge pull request #19483 from yui-knk/fix/getting_started
rails guideのGetting Started with Rails
の修正です。
Adding a Second Model
の項で、reference
するオブジェクトについての説明を修正しています。
Reduce memory usage when loading types in PG
ActiveRecordの修正です。
DBにPostgresを使用している場合に、メモリの使用量を削減するよう修正しています。
最初にDB接続した際、DBから型情報を取得し、PG::Result
オブジェクトで保持するようにしています。
このPG::Result
オブジェクトは型情報を全て取得する為、大量にメモリを使用する場合があるのですが、そのオブジェクトはクリアーされない為、コネクションが残っている間は大量にメモリを使用してしまうという問題がありました。
そのため、取得する型情報を必要な型だけに制限する、繰り返し使用する文字列はfreeze
して不要なインスタンスを生成しないようにする、等の改善を行っています。
Clarify the role of ActiveRecord::Core.encode_with
activerecord/lib/active_record/core.rb
のdocの修正です。
ActiveRecord::Core.encode_with
メソッドの説明及びexampleに誤りがあったのを修正しています。
Replace in Rails 4
with in Rails %version%
in deprecation message
railties/lib/rails/app_rails_loader.rb
の修正です。
binstub
を使用している場合にrailsが提供しているexecutableを使用する旨表示するワーニングメッセージ内に含まれているRailsのバージョンを、数字がベタに定義されていたのを、
Rails::VERSION::MAJOR
定数を使用するよう修正しています。
-In Rails 4, your app's bin/ directory contains executables that are versioned +In Rails #{Rails::VERSION::MAJOR}, your app's bin/ directory contains executables that are versioned
Deprecate the :tokenizer
option to validates_length_of
validates_length_of
メソッドの:tokenizer
オプションがdeprecateになりました。
:tokenizer
オプションにはStringしか指定出来ない等の制限があり、かつ、普通にカラム名の代わりにRubyのメソッドを指定すれば同じ事が出来る、という理由によりdeprecateになったようです。
# before validates_length_of :essay, minimum: 100, tokenizer: ->(str) { str.scan(/\w+/) } # after validates_length_of :words_in_essay, minimum: 100 private def words_in_essay essay.scan(/\w+/) end
Gemfile及び一部テストの修正です。
sprockets
の3.0.0.rc.1
を使用するよう修正しています。Railsで問題無いか早めに確認する為にですね。
Merge pull request #19034 from jvanbaarsen/explicit-job-base-class
ActionJobの修正です。
generatorが生成するjobクラスが全てApplicationJob
クラスの子クラスになるよう修正しています。
ApplicationJob
クラスはrails new
実行時のみ生成され、job generate時には生成されないので、既に作成済みのrailsアプリの場合、手でファイルを追加する必要があるようです。