thoughtbot/liftoff — pull request #67 by gfontenot (2014-02-18 21:17:22+00:00)
Title: Generate project structure

Opening this to solicit possible refactorings and get general code feedback. I've been staring at this code pretty much 7 days a week for the past 2 weeks, so I could use some fresh eyes.

In a nutshell: This adds the ability to generate Xcode projects and a correlating directory structure with Liftoff. The actual group/directory structure is dictated by the `application_target_groups` and `unit_test_target_groups` keys in the `liftoffrc`

I'm not super happy with the fact that there are now `Project`, `ProjectBuilder`, and the old `XcodeprojHelper` classes. `Proj` and `XcodeprojHelper` specifically seem to be doing largely the same things, but I'm afraid of `Project` bloating out of control. Any ideas here would be appreciated.

I'd also love ideas on breaking up the `ProjectBuilder#create_tree` and `ProjectBuilder#link_file` methods.

This also breaks compatibility with the way `liftoff` works now. `liftoff` _always_ creates a new project and directory structure after this PR. I'd like to go back and fix that by checking to see if an Xcode project file exists in the pwd before generating anything. That will come in another PR, but I'm open to ideas on the best way to go about this.

I'm also going to need to update the documentation for these changes.