O comportamento padrão de um método Ruby, é retornar o último valor que ele possui. Então se tivermos o seguinte código:

  def calc(x, y)
    a = x + y
    b = x - y
    c = x * y
    d = x / y
  end

Não importa quantas variáveis você tenha definido, o retorno sempre será a última, no caso d

calc(10, 5)
=> 2

Mas, em algum momento podemos precisar que esse método retorne mais de um valor. Por exemplo, estamos precisando do valor de a e b. Como podemos retornar ao mesmo tempo? É muito simples na verdade. Basta fazer o método retornar um array com os valores que desejamos.

  def calc(x, y)
    a = x + y
    b = x - y
    c = x * y
    d = x / y
    [a,b]
  end

E para colocar cada valor em uma variável, basta fazer o seguinte:

a, b = calc(10,5)
=> [15, 5]

a
=> 15

b
=> 5

Eu sei que o exemplo não foi grande coisa, mas acho que deu pra pegar a ideia.