Carlos Brando

Nome do Jogo

Como funcionam os métodos puts e print no Ruby

Se você já experimentou Ruby com certeza já conheceu os famosos métodos puts, print e outros semelhantes a esses. Talvez você tenha notado que esses métodos, diferente de como aprendemos, podem ser executados sem que seja necessário informar um objeto.

Se você vem de outra linguagem de programação talvez tenha logo especulado que eles sejam palavras reservadas do Ruby. Mas isso não é verdade. Ambos são métodos comuns, como qualquer outro. Veja por si mesmo:

1
2
Object.send :puts, "um texto qualquer"
# => um texto qualquer

Como você pode ver no exemplo acima, esses métodos foram inteligentemente incluidos na classe Object, e como no Ruby tudo é um objeto…

1
puts send(:class) # => Object

O módulo Kernel

Embora esses métodos sejam disponibilizados por meio de Object, eles estão implementados em um módulo chamado Kernel, que é então incluido na classe.

O interessante é que você pode tirar proveito desse mecanismo. Se você adicionar um método ao módulo Kernel ele funcionará exatamente como os métodos citados acima. Veja:

1
2
3
4
5
6
7
module Kernel
    def print_line
        puts '-' * 20
    end
end

print_line # => --------------------

Comments