なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2016/12/02)

2016/12/02分のコミットです。

CHANGELOGへの追加はありませんでした。


Yarn: Move node_modules, package.json, and yarn.lock file to vendor (#27245)

railtiesの修正です。

rails new--yarnオプションを指定した際に生成するpackage.jsonvendor配下に生成するよう修正しています。

また、bin配下にyarnコマンドを実行するためのbinstubを追加しています。追加された左記のbinstubはvendorディレクトリ配下でyarnコマンドを実行するようになっており、node_modulesもvendorディレクトリ配下で管理するようにしています。


Stop using the pg Float encoder

activerecord/lib/active_record/connection_adapters/postgresql_adapter.rbの修正です。

pg gemのFloat encoder(PG::TextEncoder::Float)を使用しないよう修正しています。

          map[Integer] = PG::TextEncoder::Integer.new
           map[TrueClass] = PG::TextEncoder::Boolean.new
           map[FalseClass] = PG::TextEncoder::Boolean.new
-          map[Float] = PG::TextEncoder::Float.new
           @connection.type_map_for_queries = map

pg gemのtype mapにFloatを指定してしまうと、RubyでFloatとして扱われるデータが全てfloat4又はfloat8として扱われてしまい、RubyでFloatとして扱われているがPostgreでは左記以外の型として扱っているデータ(e.g. money型)を保存する際にエラーになってしまう為、Rails 4までと同様に、Rails内部で保持しているencode処理を使用するよう修正しています。


Exclude singleton classes from subclasses and descendants

activesupport/lib/active_support/core_ext/class/subclasses.rbの修正です。

Class.descendantsClass.subclassesメソッドの戻り値にSingleton classも含まれてしまっていたのを、含まないよう修正しています。

Ruby 2.3からObjectSpace.each_objectの戻り値にSingleton classも含むようなり、その影響との事です。

参考:Bug #11360: Singleton class doesn't appear by ObjectSpace.each_object


use yarn binstub in bin/update

railties/lib/rails/generators/rails/app/templates/bin/update.ttの修正です。

bin/update scriptで先ほど追加されたbin/yarn scriptを使用するよう修正しています。