Commit 0082cc7

mo khan <mo@mokhan.ca>
2014-03-18 02:36:17
use application controller to load new screen.
1 parent e95cca5
lib/boot/container_configuration.rb
@@ -5,6 +5,7 @@ class ContainerConfiguration
     container.register(:event_aggregator) { EventAggregator.new }.as_singleton
     container.register(:shell) { |x| x.build(ApplicationShell) }.as_singleton
     container.register(:shell_presenter) { |x| x.build(ApplicationShellPresenter) }
+    container.register(:application_controller) { |x| x.build(ApplicationController) }.as_singleton
     Spank::IOC.bind_to(container)
   end
 end
lib/presentation/application_controller.rb
@@ -0,0 +1,9 @@
+class ApplicationController
+  def initialize(container)
+    @container = container
+  end
+
+  def run(presenter)
+    @container.resolve(presenter).present
+  end
+end
lib/application.rb
@@ -13,7 +13,7 @@ class Application
 
     container = Spank::Container.new
     ContainerConfiguration.then(EventsRegistration).run(container)
-    container.resolve(:shell_presenter).present
+    container.resolve(:application_controller).run(:shell_presenter)
     Gtk.main
   end
 end