class Crystallize::SettingsManager
Public Instance Methods
get()
click to toggle source
# File lib/crystallize/settings_manager.rb, line 6 def get read || write end
read()
click to toggle source
# File lib/crystallize/settings_manager.rb, line 21 def read return nil unless File.exist?(path) settings = YAML.load_file(path) return nil unless settings && settings['name'] && settings['email'] && settings['github_username'] settings end
write()
click to toggle source
# File lib/crystallize/settings_manager.rb, line 10 def write puts "Welcome to Crystallize!\nPlease enter some settings for your gems:" settings = prompt_settings settings['version'] = Crystallize::VERSION File.open(path, 'w') do |file| YAML.dump(settings, file) end puts "Thanks! Saved your settings in ~/.crystallize.yml" settings end
Private Instance Methods
path()
click to toggle source
# File lib/crystallize/settings_manager.rb, line 49 def path @path ||= Pathname.new(`echo ~`.strip).join('.crystallize.yml') end
prompt_setting(name)
click to toggle source
# File lib/crystallize/settings_manager.rb, line 38 def prompt_setting(name) print "Your #{name}: " value = nil loop do value = gets.chomp break if !value.empty? puts "Please enter your #{name}!" end value end
prompt_settings()
click to toggle source
# File lib/crystallize/settings_manager.rb, line 30 def prompt_settings settings = {} settings['name'] = prompt_setting('name') settings['email'] = prompt_setting('email') settings['github_username'] = prompt_setting('GitHub username') settings end