lib/schizo/facade/object_builder.rb in schizo-0.1.3 vs lib/schizo/facade/object_builder.rb in schizo-0.2.0
- old
+ new
@@ -33,14 +33,18 @@
# This is to get nesting to work. Because each facade keeps a reference to the object
# it's facading for, we can traverse nested facades. Each time we find one, we extend
# its role into facade we're building.
previous_facade = object
while previous_facade.respond_to?(:dci)
- facade.extend(previous_facade.dci.role)
+ if previous_facade.dci.role.is_a?(Schizo::Role)
+ facade.extend(previous_facade.dci.role)
+ end
previous_facade = previous_facade.dci.object
end
-
- facade.extend(role)
+
+ if role.is_a?(Schizo::Role)
+ facade.extend(role)
+ end
Schizo::Facade.copy_instance_variables(object, facade)
end
end
end