lib/origen/application.rb in origen-0.30.0 vs lib/origen/application.rb in origen-0.31.0

- old
+ new

@@ -793,10 +793,21 @@ ensure $_target_options = nil end @target_instantiated = true Origen.mode = :debug if options[:force_debug] - listeners_for(:on_create).each(&:on_create) + listeners_for(:on_create).each do |obj| + unless obj.is_a?(Origen::SubBlocks::Placeholder) + if obj.try(:is_a_model_and_controller?) + m = obj.model + c = obj.controller + m.on_create if m.respond_to_directly?(:on_create) + c.on_create if c.respond_to_directly?(:on_create) + else + obj.on_create + end + end + end @on_create_called = true # Keep this within the load_event to ensure any objects that are further instantiated objects # will be associated with (and cleared out upon reload of) the current target listeners_for(:on_load_target).each(&:on_load_target) end