Saltar a contenido

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"