Ruby поддерживает двоичные 'или' и другие двоичные операции для значений типа Fixnum и Bignum, что означает любое целое число. Насколько я знаю, побитовые операции не поддерживаются со строками или любыми другими типами.
Как уже упоминали другие люди, вы, вероятно, вообще хотите что-то, кроме бинарных операций. Тем не менее, вы можете легко получить целочисленные представления символов, поэтому вы можете сравнивать символы следующим образом:
a = "Cake"
b = "Pie"
puts a[0] | b[0] # Prints "83" - C is 67 and P is 80.
Вы можете легко получить массив сравнений с некоторыми преобразованиями.
a = "Cake"
b = "Pie " # Strings of uneven length is trivial but more cluttered.
a_arr = a.split(//)
b_arr = b.split(//)
c_arr = []
a.each_with_index { |char, i| c.push(a[i].to_i | b[i].to_i) }
# If you *really* want an ASCII string back...
c = c_arr.collect(&:chr).join