Я могу только догадываться, но я предполагаю, что он обозначает логический оператор в сочетании с установкой переменной (например, ^ =, + =, * = на других языках)
x = x || y означает: используйте x, если установлено, иначе назначьте y. он может использоваться для обеспечения того, чтобы переменные были, по крайней мере, инициализированы (до 0, до пустого массива и т.д.).
Ответ 4
Если b равно нулю, назначьте ему.
a = :foo
b ||= a
# b == :foo
Если значение b не равно nil, не изменяйте его.
a = :foo
b = :bar
b ||= a
# b == :bar
Ответ 5
Это "сокращенное присвоение" (см. "Справочник по Ruby Pocket", стр. 10).
a = a || b
(значение a присваивается значению, образованному логическим или a, b
становится
a || = b
Почти все операторы имеют сокращенную версию (+ = * = && = и т.д.).