Please sign in to comment.
Fix errors for four of the code samples
The four code samples that fail to run are: - Add attribute magic to objects. Fixed by introducing a Person instance variable. - Tracking value changes. Fixed by replacing `attr_accessor` with `define_attribute_methods`, providing getter and setter methods for `name` and providing the missing `Person#save` method. A call to `Person#save` has to precede the `person.name = 'robert'` assignment, if we want `previous_changes` to include 'bob'. - Adding `errors` interface to objects. Fixed by introducing a Person instance variable, assigning `nil` to its name and calling `Person#validate!`. - Custom validators. Fixed by defining `HasNameValidator` before it is used by `ValidatorPerson`. All the code samples can now be run smoothly. Call Dirty#changes_applied in Person#save, instead of modifying instance vars.
- Loading branch information...