Using proper ActiveRecord method (update_attribute instead of update_attributes). Included tests.
Simplify test using attr_accessible, remove ActiveSupport::Concern for Rails 2 compatibility
Better test isolation in attr_protected_test
Separate the tests for newer Ruby, Rails and new features
Naming convention for test specific classes under test
Simplify the compare_states_test
Use update_column for newer Rails; ensure other dirty attributes are not saved on state change