master
1class ConfigureContainerCommand
2 def configure(container)
3 container.register(:exif_parser) { |builder| ExifParser.new }
4 container.register(:twitter_publisher) { |c| c.build(TwitterPublisher) }
5 container.register(:product_api) { |c| AmazonAPI.new }.as_singleton
6 if Rails.env.test?
7 container.register(:blob_storage) { |builder| BlobStorage::Fake.new }
8 else
9 container.register(:blob_storage) { |builder| BlobStorage.new }
10 end
11
12 # repositories
13 container.register(:cakes) { |builder| Creation::Repository.new }.as_singleton
14 container.register(:photos) { |builder| Photo }
15 container.register(:users) { |builder| User::Repository.new }.as_singleton
16 end
17end
18
19if Rails.configuration.cache_classes
20 container = Spank::Container.new
21 ConfigureContainerCommand.new.configure(container)
22 Spank::IOC.bind_to(container)
23else
24 ActiveSupport::Reloader.to_prepare do
25 container = Spank::Container.new
26 ConfigureContainerCommand.new.configure(container)
27 Spank::IOC.bind_to(container)
28 end
29end