Commit 5b70fec2
Changed files (1)
config
initializers
config/initializers/container.rb
@@ -1,21 +1,32 @@
-container = Spank::Container.new
-container.register(:configuration) { EnvironmentVariables.new }
+class ConfigureContainerCommand
+ def configure(container)
+ container.register(:configuration) { EnvironmentVariables.new }
+ container.register(:message_handler) { |builder| builder.build(PublishCakeToTwitter) }
+ container.register(:message_handler) { |builder| builder.build(ProcessPhoto) }
+ container.register(:queue) { |c| Delayed::Job }
+ container.register(:message_bus) { |c| c.build(MessageBus) }.as_singleton
+ container.register(:exif_parser) { |builder| ExifParser.new }
+ container.register(:twitter_publisher) { |c| c.build(TwitterPublisher) }.as_singleton
+ if Rails.env.test?
+ container.register(:blob_storage) { |builder| BlobStorage::Fake.new }
+ else
+ container.register(:blob_storage) { |builder| BlobStorage.new }
+ end
-container.register(:message_handler) { |builder| builder.build(PublishCakeToTwitter) }
-container.register(:message_handler) { |builder| builder.build(ProcessPhoto) }
+ # repositories
+ container.register(:cakes) { |builder| Creation }
+ container.register(:photos) { |builder| Photo }
+ end
+end
-container.register(:queue) { |c| Delayed::Job }
-container.register(:message_bus) { |c| c.build(MessageBus) }.as_singleton
-container.register(:exif_parser) { |builder| ExifParser.new }
-container.register(:twitter_publisher) { |c| c.build(TwitterPublisher) }.as_singleton
-if Rails.env.test?
- container.register(:blob_storage) { |builder| BlobStorage::Fake.new }
+if Rails.configuration.cache_classes
+ container = Spank::Container.new
+ ConfigureContainerCommand.new.configure(container)
+ Spank::IOC.bind_to(container)
else
- container.register(:blob_storage) { |builder| BlobStorage.new }
+ ActionDispatch::Reloader.to_prepare do
+ container = Spank::Container.new
+ ConfigureContainerCommand.new.configure(container)
+ Spank::IOC.bind_to(container)
+ end
end
-
-# repositories
-container.register(:cakes) { |builder| Creation }
-container.register(:photos) { |builder| Photo }
-
-Spank::IOC.bind_to(container)