Escribir módulos de importación con Ruby
Aquí hay un ejemplo de un módulo de importación Ruby. Llamemos
este archivo ruby_hello.rb:
#!/usr/bin/env ruby require 'json' input = JSON.parse( gets ) msg = 'hello ' + input['quux'] + ' from ruby' puts msg puts JSON.generate( { ENV['CLARIVE_RETURN'] => { "myvar" => { "msg" => msg } } } )
Warning
No olvide aplicar la bandera de ejecución +x a sus módulos de importación.
Las reglas de Clarive solo pueden invocar módulos que sean ejecutables.
Asegúrese de que la definición shebang #! apunte a un binario válido
en la imagen del contenedor docker que se utilizará con
su módulo.
Para probar su módulo de importación Ruby desde la línea de comandos, pruebe el siguiente comando:
echo '{ "quux": "worlds" }' | CLARIVE_RETURN=1234 ./ruby_hello.rb
Si todo salió bien, se debería mostrar la siguiente salida.
hello worlds from ruby {"1234":{"myvar":{"msg":"hello worlds from ruby"}}}
Usar importaciones Ruby en su rulebook¶
Para usar un módulo Ruby primero debe registrarlo en un repositorio Git gestionado por Clarive.
Supongamos que hay un proyecto llamado MyProject configurado en su sistema, y
que el proyecto tiene un repositorio Git llamado MyRepo. Por lo tanto, la ruta a su
rulebook y módulo sería:
/MyProject/MyRepo/.clarive.yml /MyProject/MyRepo/.clarive/imports/ruby_hello.rb
Ahora en su rulebook importe el archivo Ruby con la directiva import:.
Puede probar esto usando el REPL.
image: ruby workspace: - MyProject/MyRepo import: - /MyProject/MyRepo/.clarive/imports/ do: - echo: "and now for something completely different:" - ruby_hello: quux: "world"