2017/11/15分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Introduce ActiveStorage::Attached::{One,Many}#detach
activestorage/lib/active_storage/attached/many.rb
、
activestorage/lib/active_storage/attached/one.rb
の修正です。
blobはそのままでattachementだけを削除する、ActiveStorage::Attached::One#detach
及びAttached#Many#detach
メソッドを追加しています。
attachementのリプレイス処理で使う為のようです。それ以外でも使うのかなあ。
.travis.yml
の修正です。
CIで使用するJRubyのバージョンを9.1.14.0に更新しています。
Add a #populate method to migrations (#31082)
activerecord/lib/active_record/migration.rb
の修正です。
migrationにup
のときだけ使用出来るup_only
メソッドを追加しています。
class AddPublishedToPosts < ActiveRecord::Migration[5.3] def change add_column :posts, :published, :boolean, default: false up_only do execute "update posts set published = 'true'" end end end
上記のような感じで、カラムの追加をした時だけ何かを行う、という場合に使うことを想定しるようです
Merge pull request #30963 from q-centrix/performance-improvements-add_method_to_attributes
actionview/lib/action_view/helpers/url_helper.rb
の修正です。
UrlHelper#add_method_to_attributes!
でhttp methodがget
かどうかを判定する為に毎回String#to_s
+ String#downcase
を呼び出していたのを、methodのHashを保持し、それとマッチするかどうかチェックするよう修正しています。
- if method && method.to_s.downcase != "get" && html_options["rel"] !~ /nofollow/ + if method_not_get_method?(method) && html_options["rel"] !~ /nofollow/ if html_options["rel"].blank? html_options["rel"] = "nofollow" else @@ -599,6 +599,19 @@ def add_method_to_attributes!(html_options, method) html_options["data-method"] = method end + STRINGIFIED_COMMON_METHODS = { + get: "get", + delete: "delete", + patch: "patch", + post: "post", + put: "put", + }.freeze + + def method_not_get_method?(method) + return false unless method + (STRINGIFIED_COMMON_METHODS[method] || method.to_s.downcase) != "get" + end
これで(STRINGIFIED_COMMON_METHODS
に一致するケースであれば)不要なString objectの生成が減るので、ちょっと性能改善になっている、との事です。
Gemfile
、
Gemfile.lock
の修正です。
arel
を使用するのにGitHubのmaterブランチを直接指定していたのを、リリース済みのgemを使用するよう修正しています。arel
9.0がリリースされた為、
Gemfile
、
Gemfile.lock
の修正です。
sass-rails
を使用するのにGitHubを直接指定していたのを、リリース済みのgemを使用するよう修正しています。
Fix migration version in doc of #up_only
activerecord/lib/active_record/migration.rb
のdocの修正です。
up_only
メソッドのdoc内のexampleコードで、migration versionが5.3になっていたのを5.2に修正しています。
Fix activesupport/CHANGELOG.md [ci skip]
activesupport/CHANGELOG.md
の修正です。
Redis cache storeのサポートを追加した対応のエントリーのフォーマットを修正しています。
Merge pull request #30004 from npenzin/patch-1
railties/lib/rails/generators/rails/plugin/plugin_generator.rb
の修正です。
rails plugin作成時のディレクトリがrails application配下だった場合、自動でrails applicationのGemfileにそのpluginを追加するのですが、その際に先頭に改行を追加するよう修正しています。
- entry = "gem '#{name}', path: '#{relative_path}'" + entry = "\ngem '#{name}', path: '#{relative_path}'"
元のGemfileの終端が空行じゃなかった場合に、Gemfileのフォーマットが崩れてしまう為。
Fix typo s/only_up/up_only/ [ci skip]
activerecord/CHANGELOG.md
の修正です。
up_only
をonly_up
にタイポしていたのを修正しています。
Fix CI failure due to invalid up_only
for MySQL
activerecord/test/cases/invertible_migration_test.rb
の修正です。
up_only
メソッドのテストがMySQLで通ってなかったのを修正しています。
Fix asset url examples [ci skip]
actionview/lib/action_view/helpers/asset_url_helper.rb
のdocの修正です。
javascript_url
、stylesheet_url
メソッド等assets url helperのdoc内のexampleの実行結果が、実際の結果と異なっていたのを修正しています。
rails guideのConfiguring Rails Applications
の修正です。
Using Initializer Files
の項で、initializer間に依存がある場合に、アルファベット順にロードされる事を利用してファイル名を調整する(e.g. 01_critical.rb
等)事を推奨していたのを、依存関係があるコードは同じファイルに記載するよう修正しています。
ファイル名の変更を減らせるのと、その方が依存関係がわかりやすい為、との事です。
bug report templatesの修正です。
リリース済みのarel
を使用するよう修正しています。
These strings should already be frozen where ruby accepts the magic-comment
activesupport/test/core_ext/object/instance_variables_test.rb
の修正です。
instance_exec
のテストで、Stringをdup
した値を使用するよう修正しています。
def test_instance_exec_passes_arguments_to_block - assert_equal %w(hello goodbye), "hello".instance_exec("goodbye") { |v| [self, v] } + assert_equal %w(hello goodbye), "hello".dup.instance_exec("goodbye") { |v| [self, v] } end
Stringがfrozenされた時の為の対応という風にコミットログからは読み取れるのですが、この場合、オブジェクト自身を変える訳では無いのでdup
無くても大丈夫そうな気が…。
Handle TZInfo::AmbiguousTime
errors
activesupport/lib/active_support/values/time_zone.rb
の修正です。
Europe/Moscow
のようにタイムゾーンが複数ある値を指定した場合に、TZInfo::AmbiguousTime
が発生していたのを、発生しないよう修正しています。
# before "2014-10-26 01:00:00".in_time_zone("Moscow") # => TZInfo::AmbiguousTime: 26/10/2014 01:00 is an ambiguous local time. # after "2014-10-26 01:00:00".in_time_zone("Moscow") # => Sun, 26 Oct 2014 01:00:00 MSK +03:00
Rubyの挙動(後の期間を使用する)と合わせる為。
Merge pull request #29776 from mrj/fix-idlw-timezone
activesupport/lib/active_support/values/time_zone.rb
の修正です。
International Date Line West
timezoneの値が誤っていたのを修正しています。