なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2015/10/02)

2015/10/02分のコミットです。

CHANGELOGへの追加はありませんでした。


Refactor AS::Callbacks halt config and fix the documentation

Active Supportのcallback処理の修正です。

ActiveSupport::Callbacks::CallbackChain.halt_and_display_warning_on_return_falseActiveSupport::Callbacks.halt_and_display_warning_on_return_falseに変更、 及び、変更に合わせて各種docの修正を行っています。


Regex fix for mattr_accessor validation

activesupport/lib/active_support/core_ext/module/attribute_accessors.rbの修正です。

mattr_accessorのバリデーションに、^$を使用していたのを、\A\zを使用するよう修正しています。改行が含まれている場合に、正しく先頭/終端をチェック出来るようにするため、ですね。


adding test for content type with default charset

actionpack/test/dispatch/response_test.rbの修正です。

ActionDispatch::Responseのdefault charsetについて確認するテストを追加しています。


Don't set a nil Set-Cookie header when there aren't any cookies. Omit the header.

actionpack/lib/action_dispatch/middleware/cookies.rbの修正です。

cookiesが存在しない場合に、Set-cookie headerにnilを設定しないよう修正しています。

Rack::Lintの定義では、cookiesが無い場合、cookie header自体を省略するのが正しい(nilを設定してはいけない)為との事です。


[ci skip] Fix explanation of ActiveModel::Serialization

activemodel/lib/active_model/serialization.rbのdocの修正です。

ActiveModel::SerializationをincludeすればActiveModel::Serializers::JSONも使用出来る旨説明がされていたのですが、 実際はそうではない(ActiveModel::Serializers::JSONをincludeすればActiveModel::Serializationも自動でincludeされる)ので、説明を修正しています。


Remove unused scopes

Active Recordのテストの修正です。使用していないscopeを削除しています。


Response#add_header for adding to multi-valued headers like Vary

actionpack/lib/action_dispatch/http/response.rbの修正です。

ヘッダーに複数の値を設定出来るResponse#add_headerメソッドを追加しています。

response.add_header 'Vary', 'Accept'
response.add_header 'Vary', 'Accept-Encoding'
response.add_header 'Vary', 'Cookie'

response.get_header 'Vary' # => 'Accept,Accept-Encoding,Cookie'

Fix AC::Parameters not being sanitized for query methods.

activemodel/lib/active_model/forbidden_attributes_protection.rbactiverecord/lib/active_record/relation/query_methods.rbの修正です。

Active Recordのquery methodsでsanitize処理を行うようにしています。これにより、permit処理が行われていないActionController::Parametersがquery methodの引数に渡された場合、エラー(ActiveModel::ForbiddenAttributesError)が発生するようになっています。


Further encapsulate dirty checking on Attribute

Active Recordの修正です。

Attributeクラスで元々のattributeの値も保持するよう修正しています。 dirtyチェック処理を、Attributeクラスに集約してしまう為、との事です。


Fix test failures on MySQL

activerecord/lib/active_record/attribute_methods/dirty.rbの修正です。

MySQLのテストがコケてしまっていたのを対応しています。

reloadメソッドで、before_type_castチェックを行っていたのですが、reloadでそれを行うのはおかしいため、処理を修正しています。


💣

MySQLのテストがコケてしまっていたのを対応しています。create!を呼ぶべき所で、誤ってnewを呼んでしまっていたのが原因のようです。


Merge pull request #20600 from mtsmfm/xmlschema-should-display-more-than-6-digits

activesupport/lib/active_support/time_with_zone.rbの修正です。

TimeWithZone#xmlschemaメソッドで、表示される桁数が6桁に制限されていたのを、それ以上表示されるよう対応しています。

# before
@twz.xmlschema(12) # => "1999-12-31T19:00:00.123456-05:00"

# after
@twz.xmlschema(12) # => "1999-12-31T19:00:00.123456000100-05:00"

Build the AttributeMutationTracker lazily

activerecord/lib/active_record/attribute_methods/dirty.rbの修正です。

メソッドの呼び出し時にAttributeMutationTrackerインスタンスを生成していたのを、AttributeMutationTrackerを使用する際にインスタンスを生成するよう修正しています。