From 583e46aef5b6b82ca6709b3f8ed550ce368fd2f5 Mon Sep 17 00:00:00 2001 From: Dmitry Tymchuk Date: Fri, 10 Apr 2015 18:30:40 +0300 Subject: [PATCH] Change implementation create setter methods --- lib/lotus/entity/dirty_tracking.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/lotus/entity/dirty_tracking.rb b/lib/lotus/entity/dirty_tracking.rb index 831da0d8..963cc3e2 100644 --- a/lib/lotus/entity/dirty_tracking.rb +++ b/lib/lotus/entity/dirty_tracking.rb @@ -44,10 +44,12 @@ module ClassMethods # @api private def define_attr_accessor(attr) attr_reader(attr) - define_method "#{attr}=" do |val| - _attribute_changed(attr) if val != __send__(attr) - instance_variable_set("@#{attr}", val) - end + class_eval %{ + def #{ attr }=(value) + _attribute_changed(:#{ attr }) if value != @#{ attr } + @#{ attr } = value + end + } end end