Czy jest możliwe utworzenie pliku Ruby w języku Rub, który akceptuje przestrzenie nazw? Aby umożliwić, na przykład, następujące z linii poleceń: ./thorfile greet:formal
Plik wykonywalny Ruby Thor z przestrzeniami nazw
Biorąc Mam następujący 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
Ten thorfile udostępnia następujące zadania (thor -T
):
thor talk:formal:greet # says a formal hello
thor talk:greet # says hello
mogę również użyj thorfile bezpośrednio jako plik wykonywalny:
./thorfile greet
Która wyświetla:
Witam!
Jak mogę uzyskać ./thorfile formal:greet
(lub coś podobnego), aby wykonać metodę powitalną w formalnym klasie, w celu wyświetlania:
Dobry wieczór!
Spójrz na to odpowiedź: http://stackoverflow.com/questions/5663519/namespacing-thor-commands-in-a-standalone-ruby-executable –