## Bundler
* <a name="dev-test-gems"></a>
只在开发环境或测试环境下使用的 gem 应进行适当的分组。
<sup>[[link](#dev-test-gems)]</sup>
* <a name="only-good-gems"></a>
在项目中只使用广为人知的 gem。如果你考虑引入某些鲜为人所知的 gem,应该先仔细检查一下其源代码。
<sup>[[link](#only-good-gems)]</sup>
* <a name="os-specific-gemfile-locks"></a>
关于多个开发者使用不同操作系统的项目,与操作系统有关的 gem 默认情况下会产生经常变动的 `Gemfile.lock`。 在 Gemfile 文件里,所有与 OS X 相关的 gem 放在 `darwin` 群组,而所有与 Linux 有关的 gem 应放在 `linux` 群组:
<sup>[[link](#os-specific-gemfile-locks)]</sup>
```Ruby
# Gemfile
group :darwin do
gem 'rb-fsevent'
gem 'growl'
end
group :linux do
gem 'rb-inotify'
end
```
要在正确的环境下加载合适的 gem,需添加以下代码至 `config/application.rb` :
```Ruby
platform = RUBY_PLATFORM.match(/(linux|darwin)/)[0].to_sym
Bundler.require(platform)
```
* <a name="gemfile-lock"></a>
不要把 `Gemfile.lock` 文件从版本控制里移除。这可不是一个随机产生的文件——它的目的是确保你所有的团队成员执行 `bundle install` 时,获得相同版本的 gem 。
<sup>[[link](#gemfile-lock)]</sup>