style rails instalar guidelines guide coding ruby lint

ruby - instalar - rails style guide



¿Qué significa "(...) interpretada como expresión agrupada"? (3)

Estoy usando una guía Ruby en Atom y para algunas líneas muestra la siguiente advertencia:

(...) interpreted as grouped expression

Un ejemplo de una línea que recibe esta advertencia es la siguiente:

elsif not (params[:vacancy].nil? or params[:vacancy][''company_id''].nil? or params[:vacancy][''company_id''] == "0" )

¿Cómo debería mejorarse esa línea para que la advertencia desaparezca?


Intenta quitar el espacio entre el not y el paréntesis


La advertencia es

(...) interpreted as grouped expression

Y significa exactamente lo que dice: en Ruby, los paréntesis se pueden usar para tres propósitos, agrupación de expresiones, listas de parámetros y listas de argumentos. Esta advertencia se emite cuando Ruby cree que desea una lista de argumentos, pero en su lugar escribió una expresión agrupada. La causa más común es el espacio en blanco entre el nombre del mensaje y la lista de argumentos en un mensaje enviado como este:

foo.bar (1, 2)

Esto se interpretará no como una lista de argumentos para el envío de mensajes, sino más bien como una expresión agrupada que, en este caso particular, es un SyntaxError .

En su caso particular, la advertencia parece ser un falso positivo.


La advertencia que recibo es de MRI Ruby (con opciones -wc ), y creo que tienes un error tipográfico ahí. El mensaje que recibo no tiene la palabra "conectado a tierra" sino "agrupado".

El paréntesis en Ruby se puede usar para una de dos cosas, agrupar expresiones o marcar la lista de argumentos de una función o método.

Lo que dice ese mensaje de error es que de estas dos opciones, Ruby lo trata como una expresión. Tenga en cuenta que en Ruby es posible definir un método llamado "no".

Y en este caso particular, no importa de qué manera Ruby interpreta el paréntesis.

Una forma de deshacerse del mensaje es eliminar el espacio entre "no". Si cree que esto es una locura, estoy de acuerdo con usted.