なるようになるブログ

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

rails commit log流し読み(2015/06/27)

2015/06/27分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

actionview/CHANGELOG.md


Add reversible syntax for change_column_default

ActiveRecordの修正です。

change_column_defaultメソッドに、リバーシブルに使用出来るようにする為の、fromtoオプションを追加しています。

例。

change_column_default :posts, :status, from: nil, to: "draft"
change_column_default :users, authorized, from: true, to: false

Update guide for new change_column_default syntax

rails guideのActive Record Migrationsの修正です。

change_column_defaultメソッドについて説明している箇所に、fromtoオプションについての説明を追加しています。


Update .pluck documentation on uniq

activerecord/lib/active_record/relation/calculations.rbのdocの修正です。

pluckメソッドのdocで、DISTINCTをするのに直接DISTINCTクエリーを使用していたのを、uniqメソッドを使用するよう修正しています。

-    #   Person.pluck('DISTINCT role')
+    #   Person.uniq.pluck(:role)

カラム名を明確に指定する必要がない分簡単に使えるだろう、との事で修正したようです。


Merge pull request #20417 from dubek/fix-template-cache-call-pattern

actionview/lib/action_view/template/handlers/erb.rbの修正です。

collection cachingマッチ用の正規表現を修正し、cacheの前に複数行のコメントを書いても正しくキャッシュされるよう修正しています。

<%# comment 1 %>
<%# comment 2 %>
<% cache customer do %>
# ...
<% end %>

上記のような処理でも、正しくキャッシュされるようになっています。


Change routes.rb look in getting started [ci skip]

rails guideのGetting Started with Railsの修正です。

Setting the Application Home Pageの項に記載されているconfig/routes.rbの内容が、実際の内容と異なっていたのを修正しています。


correct file_fixture_path in plugins test_helper.rb

railties/lib/rails/generators/rails/plugin/templates/test/test_helper.rbの修正です。

plugin内のtest_helper.rbfile_fixture_pathの値に、/が不足していたのを追加しています。


Merge pull request #20699 from vngrs/foreign_key_with_table_name_suffix_and_prefix

activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rbactiverecord/lib/active_record/migration.rbの修正です。

foreign key機能に、テーブル名サフィックス/プレフィックスサポートを追加しています。

テーブル同様、ActiveRecord::Base.table_name_prefixActiveRecord::Base.table_name_suffixに指定した値を参照するようになっています。

# migration
def change
  create_table(:schools)

  create_table(:classes) do |t|
    t.column :school_id, :integer
  end
  add_foreign_key :classes, :schools
end
ActiveRecord::Base.table_name_prefix = 'p_'
migration = CreateSchoolsAndClassesMigration.new
migration.migrate(:up)  #=> `p_classes` という名前で外部キーが作成される

Merge pull request #20607 from cmtonkinson/update-console-colors

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

sql queryをコンソールに表示さる際の、色の設定を修正しています。

query 毎に色分け(insertは緑、selectは青、という具合) するようになっています。

-      if odd?
-        name = color(name, CYAN, true)
-        sql  = color(sql, nil, true)
-      else
-        name = color(name, MAGENTA, true)
-      end
+      name = color(name, nil, true)
+      sql  = color(sql, sql_color(sql), true)

       debug "  #{name}  #{sql}#{binds}"
     end

-    def odd?
-      @odd = !@odd
+    def sql_color(sql)
+      case sql
+        when /\s*\Ainsert/i      then GREEN
+        when /\s*\Aselect/i      then BLUE
+        when /\s*\Aupdate/i      then YELLOW
+        when /\s*\Adelete/i      then RED
+        when /transaction\s*\Z/i then CYAN
+        else MAGENTA
+      end

イメージは以下の通り。

こんな感じ


Remove config options from default_options in railties

railties/lib/rails/commands/server.rbの修正です。

rails serverのデフォルトオプションからconfigを削除しています。

File.expand_pathがrackとrailsでそれぞれ呼ばれてしまっているので、片方削除出来るのでは、というissue(Remove of File.expand_path in Rails::Server · Issue #20345 · rails/rails)があって、その対応、との事なのですが、何故かconfigオプション自体が削除されてしまっています。うーん、これ良いのかなあ。


Merge pull request #20652 from ankit1910/change_doc

rails guideのActive Record Associationsの修正です。

collection.build 及び collection.create メソッドについてのdocについて、グラマーの修正、及びexampleの追加を行っています。


Improve Validation Helpers' documentation comments and tests

ActiveModelの修正です。

各validation methodのdocの説目が不足していたのをあったのを追加、及び不足していたテストを追加しています。