Module: Idid::Interactive
- Defined in:
- lib/idid/interactive.rb
Class Method Summary collapse
- .ask(question) ⇒ Object
- .create_config ⇒ Object
- .fail(text = 'Failed!') ⇒ Object
- .input_or_default(default) ⇒ Object
- .status(text) ⇒ Object
- .user_config ⇒ Object
- .user_config_from_key(key, text, default, config = nil) ⇒ Object
Class Method Details
.ask(question) ⇒ Object
60 61 62 |
# File 'lib/idid/interactive.rb', line 60 def ask(question) puts "\e[32m#{question}\e[0m" end |
.create_config ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/idid/interactive.rb', line 5 def create_config status "Please take a moment to create a new configuration.." config = user_config config['delivery'] ||= {} user_config_from_key 'account_type', "What kind of iDoneThis account do you have? (personal|team)", 'personal', config if config["account_type"] == 'team' user_config_from_key 'team', "What is the name of your iDoneThis team? (check the URL <team>.idonethis.com).", nil, config else config["team"] = nil end user_config_from_key 'email', "What is your associated email address for this iDoneThis account?", nil, config user_config_from_key 'method', "How do you want to send emails to iDoneThis? (smtp|sendmail|exim)", 'smtp', config['delivery'] case config['delivery']['method'] when 'smtp' = Idid::Configuration::SMTP_DEFAULTS when 'exim' = Idid::Configuration::EXIM_DEFAULTS else = {} end config['delivery']['options'] ||= {} .each do |key, default| user_config_from_key key, key.to_s, default, config['delivery']['options'] end Idid::Configuration.new config end |
.fail(text = 'Failed!') ⇒ Object
56 57 58 |
# File 'lib/idid/interactive.rb', line 56 def fail(text = 'Failed!') puts "\e[31m#{text}\e[0m" end |
.input_or_default(default) ⇒ Object
64 65 66 67 |
# File 'lib/idid/interactive.rb', line 64 def input_or_default(default) val = STDIN.gets.chomp val.size == 0 ? default : val end |
.status(text) ⇒ Object
52 53 54 |
# File 'lib/idid/interactive.rb', line 52 def status(text) puts "\e[36m#{text}\e[0m" end |
.user_config ⇒ Object
48 49 50 |
# File 'lib/idid/interactive.rb', line 48 def user_config Idid::Configuration.read_config || {} end |
.user_config_from_key(key, text, default, config = nil) ⇒ Object
38 39 40 41 42 43 44 45 46 |
# File 'lib/idid/interactive.rb', line 38 def user_config_from_key(key, text, default, config = nil) config ||= user_config config[key.to_s] ||= begin ask "#{text} [#{default}]:" input_or_default default end end |