class Bitbucket::Cli::Config

Public Class Methods

new() click to toggle source
# File lib/bitbucket/cli/config.rb, line 5
def initialize
  @default_config = {
    :accounts => [],
  }
  config_from_file
end

Public Instance Methods

add_account(name, password) click to toggle source
# File lib/bitbucket/cli/config.rb, line 12
def add_account name, password
  @config[:accounts] << {:name => name, :password => password}
  write_file
end
config_from_file() click to toggle source
# File lib/bitbucket/cli/config.rb, line 36
def config_from_file
  begin
    config = YAML::load(IO.read(path))
  rescue Errno::ENOENT
    $stderr.puts(:warning, "YAML configuration file couldn't be found. Using defaults.");
  rescue Psych::SyntaxError
    $stderr.puts(:warning, "YAML configuration file contains invalid syntax. Using defaults.");
  end
  configure(config)
end
configure(config=nil) click to toggle source
# File lib/bitbucket/cli/config.rb, line 51
def configure config=nil
  if config
    @config = config
  else
    @config = @default_config
  end
end
get_account(name='') click to toggle source
# File lib/bitbucket/cli/config.rb, line 17
def get_account name=''
  return nil if @config.nil?
  return nil if @config[:accounts].empty?
  return @config[:accounts].first if name == ''
  accounts = @config[:accounts].select {|a| a.has_key?(name)}
  return nil if accounts.empty?
  return accounts.first
end
path() click to toggle source
# File lib/bitbucket/cli/config.rb, line 32
def path
  File.join(ENV['HOME'], '.gitbb')
end
write(key, val) click to toggle source
# File lib/bitbucket/cli/config.rb, line 27
def write key, val
  @config[key] = val
  write_file
end
write_file() click to toggle source
# File lib/bitbucket/cli/config.rb, line 47
def write_file
  File.open(path, 'w') {|f| f.write @config.to_yaml }
end