Ответ 1
Синтаксис предназначен для определения пары ключей/значений Hash, а разница зависит от версии Ruby.
Поддерживается как в Ruby 1.8, так и в Ruby 1.9
:foo => true
Поддерживается только в Ruby 1.9
foo: true
Если вы разрабатываете Ruby 1.9, вы, вероятно, должны использовать синтаксис:
foo: true
поскольку это, по-видимому, направление, в котором сообщество движется.