Posts Tagged ‘true’

Ruby on Rails diferença entre os métodos nil?, empty? e blank?

Postado em 07 jul 2009
Categoria(s) Ruby on Rails

nil?
O método nil? testa se o objeto é uma instância da class NilClass, usado geralmente para indicar um valor inválido.

empty?
O método empty? testa se o objeto é vazio, depende da classe do objeto, por exemplo String#empty? retorna true se a string não conter caracteres, Array#empty? e Hash#empty? retorna true se o array ou hash não tiver entradas, para outras classes você deve consultar o seu comportamento.

nil.nil?
=> true
 
false.nil?
=> false
 
1.nil?
=> false
 
0.nil?
=> false
 
"".nil?
=> false
 
[].nil?
=> false
 
"".empty?
=> true
 
"abc".empty?
=> false
 
[].empty?
=> true
 
[1, 2, 3].empty?
=> false
 
1.empty?
=> NoMethodError

No último exemplo o método empty? não é definido na classe Fixnum.

blank?
O método blank? é implementado no Rails, ele testa se um objeto é false, empty, uma string com espaços, por exemplo: “”, ” “, nil, [], e {} são blank.

Esse método simplifica:

Ao invés de fazer:

if !address.nil? && !address.empty?

Você pode fazer:

if !address.blank?

Se você gostou desse texto e acha que ajudou você, me recomende: Recommend Me.

  • Share/Bookmark

Ruby como verificar se uma variável existe similar ao isset do PHP

Postado em 17 jun 2009
Categoria(s) Ruby

No PHP existe a função isset ela é muito interessante para testar se uma variável existe, ela retorna true caso exista e false caso contrário.

Por exemplo:

1
2
3
4
5
6
7
8
public function cleanAttributes($params)
{
  if (isset($params['title'])) {
    $params['title'] = strip_tags($params['title']);
  }
 
  return $params;
}

No Ruby você pode fazer o mesmo usando o operador defined?.

Por exemplo:

1
2
3
4
5
6
7
8
9
def clean_attributes(params)
  if defined?(params['title'])
    if !params['title'].nil?
      params['title'] = params['title'].strip_tags
    end
  end
 
  return params
end

Se você gostou desse texto e acha que ajudou você, me recomende: Recommend Me.

  • Share/Bookmark