2017/07/18分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Add bootsnap to default Gemfile
- Support
-
as a platform-agnostic way to run a script from stdin withrails runner
Allow multiparameter assigned attributes to be used with text_field
Active Model, Active Recordの修正です。
multi-parameter assignmentで構築された値(e.g. written_on(1i)
、written_on(2i)
、written_on(3i)
)をtext_field
やhidden_field
で使用出来るよう(使用した値をARで受け取れるよう)修正しています。
Merge pull request #27662 from nhorton/patch-1
rails guideのRails Routing from the Outside In
の修正です。
Adding Member Routes
の項にあるroutes helperのexampleで、メソッド名に誤りがあったのを修正しています。
Scrub the invalid paramter value before using it in the error
actionpack/lib/action_dispatch/request/utils.rb
の修正です。
paramsのencodingが不正な値だった場合のエラーの、エラーメッセージの修正、及び、対象のparams
をscrub
した値をメッセージに含むよう修正しています。
- raise Rack::Utils::InvalidParameterError, "Non UTF-8 value: #{params}" + raise Rack::Utils::InvalidParameterError, "Invalid encoding for parameter: #{params.scrub}"
不正なencodingが含まれたままエラーメッセージを生成しようとすると、エラーメッセージ生成の際に違うEncodingエラーが発生してしまう為、scrub
メソッドを使用して不正なバイト列を削除しています。
Add bootsnap to default Gemfile
railtiesの修正です。
デフォルトで生成されるGemfile
にbootsnapを含むよう修正しています。
config/boot.rb
でbootsnapのsetup
処理がrequireされるようになっています。
Merge pull request #29788 from kamipo/remove_unused_mutex_m
activemodel/lib/active_model/attribute_methods.rb
の修正です。
不要なmutex_m
のrequireを削除しています。
Persistence#delete
should not be affected by scoping
activerecord/lib/active_record/persistence.rb
の修正です。
Persistence#delete
メソッドがscopingの影響を受け無いよう修正しています。
activerecord/lib/active_record/relation/query_methods.rb
の修正です。
custom tableを使用している場合に、where
メソッドがエラーを返してしまうバグがあったのを修正しています。
Fix HashWithIndifferentAccess#default when include?(nil)
activesupport/lib/active_support/hash_with_indifferent_access.rb
の修正です。
HashWithIndifferentAccess
のデフォルト値にブロックを与えている時に、HashWithIndifferentAccess#default
メソッドを引数無しで呼び出した場合、Hash#default
メソッド同様にnil
を返すよう修正しています。
Merge pull request #25564 from brewski/serializable_hash_fix
activerecord/test/cases/json_serialization_test.rb
の修正です。
ActiveRecord::Serialization#serializable_hash
にfreezeした値を渡した際に正常に動作する事を確認するテストを追加しています。
Merge pull request #29799 from kamipo/remove_outdated_test_scoped_responds_to_delegated_methods
activerecord/test/cases/relations_test.rb
の修正です。
Relation
がArray
やarel_table
にdelegateする事を確認するテストを削除しています。
Array
へのdelegateはもう行われていない、delegateを確認する為に使われているメソッド(insert
、update
等)はRelation
に定義されており、もう意味が無いため削除したとの事です。
Merge pull request #29801 from kamipo/extract_null_relation_test
activerecord/test/cases/relations_test.rb
、activerecord/test/cases/null_relation_test.rb
の修正です。
NullRelation
に関するテストを別ファイルに切り出しています。
Rename helper to force_lazy_load_hooks.
railties/test/application/configuration_test.rb
の修正です。
load hookを実行する為だけのメソッドの名前をlazy_load
からforce_lazy_load_hooks
に修正しています。
support -
as an argument to rails runner
railties/lib/rails/commands/runner/runner_command.rb
の修正です。
rails runner
コマンドで-
引数を指定出来るようにしています。-
を指定した場合はstdinから値を読むこむようになります。
# bin/count_users.rb puts User.count
上記のようなスクリプトがあった場合に、cat bin/count_users.rb | bin/rails runner -
のような使い方が出来るようになっています。
docker使っている場合に、cat script.rb | docker exec -it <container_id> rails runner -
みたいな使い方が出来るなら便利かもですねえ。
README.md
の修正です。
READMEにCodeTriageのbadgeを追加しています。
Merge pull request #29828 from kamipo/fix_using_custom_table_with_joins
Active Recordの修正です。
custom tableを使用しているmodelにjoin処理を行った場合に、エラーになってしまうバグがあったのを修正しています。
activerecord/lib/active_record/attribute_set.rb
の修正です。
ActiveRecord::AttributeSet
のattributes
がprotectedになっている理由は、private
にしてしまうとRuby 2.2系でwarning(private attribute?
)が出てしまう為とのコメントがあったのですが、ここではprotectedにしているのは左記とは別の理由のため、該当のコメントを削除しています。
Remove deprecated code concerning dirty methods in after callbacks
Active Recordの修正です。
deprecatedになっていたafter callbacksでdirty methodsを使用した場合の為の処理を削除しています。
Remove deprecated code concerning non-attributes and *_will_change!
activerecord/lib/active_record/attribute_methods/dirty.rb
、
activerecord/lib/active_record/attribute_mutation_tracker.rb
の修正です。
deprecatedになっていたattribute_will_change!
にvirtual attributesを指定した場合の処理を削除しています。