2014/07/01分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
activemodel/CHANGELOG.md
Add String support for min/max attributes on DatetimeField
Move STI docs off of the main Base document, leaving a note
activerecord/lib/active_record/inheritance.rb
のdocの修正です。
STIのついてのdocをactiverecord/lib/active_record/base.rb
からactiverecord/lib/active_record/inheritance.rb
に移動しています。
適切な箇所に配置した、との事。
Fix 10.3 invite_email.body assert_match example.
rails guideのA Guide to Testing Rails Applications
の修正です。
ActionMailer::Base
のテストのexampleを修正しています。
- assert_match(/Hi friend@example.com/, invite_email.body) + assert_match(/Hi friend@example.com/, invite_email.body.to_s)
元々、body
部分は暗黙の変換を行ってくれていたのですが、現状行われなくなっているので、明示的にStringへの変換が必要との事で修正しています。
Don't add a second method for attribute existence
activerecord/lib/active_record/attribute_methods.rb
の修正です。
昨日attribute_exists?
メソッドを新規に作成したのですが、既に同じ役割のhas_attribute?
メソッドがあったので、attribute_exists?
メソッドの方は削除しています。
Merge pull request #14861 from igor04/dirty-rollback
ActiveModel::Dirty
moduleの修正です。
値を元の値に戻すrollback_changes
というメソッドが追加されています。
class Person include ActiveModel::Dirty define_attribute_methods :name def name @name end def name=(val) name_will_change! unless val == @name @name = val end def rollback! rollback_changes end end
person = Person.find_by(name: 'Uncle Bob') person.name = "Uncle Bob" person.rollback! person.name # => "Bill" person.name_changed? # => false
こんな感じで。割と使い道ありそうな。
Add CHANGELOG entry for #14861 and document private methods on the API
上記rollback_changes
メソッドの対応についてCHANGELOGに追記しています。
Rename rollback_changes to undo_changes
activemodel/lib/active_model/dirty.rb
の修正です。
上記で追加されたrollback_changes
メソッドをundo_changes
に名前を変更しています。
database rollbackのオーバーロードを避ける為との事。確かに、rollback_changes
だと紛らわしいですね。
Add String support for min/max attributes on DatetimeField
actionview/lib/action_view/helpers/tags/datetime_field.rb
の修正です。
DatetimeField
にmin/max
属性を追加しています。
date_field("user", "born_on", min: Date.today) # => <input id="user_born_on" name="user[born_on]" type="date" min="2014-05-20" /> time_field("task", "started_at", min: Time.now) # => <input id="task_started_at" name="task[started_at]" type="time" min="01:00:00.000" /> datetime_field("user", "born_on", min: Date.today) # => <input id="user_born_on" name="user[born_on]" type="datetime" min="2014-05-20T00:00:00.000+0000" /> datetime_local_field("user", "born_on", min: Date.today) # => <input id="user_born_on" name="user[born_on]" type="datetime-local" min="2014-05-20T00:00:00.000" />
対応されてなかったのが意外でした。
actionview/lib/action_view/helpers/tags/datetime_field.rb
の修正です。
early returnしていた箇所をif/elseで書きなおしています。
- return value unless value.is_a? String - DateTime.parse(value) rescue nil + if value.is_a? String + DateTime.parse(value) rescue nil + else + value + end
rails としては、early returnよりif/elseを使うほうが良いと考えているようです。
Add CHANGELOG entry for #15214
DatetimeField
の対応について、コミットログに追記しています。
push host / port / protocol extraction up
actionpack/lib/action_dispatch/http/url.rb
の修正です。
host / port / protocolについて、Hashへの参照を一度で済ますよう修正しています。
性能改善対応ですかね。
Fix doc unwanted dl Admin:: [ci skip]
actionpack/lib/action_dispatch/routing/mapper.rb
のdocの修正です。
Admin::
をttタグでくくるように修正しています。
Silence warning emitted in tests
activemodel/lib/active_model/naming.rb
の修正です。
extended
メソッドの中でremove_possible_method(:model_name)
を行うよう修正しています。
model_name
メソッドを複数回定義してしまっていて、warningが出力されてしまっていたので、remove_possible_method
でundefするよう対応しています。
[ci skip] Add missing prologue section of upgrading ruby on rails guide.
rails guideのA Guide for Upgrading Ruby on Rails
の修正です。
最初の節の前に+--------------------------------------------------------------------------------
を追加しています。
+