2017/02/25分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
ActiveSupport::Gzip.decompressnow checks checksum and length in footer.- In Core Extensions, make
MarshalWithAutoloading#loadpass through the second, optional argument forMarshal#load( source [, proc] ). - Soft-deprecated the top-level
HashWithIndifferentAccesconstant.ActiveSupport::HashWithIndifferentAccessshould be used instead.
[close #24435] Send user_supplied_options to server
railties/lib/rails/commands/server/server_command.rbの修正です。
server_optionsメソッドが返す値に、ユーザが指定したオプションを格納する為のuser_supplied_optionsを追加しています。
Puma等のAPサーバがoptionsの値を取得した際に、その値がrailsが設定しているデフォルトの値なのか、ユーザが指定した値かが判別出来ない(:Portに3000と設定されていた場合に、railsのデフォルトにより設定された値なのかユーザがconfig等で指定した値なのかがわからない)為、それを判別出来るようにする為に追加したようです。これしかしAPサーバ側にも対応が必要そうな。
Change SystemTestCase.driven_by to use setup/teardown hooks
Action Packの修正です。
SystemTestCaseのdriverの設定を、setup / teardownでやるよう修正しています。
元々はtest caseのload時に設定が行われいたのですが、それだとtest case毎にdriverを切り替える、ということが出来なかった為、setup / teardownで行うよう修正したとの事です。
add optional second argument to ActiveSupport core extension for Marshal#load so it can take a proc
activesupport/lib/active_support/core_ext/marshal.rbの修正です。
MarshalWithAutoloading#loadにprocを渡せるよう引数を追加しています。渡されたprocはそのままMarshal#loadの第二引数に渡されるようになっています。
Add missing gzip footer check in ActiveSupport::Gzip.decompress
activesupport/lib/active_support/gzip.rbの修正です。
ActiveSupport::Gzip.decompressメソッドでfooterのchecksumとlengthの値もチェックするよう修正しています。
def self.decompress(source)
- Zlib::GzipReader.new(StringIO.new(source)).read
+ Zlib::GzipReader.wrap(StringIO.new(source), &:read)
end
Fix CHANGELOG entry position [ci skip]
activesupport/CHANGELOG.mdの修正です。
先のActiveSupport::Gzip.decompressの対応のエントリーの位置がおかし(Rails 5.1.0.beta1に含まれているような書き方になっていた)かったのを修正しています。
Merge pull request #28157 from robin850/hwia-soft-deprecation
Active Support及びRails guideのA Guide for Upgrading Ruby on Railsの修正です。
top levelのHashWithIndifferentAccessがdeprecateになりました。今後はActiveSupport::HashWithIndifferentAccessを使う必要があります。
諸々の都合上deprecateメッセージは出ないようになっているのですが、将来削除されるようになっているので、ActiveSupport::HashWithIndifferentAccessを使うよう移行する必要があります。
Merge branch ‘jhawthorn-ruby_2_4_bigdecimal_casting’
activemodel/lib/active_model/type/decimal.rbの修正です。
BigDecimalのtype cast時に、不正なStringが渡された場合もエラーにならない(BigDecimal(0)を返す)よう修正しています。
- when ::Numeric, ::String + when ::Numeric BigDecimal(value, precision || BIGDECIMAL_PRECISION) + when ::String + begin + value.to_d + rescue ArgumentError + BigDecimal(0) + end
BigDecimalは不正なString(e.g. 1ignore)が渡された場合もエラーにならないようになっていたのですが、Ruby 2.4.0でエラーをraiseするように挙動が変更された為、対応したとの事です。
なお、Ruby本体(というかbigdecimal gem)で、to_dがエラーをraiseしないよう修正が行われています。fixes issue: #13062 - String#to_d is not raising error
tasks/release.rbの修正です。
railsのリリース用タスクでhashにSHA-1を使用していたのを、SHA-256を使用するよう修正しています。
Order array contents to match Relation#first
activerecord/test/cases/scoping/named_scoping_test.rbの修正です。
Relation#firstメソッドのテストで、必ず期待通りの値がとれるよう、値を取得する前にidでorderするよう修正しています。
Fix typo HashWithIndifferentAcces to HashWithIndifferentAccess [ci skip]
activesupport/CHANGELOG.mdの修正です。
先のtop levelのHashWithIndifferentAccessをdeprecateにした対応のエントリーで、HashWithIndifferentAccessをHashWithIndifferentAccesにタイポしている箇所があったのを修正しています。
Imporove docs for Rails::AppGenerator [ci skip]
railties/lib/rails/generators/rails/app/app_generator.rbのdocの修正です。
Rails::AppBuilderのdocにexampleコードを追加しています。
[ci ckip] Fix example of resolve in CHANGELOG.md
actionpack/CHANGELOG.mdのdocの修正です。
resolveメソッドのexampleコードに不要なclassオプションがあったのを削除しています。