2018/02/18分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
String#strip_heredoc
preserves frozenness.String#truncate_bytes
to truncate a string to a maximum bytesize without breaking multibyte characters or grapheme clusters
private attribute?
のwarningが出る為protected
を使用していた箇所をprivate
を使用するよう修正、Ruby 2.2以下の為のコードを削除等行っています。
railties/lib/rails/application/default_middleware_stack.rb
の修正です。
API only appsのdefault middleware stackからRack::TempfileReaper
を削除しています。
API only appsでファイルアップロードするのはレアケースだと思われる為、デフォルトでは不要だろうとの事で削除されています。
Remove extra conditions in HWIDA since Rails 6 does not support Ruby 2.2
activesupport/lib/active_support/hash_with_indifferent_access.rb
の修正です。
dig
、及び、fetch_values
メソッドを定義する際に、Hash
にそれらのメソッドが定義されているかチェックしていたのを削除しています。
Ruby 2.3では必ずメソッドが定義されている為。
Partly revert 1e526788e6b1d3f42f4d8fdca20e588d42838c80
actionpack/lib/action_dispatch/http/mime_type.rb
、
activerecord/lib/active_record/type/adapter_specific_registry.rb
の修正です。
先のprotected
からprivate
に変更した対応で、private
に変更してはいけない箇所まで修正していたので、一部protected
に戻しています。
Deprecate update_attributes and update_attributes!
Active Recordの修正です。
update_attributes
、及び、update_attributes!
メソッドがdeprecateになりました。今後はupdate
、update!
メソッドを使用するよう必要があります。
update
、update!
メソッド追加された際(Rename update_attributes method to update)にupdate_attributes(!)
は"soft deprecation" という扱いになっていたのですが、バージョンも大分上がったし、正式にdeprecateにして良いだろう、という事になりました。
Clean up and consolidate .gitignores
ディレクトリトップの.gitignore
に色々とまとめて記載されいたのを、各コンポーネントで共通で使用するものだけを定義し、各コンポーネント固有で必要な記載は各コンポーネントの.gitignore
に記載するよう整理しています。合わせて、.gitignore
に記載が漏れていたファイルの追加等を行っています。
Remove require Object#blank? monkey patch
activesupport/lib/active_support/values/time_zone.rb
の修正です。
不要なactive_support/core_ext/object/blank
のrequireを削除しています。
色々と相談があった結果、とりあえずRails 6がサポートするバージョンはRuby 2.4.1以上となった為、required_ruby_version
を>= 2.4.1
に修正、Ruby 2.3以下向けのコードを削除等をまとめてお粉ています。
activesupport/lib/active_support/test_case.rb
の修正です。
executor
をexector
に、parallelization
をparalleliztion
にそれぞれタイポしていたのを修正しています。
Fix "warning: BigDecimal.new is deprecated"
activejob/test/cases/argument_serialization_test.rb
の修正です。
deprecateになっているBigDecimal.new
を使用している箇所があったのを、BigDecimal
を使用するよう修正しています。
Document :reconnect_attempts option for Redis Cache Store [ci skip]
rails guideのCaching with Rails: An Overview
の修正です。
ActiveSupport::Cache::RedisCacheStore
の項に、デフォルトではRedisへの接続に失敗した場合に再接続は試みない事についての説明を追加、及び、reconnect_attempts
オプションについての説明を追加しています。
bug report templatesの修正です。
bug report templatesで指定している各gemのバージョンを5.1.0
から5.2.0.rc1
に修正しています。
String#strip_heredoc
preserves frozenness
freeze済みのStringに対してstrip_heredoc
を呼び出した場合、unfrozenなStringが返ってきていたのを、Stringも元のfrozennessを維持するよう修正しています。
# before "foo".freeze.strip_heredoc.frozen? # => true # after "foo".freeze.strip_heredoc.frozen? # => true
String#truncate_bytes: limit to N bytes without breaking multibyte chars
activesupport/lib/active_support/core_ext/string/filters.rb
の修正です。
マルチバイト文字の状態を壊さずにStringをtruncateする為のtruncate_bytes
メソッドを追加しています。
"🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪".size # => 20 "🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪".bytesize # => 80 "🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪🔪".truncate_bytes(20) # => "🔪🔪🔪🔪…"
この対応を行ったPR自体は2016/12に作成されていました。しかし、grapheme clusterの解析に\X
メタ文字を使用しており、Ruby 2.3までは\X
絵文字を含む文字等が正しパース出来なかった為マージされていませんでした。Ruby 2.4では左記の問題が無い、masterはRuby 2.4以上のみをサポートするようになった為ようやくマージされました。
参考:Feature #12831: /\X/ (extended grapheme cluster) can't pass unicode.org's GraphemeBreakTest
Travis: fix that major.minor version doesn't track latest major.minor.tiny
.travis.yml
の修正です。
CIで使用するRubyのバージョンにマイナーバージョンも指定するよう修正しています。
マイナーバージョンの指定が無いと最新のバージョンでテストされない為(2.4とだけ記載すると、2.4.1が実行されてしまう)。
Revert "Delegate uniq
to records
"
activerecord/lib/active_record/relation/delegation.rb
の修正です。
ActiveRecord::Relation
がrecords
にdelegateするメソッドの一覧にuniq
を追加した、Delegate uniq
to records
をrevertしています。
Enumerable#uniq
がRuby 2.4で追加されており、そちらのメソッドがを使用すれば良い為。
Fix active_job_basics.md callbacks example [ci skip]
rails guideのActive Job Basics
の修正です。
around_cleanup
メソッドのexampleから不要なjob
引数を削除しています。
Association scope's own order should be prioritized over through scope's order
activerecord/lib/active_record/associations/association_scope.rb
の修正です。
through associationの先のscopeのorderが自身のscopeのorderより先に評価されていたのを、自身のorderが先に評価されるよう修正しています。
Association scope's own order should be prioritized over through scop…でscope評価の順番を変更した事による影響だったのですが、sorting orderについては元通り(自身が先に評価される)の方が良いだろう、という事で修正しています。