lib/rtml/inherited_instance_variables.rb in rtml-2.0.3 vs lib/rtml/inherited_instance_variables.rb in rtml-2.0.4

- old
+ new

@@ -1,9 +1,16 @@ module Rtml::InheritedInstanceVariables def copy_ivars_from(source) ivars = source.instance_variables ivars -= source.protected_instance_variables if source.respond_to?(:protected_instance_variables) - ivars.each { |ivar| instance_variable_set(ivar, source.instance_variable_get(ivar)) } + ivars -= source.rtml_protected_instance_variables if source.respond_to?(:rtml_protected_instance_variables) + ivars.each do |ivar| + # as time consuming as this may be, it's still faster than eval("defined?(#{ivar})") + # -- and easier to read, too. + if !instance_variables.include?(ivar) + instance_variable_set(ivar, source.instance_variable_get(ivar)) + end + end rescue # fail silently if they can't be copied end def initialize_with_inherited_instance_variables(*a, &b) \ No newline at end of file