2011-01-05 3 views
9

Я хочу как-то попросить пользователя сказать flickr_id, flickr_apikey и т. Д., Но id 'будет очень счастлив сделать это под моей командой установки, поэтому он не станет таким длинным и тяжелым из-за всех аргументов.Интерактивное приглашение с помощью тора

так что-то вроде

$ thor PhotoonRails:install 
We're about to install your system.. blaa, blaa, blaa... 
We have to know you're Flick ID, get i here http://idgettr.com/ 
Flickr ID: {here you should type your id} 

We also has to know you're flick api key, make one here ... 
API Key: {here you should type your key} 

и так далее? У вас есть идея, и можно ли это сделать?

ответ

17

Действительно, он может!

Вы ищете ask.

Пример:

class PhotoonRails < Thor 
    desc "install", "install my cool stuff" 
    def install 
    say("We're about to install your system.. blaa, blaa, blaa... We have to know you're Flick ID, get i here http://idgettr.com") 
    flickr_id = ask("Flickr ID: ") 

    say("We also has to know you're flick api key, make one here ...") 
    flickr_api_key = ask("API Key: ") 

    # validate flickr creds 
    # do cool stuff 

    say("Complete!", GREEN) 
    end 
end 
+0

мой хороший! Так легко! Все работало круто, кроме .. сказать («Завершить!», ЗЕЛЕНЫЙ) - НО ВЫ ДОСТАТОЧНО! –

+0

Упс, попытался получить фантазию. Ну, рад, что это сработало! – hornairs

+0

вместо GREEN вы просто пишете «\ e [32m» :-)! –

2

Также можно задать цвет как символ

say "Caution!", :yellow 
ask 'Agreed?', :bold 
# Choose limit: 
ask "We have noticed.", :green, limited_to: ['proceed', 'exit'] 
# Default value (possible without :blue) 
ask 'Type app name', :blue, deafult: 'blog' 

Полный список доступных цветов для Thor, здесь: http://www.rubydoc.info/github/wycats/thor/Thor/Shell/Color

Смежные вопросы