Todas las interacciones con el sitio web de Exercism se gestionan de forma automática. Los representadores tienen la única responsabilidad de tomar una solución y devolver una representación de ella. Consulta la introducción para obtener más información.
two-fer).representation.txt en el directorio de salida.representation.json en el directorio de salida.mapping.json en el directorio de salida.El representador obtiene el 100 % de los recursos de la máquina durante una ventana de 20 segundos por solución. Después de 20 segundos, el proceso se detiene y reporta un timeout.
Te recomendamos seguir nuestro documento de buenas prácticas de rendimiento para reducir la probabilidad de timeouts.
El archivo representation.txt contiene algún tipo de representación canónica. Esta representación puede tomar muchas formas, pero por lo general es un AST:
s(:class,
s(:const, nil, :PLACEHOLDER_1), nil,
s(:begin,
s(:def, :PLACEHOLDER_2,
s(:args),
s(:begin,
s(:lvasgn, :PLACEHOLDER_3,
s(:str, "foo")),
s(:lvasgn, :PLACEHOLDER_4,
s(:str, "foo")),
s(:return,
s(:lvar, :PLACEHOLDER_3)))),
s(:def, :PLACEHOLDER_3,
s(:args),
s(:const, nil, :PLACEHOLDER_1))))
La representación también podría ser simplemente código fuente (normalizado):
class PLACEHOLDER_1
def PLACEHOLDER_2
PLACEHOLDER_3 = "foo"
PLACEHOLDER_4 = "foo"
return PLACEHOLDER_3
end
def PLACEHOLDER_3
PLACEHOLDER_1
end
end
El archivo mapping.json asigna los marcadores de posición a sus valores originales:
{
"PLACEHOLDER_1": "TwoFer",
"PLACEHOLDER_2": "two_fer",
"PLACEHOLDER_3": "foo",
"PLACEHOLDER_4": "bar"
}
Es importante tener en cuenta que todos los nombres idénticos deben reemplazarse por el mismo marcador de posición, sin importar el ámbito.
El archivo representation.json contiene metadatos:
version: el número de versión del representador (por defecto es 1)Ejemplo:
{ "version": 2 }