anchor.diff:  
   [![Build Status](https://travis-ci.org/Swinject/Swinject-CodeGen.svg?branch=master)](https://travis-ci.org/Swinject/Swinject-CodeGen)
   
  -I would call it a very elaborated proof of concept, though we use it in production atm.
  -We are open for every kind of feedback, improvements of the generated code/templates, discussion of the input format etc.
  -
   ## TLDR;
   
  -We propose a method to get rid of duplicate use of class values and namestrings, by generating explicit functions for registering and resolving.
  +Swinject-CodeGen provides a method to get rid of duplicate use of class values and namestrings, by generating explicit functions for registering and resolving using Swinject.
   Doing this, we also can generate typed tuples to use when resolving, thus allowing better documented and less error-prone code.
   
   ## Installation
  -
  -We aim to support carthage in the near future
  -
   ### Cocoapods
   
   Add
  
positive.code: }
  let horse1 = container.resolveAnimalType("Spirit")
  ```
  
  We can provide more examples if desired.
  
  ## Integration
  
  The Integration is currently done by calling the following code in a very early (i.e. before compilation) build phase:
  ```SH
  cd ${SRCROOT}/CodeGeneration/
  swinject_codegen -i baseInput.csv -o extensions/baseContainerExtension.swift
  swinject_codegen -i iosInput.csv -o extensions/iosContainerExtension.swift
  swinject_codegen -i tvosInput.csv -o extensions/tvosContainerExtension.swift
  ```
  
  The resulting extension files are added to xcode and given appropriate target settings.
  
  ## Migration
  The script also generates migration.sh files (when using the -m switch), which use sed to go through the code and replace simple cases (i.e. no arguments) of resolve and register.
  
negative.code: ```
  
  to your podfile.
  
  ### Carthage
  
  Add
  
  ```
  github "Swinject/Swinject-CodeGeneration"
  ```
  
  to your Cartfile.
  
  ## Integration
  1. Define your dependencies in a .csv or .yml file (see below and example file)
  2. Add a call to generate the code as build script phase:
  
  For Cocoapods:
  ```Shell
  $PODS_ROOT/Swinject-CodeGen/bin/swinject_codegen -i baseInput.csv -o extensions/baseContainerExtension.swift
  ```
  
  For Carthage:
  ```Shell
  $SRCROOT/Carthage/Checkouts/Swinject-CodeGen/bin/swinject_codegen -i baseInput.csv -o extensions/baseContainerExtension.swift
  ```
  
  3. Add the generated file (here: `extensions/baseContainerExtension.swift`) to xcode
  4. Repeat if you need to support multiple targets/have multiple input files.
  
  