rails language espaƱol python ruby main

python - language - ruby vs javascript



`if__name__== ''__main__''` equivalente en Ruby (2)

Soy nuevo para Ruby. Estoy buscando importar funciones de un módulo que contiene una herramienta que quiero seguir usando por separado. En Python simplemente haría esto:

def a(): ... def b(): ... if __name__ == ''__main__'': a() b()

Esto me permite ejecutar el programa o importarlo como un módulo para usar a() y / o b() separado. ¿Cuál es el paradigma equivalente en Ruby?


Desde el Ruby que he visto en la naturaleza (concedido, no una tonelada), este no es un patrón de diseño estándar de Ruby. Se supone que los módulos y los scripts deben mantenerse separados, por lo que no me sorprendería que no exista una forma buena y limpia de hacerlo.

EDITAR: lo encontré.

if __FILE__ == $0 foo() bar() end

Pero definitivamente no es común.


Si el seguimiento de pila está vacío, podemos comenzar a ejecutar a la derecha e izquierda. No sé si se usa de forma convencional o no convencional ya que estoy en Ruby durante aproximadamente una semana.

if caller.length == 0 # do stuff end

Prueba de concepto:

archivo: test.rb

#!/usr/bin/ruby if caller.length == 0 puts "Main script" end puts "Test"

archivo: shmest.rb

#!/usr/bin/ruby -I . require ''test.rb'' puts "Shmest"

Uso:

$ ./shmest.rb Test Shmest $ ./test.rb Main script Test