Class: Duse::CLIConfig

Inherits:
Duse::Client::Config show all
Defined in:
lib/duse/cli/cli_config.rb

Instance Attribute Summary

Attributes inherited from Duse::Client::Config

#settings

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Duse::Client::Config

#initialize, #to_h, #token, #token=, #uri, #uri=

Constructor Details

This class inherits a constructor from Duse::Client::Config

Class Method Details

.config_dirObject



40
41
42
# File 'lib/duse/cli/cli_config.rb', line 40

def self.config_dir
  File.join Dir.home, '.config', 'duse'
end

.config_fileObject



36
37
38
# File 'lib/duse/cli/cli_config.rb', line 36

def self.config_file
  File.join config_dir, 'config.yml'
end

.loadObject



22
23
24
25
26
# File 'lib/duse/cli/cli_config.rb', line 22

def self.load
  config = YAML.load load_config_file
  return {} unless config.is_a? Hash
  config
end

.save(config) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/duse/cli/cli_config.rb', line 28

def self.save(config)
  FileUtils.mkdir_p config_dir
  File.open(config_file, 'w') do |file|
    file.write config.to_h.to_yaml
    file.chmod 0600
  end
end

Instance Method Details

#private_key_file_for(user) ⇒ Object



44
45
46
# File 'lib/duse/cli/cli_config.rb', line 44

def private_key_file_for(user)
  File.join self.class.config_dir, user.username
end

#private_key_for(user) ⇒ Object



10
11
12
13
14
# File 'lib/duse/cli/cli_config.rb', line 10

def private_key_for(user)
  private_key_filename = private_key_file_for user
  fail PrivateKeyMissing unless File.exists? private_key_filename
  OpenSSL::PKey::RSA.new File.read private_key_filename
end

#save_private_key_for(user, private_key) ⇒ Object



16
17
18
19
20
# File 'lib/duse/cli/cli_config.rb', line 16

def save_private_key_for(user, private_key)
  File.open(private_key_file_for(user), 'w') do |file|
    file.write private_key
  end
end