rubygems/rubygems.org — pull request #404 by krainboltgreene (2012-02-22 22:42:28+00:00)
Title: Rails 3.2 Update

This pull request comprises of a few features I've worked on today plus merging in `master` (rails-3.1 was a bit out of date). So here are some cavets before I start listening changes:

1. The testing framework is broken, and I haven't had a chance to look into it. (I hate TestUnit :/)
2. Some of the translation stuff is broken, because apparently it works based on the folder/view (jesus) and doesn't like the rails 3.1 `app/views/application/*` pattern.
3. All sorts of deprecation warnings going up, which makes it rather annoying.
4. I've added two non-important gems:
- Thin: This'll make starting up the server a lot faster, for development.
- Slim-Rails: One of the reasons I partialed out a lot of the view is because I hope to change some of these from ERB to Slim. Slim is faster, saner, has more features, and easier to read (for most people).
- Sass-Rails: Because why not?

Alright, now onto the changes. Big ones first:

- I've removed the vendor/cache from the repository and added it to the `.gitignore`. This means no more screwing around adding/removing because of a new gem, an update, or whatever. Screw that noise. I eventually plan on submitting a request to dump the junk binaries from the repository all together, like compiled assets on any sane rails 3.1+ app.
- I've merged in `upstream/master`, with merge conflicts in most of the tests. I've commented out the HEAD (That would be rails-3.1's version of the tests), but the entire test framework fails to actually run. Joy.
- The `.gitignore` now looks like a new 3.2 style rails app should, with a few of the old holdovers in. I've also removed system specific ignores, like .DS_Store and .rbc, because those should be ignored by the users root gitignore.
- I've dropped the platform specific gem calls in the `Gemfile`, because the setup guide explicitly tells you to use 1.9.3 and you'd have to be insane to not use 1.9.3. An exception is the jruby call.
- I've added fuzzy version matching to ALL OF THE GEMS, this way it's pretty specific what changes and we don't have to rely on a Gemfile.lock to know what version to use (say, if someone needs to rewrite their Gemfile.lock or run `bundle update`)
- I've also moved around the gems so they make more sense, and put certain gems only in development or test. This'll make the tests run faster, and make the dev cycle easier.
- I've removed some useless gems that just slow things down, like `guard-bundler` (What, you can't run bundle manually? Lazy!). I also plan to remove gravatarastic or whatever it's called.
- I've moved all the stylesheets to .scss and the images to assets/images.
- I've uncompressed the CSS files (because they'll be compressed by the asset pipeline), some of the JS.
- I've moved the vendor specific css into the vendor/assets/stylesheets directory
- I've moved the js that are a part of libraries, like `g.rapheal` and `g.bar` into vendor specific folders like `vendor/assets/javascripts/jquery/` and 'vendor/assets/javascripts/raphael`.
- I've added bootstrap to the repository, but not added it to the styles or js. It's just too helpful to pass up.

I'm sure i'm missing something, but there you go. Also, all of these commits are easily cherry-pickable for the things you want/dont want.