Class: Baid::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/baid/config.rb

Constant Summary collapse

CONFIG_DIR =
File.expand_path("~/.baid")
CREDENTIALS_FILE =
File.join(CONFIG_DIR, "credentials")
ACTIVE_WORKSPACE_FILE =
File.join(CONFIG_DIR, "active_workspace")
PROJECT_CONFIG =
".baid/config.yml"

Class Method Summary collapse

Class Method Details

.load_active_workspaceObject



22
23
24
25
26
# File 'lib/baid/config.rb', line 22

def self.load_active_workspace
  return nil unless File.exist?(ACTIVE_WORKSPACE_FILE)

  File.read(ACTIVE_WORKSPACE_FILE).strip.then { |s| s.empty? ? nil : s }
end

.load_project_configObject



33
34
35
36
37
# File 'lib/baid/config.rb', line 33

def self.load_project_config
  return {} unless File.exist?(PROJECT_CONFIG)

  YAML.safe_load(File.read(PROJECT_CONFIG)) || {}
end

.load_tokenObject



10
11
12
13
14
# File 'lib/baid/config.rb', line 10

def self.load_token
  return nil unless File.exist?(CREDENTIALS_FILE)

  File.read(CREDENTIALS_FILE).strip
end

.save_active_workspace(slug) ⇒ Object



28
29
30
31
# File 'lib/baid/config.rb', line 28

def self.save_active_workspace(slug)
  FileUtils.mkdir_p(CONFIG_DIR)
  File.write(ACTIVE_WORKSPACE_FILE, slug)
end

.save_project_config(config) ⇒ Object



39
40
41
42
# File 'lib/baid/config.rb', line 39

def self.save_project_config(config)
  FileUtils.mkdir_p(File.dirname(PROJECT_CONFIG))
  File.write(PROJECT_CONFIG, config.to_yaml)
end

.save_token(token) ⇒ Object



16
17
18
19
20
# File 'lib/baid/config.rb', line 16

def self.save_token(token)
  FileUtils.mkdir_p(CONFIG_DIR)
  File.write(CREDENTIALS_FILE, token)
  FileUtils.chmod(0o600, CREDENTIALS_FILE)
end