Quiero escribir un script de Ruby algo como esto:¿Puedo escribir el código de Ruby que se ejecuta solo cuando se ejecuta mi secuencia de comandos, pero no cuando se requiere?
class Foo
# instance methods here
def self.run
foo = Foo.new
# do stuff here
end
end
# This code should only be executed when run as a script, but not when required into another file
unless required_in? # <-- not a real Kernel method
Foo.run
end
# ------------------------------------------------------------------------------------------
Quiero ser capaz de unidad de prueba, lo cual es por eso que no quiero que el código fuera de la clase para funcionar a menos que yo ejecuto el secuencia de comandos directamente, es decir, ruby foo_it_up.rb
.
Sé que puedo simplemente poner la clase Foo
en otro archivo y require 'foo'
en mi guión. De hecho, esa es probablemente una mejor manera de hacerlo, solo en caso de que la funcionalidad de Foo
sea necesaria en otro lugar. Entonces mi pregunta es más académica que nada, pero aún estaría interesado en saber cómo hacer esto en Ruby.
posible duplicado de [Ejecutar una biblioteca de Ruby desde la línea de comandos] (http://stackoverflow.com/questions/487086/run-a-ruby-library-from-the-command-line) - pero tomó algunos Google graves para encontrarlo! Me sorprende que esta pregunta no se haga con más frecuencia. –
Andrew: Lo mismo aquí. ¡Esperaba encontrar la respuesta en Stack Overflow ya! Gracias por su ayuda de nuevo. –