2017/01/13分のコミットです。
CHANGELOGへの追加はありませんでした。
Fix typo extention -> extension [ci skip]
actionview/lib/action_view/helpers/asset_tag_helper.rb
のdocの修正です。
javascript_include_tag
メソッドのdoc内のタイポの修正を行っています。
class Foo < Struct.new(:x) creates an extra unneeded anonymous class
Structを使用するのに、Struct.new
の結果を継承して新しいクラスを定義していたのを、Struct.new
の戻り値をそのまま使用するよう修正しています。
例。
- class Parameter < Struct.new(:name, :escaper) + Parameter = Struct.new(:name, :escaper) do
Struct.new
はClass
を返すので、そのまま使用する事が出来る、かつ、継承すると不要なanonymous classが出来てしまうので、それを避ける為との事です。
AC::ParamsWrapper::Options needs anonymous superclass
actionpack/lib/action_controller/metal/params_wrapper.rb
の修正です。
先ほどStruct.new
の結果を継承しないよう修正したのを、ActionController::ParamsWrapper::Option
クラスについてはStruct.new
を継承するよう戻しています。
クラス内で幾つかのメソッドでaccessorsをoverrideしている、かつ、そのメソッド内で元のaccessorsを呼ぶようになっており、anonymous classが必要な為との事です。
Rails::Generators::AppBase::GemfileEntry needs anonymous superclass
railties/lib/rails/generators/app_base.rb
の修正です。
先ほどStruct.new
の結果を継承しないよう修正したのを、Rails::Generators::AppBase::GemfileEntry
クラスについてはStruct.new
を継承するよう戻しています。これも先ほどと同じ理由により。
Constant look-up would no longer fall back to top-level constant since ruby 2.5
activesupport/test/core_ext/module_test.rb
の修正です。
delegationのテスト用クラスで定数を定義する際に、レシーバを指定するよう修正しています。
例。
- FAILED_DELEGATE_LINE = __LINE__ + 1 + self::FAILED_DELEGATE_LINE = __LINE__ + 1
上記定数はSomeone
クラス配下にあり、テスト時に参照する際はnamespaceをつけて(Someone::FAILED_DELEGATE_LINE
)参照するようになっていました。 ただ、元のコード(self
無し)だと、トップレベルに定数が定義されしまっており、本来はnamespace配下に定数は存在していませんでした。が、Ruby 2.3まではnamespace を指定した定数の参照で定数が存在しない場合、トップレベルの定数が参照される、という挙動になっていた為、正常に動作していました。
が、これがRuby 2.4からトップレベルの定数は参照されなくなり、元のコードが動作しなくなった為、正しくnamespace配下に定数を定義するよう修正したようです。
参考:variable.c: top-level constant look-up · ruby/ruby@44a2576
.travis.yml
の修正です。
CIで使用するJRubyのバージョンを9.1.7.0
に更新しています。
Fix grammar in asset_url_helper.rb [ci skip]
actionview/lib/action_view/helpers/asset_url_helper.rb
のdocの修正です。
AssetUrlHelper
module配下の各メソッドのdocのグラマーの修正を行っています。