ExpertiDict

Ruby · Essencial · Inglês · Técnico

block given

/blɑk ˈɡɪvən/método

Método block_given? que diz se o método atual recebeu um bloco. Permite que o mesmo método funcione com ou sem bloco, chamando yield só quando ele existe.

Onde usar

Aparece em métodos que oferecem uma versão com bloco e outra sem, como File.open. Sem essa checagem, yield sem bloco lança LocalJumpError.

Em código

def rodar
  return "sem bloco" unless block_given?
  yield
end
p rodar  # => "sem bloco"
p rodar { "com bloco" }  # => "com bloco"

Exemplos

Check block_given? before you yield.

Cheque block_given? antes de dar yield.

Without a block, yield raises LocalJumpError.

Sem bloco, o yield lança LocalJumpError.

Cuidado

Não o confunda com receber &bloco como parâmetro nomeado; block_given? só informa a presença, sem dar acesso ao bloco como objeto.

Veja também

Todos os termos de Ruby