module FakeRedis::BitopCommand
def bitwise_operation(operation, keys)
def bitwise_operation(operation, keys) apply_onto, *values = keys.map { |key| get(key) }.reject(&:nil?) values.reduce(apply_onto) do |memo, value| shorter, longer = [memo, value].sort_by(&:length).map(&:bytes).map(&:to_a) longer.each_with_index.map do |byte, index| byte.send(operation, shorter[index] || 0) end.pack('c*') end end