AppHarbor.AppHarborInstaller.Install C# (CSharp) Method

Install() public method

public Install ( IWindsorContainer container, IConfigurationStore store ) : void
container IWindsorContainer
store IConfigurationStore
return void
        public void Install(IWindsorContainer container, IConfigurationStore store)
        {
            container.Kernel.Resolver.AddSubResolver(new CollectionResolver(container.Kernel));

            container.Register(AllTypes.FromThisAssembly()
                .BasedOn<Command>());

            container.Register(Component
                .For<IEnumerable<Type>>()
                .UsingFactoryMethod(x =>
                {
                    return Assembly.GetExecutingAssembly().GetExportedTypes()
                        .Where(y => typeof(Command).IsAssignableFrom(y) && y.IsClass && !y.IsAbstract);
                }));

            container.Register(Component
                .For<TextWriter>()
                .UsingFactoryMethod(x =>
                {
                    return Console.Out;
                }));

            container.Register(Component
                .For<TextReader>()
                .UsingFactoryMethod(x =>
                {
                    return Console.In;
                }));

            container.Register(Component
                .For<IAccessTokenConfiguration>()
                .ImplementedBy<AccessTokenConfiguration>());

            container.Register(Component
                .For<IAppHarborClient>()
                .UsingFactoryMethod(x =>
                {
                    var accessTokenConfiguration = container.Resolve<IAccessTokenConfiguration>();
                    return new AppHarborCliClient(accessTokenConfiguration.GetAccessToken());
                }));

            container.Register(Component
                .For<IApplicationConfiguration>()
                .ImplementedBy<ApplicationConfiguration>());

            container.Register(Component
                .For<CommandDispatcher>());

            container.Register(Component
                .For<ITypeNameMatcher>()
                .ImplementedBy<TypeNameMatcher<Command>>());

            container.Register(Component
                .For<IAliasMatcher>()
                .ImplementedBy<AliasMatcher>());

            container.Register(Component
                .For<IGitCommand>()
                .ImplementedBy<GitCommand>());

            container.Register(Component
                .For<IGitRepositoryConfigurer>()
                .ImplementedBy<GitRepositoryConfigurer>());

            container.Register(Component
                .For<IFileSystem>()
                .ImplementedBy<PhysicalFileSystem>()
                .LifeStyle.Transient);

            container.Register(Component
                .For<IMaskedInput>()
                .ImplementedBy<MaskedConsoleInput>());
        }
AppHarborInstaller