2011-07-03 12 views
5

¿Es posible crear un ejecutable Ruby basado en Thor que acepte espacios de nombres? Para permitir, por ejemplo, lo siguiente de la línea de comandos: ./thorfile greet:formalEjecutable basado en Ruby Thor con espacios de nombres

Dada Tengo el siguiente thorfile:

#!/usr/bin/env ruby 

require 'rubygems' 
require 'thor' 

class TalkTasks < Thor 
    namespace  "talk" 

    desc  "greet", "says hello" 
    def greet 
    puts "Hello!" 
    end 

    class Formal < Thor 
    namespace "talk:formal" 

    desc "greet", "says a formal hello" 
    def greet 
     puts "Good evening!" 
    end 
    end 

end 

TalkTasks.start 

Este thorfile proporciona las siguientes tareas (thor -T):

thor talk:formal:greet # says a formal hello 
thor talk:greet   # says hello 

que pueda también utilice thorfile directamente como un ejecutable:

./thorfile greet 

Que muestra:

¡Hola!

¿Cómo puedo obtener ./thorfile formal:greet (o algo similar) para ejecutar el método de saludo en la clase formal, con el fin de pantalla:

Buenas noches!

+0

Tome un vistazo a esta respuesta: http://stackoverflow.com/questions/5663519/namespacing-thor-commands-in-a-standalone-ruby-executable –

Respuesta

0

Cambio del espacio de nombres para Formal clase

class Formal < Thor 
    namespace "formal" 
    ... 
end 

Has anidado las clases por lo que el nido de espacios de nombres. Si los separa de lo que puede hacer talk:formal no tiene tiempo para probarlo. Deberia trabajar.

Cuestiones relacionadas