aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/lib/active_model/attribute_mutation_tracker.rb
Commit message (Collapse)AuthorAgeFilesLines
* PERF: Recover `changes_applied` performance (#31698)Ryuta Kamizono2018-01-221-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #30985 caused `object.save` performance regression since calling `changes` in `changes_applied` is very slow. We don't need to call the expensive method in `changes_applied` as long as `@attributes` is tracked by mutation tracker. https://gist.github.com/kamipo/1a9f4f3891803b914fc72ede98268aa2 Before: ``` Warming up -------------------------------------- create_string_columns 73.000 i/100ms Calculating ------------------------------------- create_string_columns 722.256 (± 5.8%) i/s - 3.650k in 5.073031s ``` After: ``` Warming up -------------------------------------- create_string_columns 96.000 i/100ms Calculating ------------------------------------- create_string_columns 950.224 (± 7.7%) i/s - 4.800k in 5.084837s ```
* Add missing require "active_support/core_ext/hash/indifferent_access"Ryuta Kamizono2017-11-101-0/+2
| | | | https://travis-ci.org/rails/rails/jobs/300163454#L2236
* Move Attribute and AttributeSet to ActiveModelLisa Ugray2017-11-091-0/+114
Use these to back the attributes API. Stop automatically including ActiveModel::Dirty in ActiveModel::Attributes, and make it optional.