Objeto Rails # em branco? vs. String # vazia? confusão
Documentos do Rails tem esta informação paraObject#blank?
Um objeto está em branco se for falso, vazio ou uma sequência de espaços em branco. Por exemplo, “”, ““, nulo, [] e {} estão em branco.
Mas a fonte desse método é assim:
# File activesupport/lib/active_support/core_ext/object/blank.rb, line 12
def blank?
respond_to?(:empty?) ? empty? : !self
end
Agora, quando abro minha pequena linha de comando e digitoruby -e 'p " ".empty?'
retorna falso. Isso significa que o Rails deve dizer que esse é um valor em branco quando claramente não é. Mas! Eu abro meurails console
e eu digito" ".empty?
e ficar falso como minha linha de comando direta anterior. Mas digito "" .blank? e eu sou verdadeiro como o Rails me promete.
O que estou faltando para entender como o Rails 'blank?
O método funciona com oempty?
método de String?