Commit 0179796
Changed files (3)
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