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

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

4 Comments

  1. victor sobreira

    Creio que esqueceu de colocar o cifrão da variável. no codigo php

  2. É verdade!
    Perdi a prática com o PHP! hehehe…
    Está arrumado. ;-)
    Obrigado.

  3. Patrick,

    Não seria mais “Rubyish” usar o nome da variável direto:

    if params['title']

    end

    ?

  4. Isso não funciona caso a variável não existe, caso não seja definida:

    >> if params[:title]
    >> puts "existe"
    >> else
    ?> puts "não existe"
    >> end
    NameError: undefined local variable or method `params' 
    for #<Object:0xb7cd794c>
            from (irb):1
    >>

    Desta forma precisa fazer todo aquele código acima,
    na verdade dá para melhorar mais o código.



Add Your Comment