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