なるようになるブログ

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

rails commit log流し読み(2016/01/08)

2016/01/08分のコミットです。

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

activesupport/CHANGELOG.md


Ensure config.active_record.time_zone_aware_types is always set

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

config.active_record.time_zone_aware_typesが必ず設定されるよう修正しています。

time型を使用している場合に出力されるdeprecated warningで、既存と同じ動作にしたい場合config.active_record.time_zone_aware_types << :timeを設定するようwarningが出力されていたのですが、 実際は初期化のタイミングではconfig.active_record.time_zone_aware_typesが設定されず、上記設定を行おうとするとエラー(NoMethodError)が起きてしまう問題があったので、必ず値が設定される状態になるよう修正を行っています。


add greg

actionpack/CHANGELOG.mdの修正です。

Add option for per-form CSRF tokens.の対応のentryの対応者の所に、Greg Ose氏を追加しています。


Match HashWithIndifferentAccess#default's behaviour with Hash#default

activesupport/lib/active_support/hash_with_indifferent_access.rbの修正です。

HashWithIndifferentAccess#defaultの挙動が、Hash#defaultと異なっていたのを、同じ挙動になるよう修正しています。

PRより。

# Hash#default
default_value = Hash.new(:default)
default_value[:foo] = :bar
default_value.default # => :default
default_value.default(:foo) # => :default
default_value # => {:foo=>:bar}

default_proc = Hash.new { |h, k| h[k] = [] }
default_proc[:foo] = :bar
default_proc.default # => nil
default_proc.default(:foo) # => []
default_proc # => {:foo=>[]}
# HashWithIndifferentAccess#default
default_value = HashWithIndifferentAccess.new(:default)
default_value[:foo] = :bar
default_value.default # => :default
default_value.default(:foo) # => :bar
default_value # => {"foo"=>:bar}

default_proc = HashWithIndifferentAccess.new { |h, k| h[k] = [] }
default_proc[:foo] = :bar
default_proc.default # => []
default_proc.default(:foo) # => :bar
default_proc # => {"foo"=>:bar, nil=>[]}

わかりずらいのですが、確かに微妙に違うんですねえ。


{update|delete}_sql are almost the same as {update|delete}

Active Recordの修正です。

各connection adaptersで、それぞれ#update_sql#delete_sqlメソッドを実装していたのですが、中身が#update#deleteとほぼ同じだった為、それぞれaliasとして定義するよう修正しています。


Fix typo in ActionPack CHANGELOG [ci skip]

actionpack/CHANGELOG.mdの修正です。

ArgumentErrorArguemntErrorにタイポしている箇所があったのを修正しています。


Fix select_values method signature for consistency

activerecord/lib/active_record/connection_adapters/abstract/database_statements.rbactiverecord/lib/active_record/connection_adapters/postgresql/database_statements.rbの修正です。

#select_valuesメソッドシグネチャ#select_one#select_rowsと合わせる(引数をarel, name, bindの3つに統一)よう修正しています。


[doc] The capture method isn't always used inside views to create a variable

actionview/lib/action_view/helpers/capture_helper.rbのdocの修正です。

#captureメソッドのdocに#captureメソッドはテンプレートの一部を切り取って変数に格納出来る、と記載してあったのですが、全ての場合で変数を作成出来る訳ではないので、 テンプレートの一部をStringオブジェクトに切り出せる、という旨説明を修正しています。