lib/octobat/octobat_object.rb in octobat-2.0.14 vs lib/octobat/octobat_object.rb in octobat-2.0.15

- old
+ new

@@ -55,14 +55,15 @@ added = Set.new(values.keys - @values.keys) # Wipe old state before setting new. This is useful for e.g. updating a # customer, where there is no persistent card parameter. Mark those values # which don't persist as transient - instance_eval do - remove_accessors(removed) - add_accessors(added) - end + #instance_eval do + remove_accessors(removed) + add_accessors(added) + #end + removed.each do |k| @values.delete(k) @transient_values.add(k) @unsaved_values.delete(k) end @@ -139,23 +140,23 @@ def remove_accessors(keys) metaclass.instance_eval do keys.each do |k| next if @@permanent_attributes.include?(k) - k_eq = :"#{k}=" - remove_method(k) if method_defined?(k) - remove_method(k_eq) if method_defined?(k_eq) + + [k, :"#{k}="].each do |method_name| + remove_method(method_name) if method_defined?(method_name) + end end end end def add_accessors(keys) metaclass.instance_eval do keys.each do |k| next if @@permanent_attributes.include?(k) - k_eq = :"#{k}=" define_method(k) { @values[k] } - define_method(k_eq) do |v| + define_method(:"#{k}=") do |v| =begin if v == "" raise ArgumentError.new( "You cannot set #{k} to an empty string." \ "We interpret empty strings as nil in requests." \