Commit 0179796

mo khan <mo@mokhan.ca>
2013-12-11 04:48:13
extract separate startup commands.
1 parent 064bad1
lib/boot/container_configuration.rb
@@ -0,0 +1,9 @@
+class ContainerConfiguration
+  def self.run(container)
+    container.register(:event_aggregator) { EventAggregator.new }.as_singleton
+    container.register(:shell) { ApplicationShell.new }.as_singleton
+    container.register(:shell_presenter) { |x| x.build(ApplicationShellPresenter) }
+    Spank::IOC.bind_to(container)
+  end
+end
+
lib/boot/events_registration.rb
@@ -0,0 +1,9 @@
+class EventsRegistration
+  def self.run(container)
+    register_items_with(container.resolve(:event_aggregator))
+  end
+
+  def self.register_items_with(event_aggregator)
+    event_aggregator.subscribe(:halt, ShutdownCommand.new)
+  end
+end
lib/application.rb
@@ -10,24 +10,10 @@ end
 class Application
   def run(arguments)
     Gtk.init
-    container = bootstrap_container
-    bootstrap_events_with(container.resolve(:event_aggregator))
-    Spank::IOC.resolve(:shell_presenter).present
-    Gtk.main
-  end
-
-  private
-
-  def bootstrap_container
     container = Spank::Container.new
-    container.register(:event_aggregator) { EventAggregator.new }.as_singleton
-    container.register(:shell) { ApplicationShell.new }.as_singleton
-    container.register(:shell_presenter) { |x| x.build(ApplicationShellPresenter) }
-    Spank::IOC.bind_to(container)
-    container
-  end
-
-  def bootstrap_events_with(event_aggregator)
-    event_aggregator.subscribe(:halt, ShutdownCommand.new)
+    ContainerConfiguration.run(container)
+    EventsRegistration.run(container)
+    container.resolve(:shell_presenter).present
+    Gtk.main
   end
 end