I've been looking for a bit now and I can't find a good complete guide. For conventions around gems and loading code you should check out: http://guides.rubygems.org/patterns/

The things I'm looking for are:
Modules/Classes are namespaced. Namespacing means the module/class in code looks like Namespace::Module::Class and the '::' separator is converted to '/' and CamelCase is converted to snake_case when looking at filepaths. In gem names dashes are converted the same as '::'.

examples:
`module ActiveRecord` -> `require "active_record"` -> `lib/active_record.rb`**
`class ActiveRecord::Base` -> `require "active_record/base"` -> `lib/active_record/base.rb`
`gem 'rspec-core'` -> `class RSpec::Core` -> `require "rspec/core"` -> `lib/rspec/core.rb`

**note: the Rails ORM gem is called 'activerecord' because originally it did not follow this convention, but with the 3.0 series they restructured their internal directories to follow convention, but left the gem name the same.