Class: RubyCoded::UserConfig

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

Overview

This class is used to manage the users configurations for this gem

Constant Summary collapse

CONFIG_DIR =
File.join(Dir.home, ".ruby_coded").freeze
CONFIG_PATH =
File.join(CONFIG_DIR, "config.yaml").freeze

Instance Method Summary collapse

Constructor Details

#initialize(config_path: CONFIG_PATH) ⇒ UserConfig

Returns a new instance of UserConfig.



12
13
14
15
16
# File 'lib/ruby_coded/config/user_config.rb', line 12

def initialize(config_path: CONFIG_PATH)
  @config_path = config_path
  @config_dir = File.dirname(@config_path)
  @user_config = find_or_create_config_file
end

Instance Method Details

#directory_trusted?(dir = Dir.pwd) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
38
# File 'lib/ruby_coded/config/user_config.rb', line 35

def directory_trusted?(dir = Dir.pwd)
  trusted = get_config("trusted_directories") || []
  trusted.include?(resolve_path(dir))
end

#full_configObject



18
19
20
# File 'lib/ruby_coded/config/user_config.rb', line 18

def full_config
  @user_config
end

#get_config(key) ⇒ Object



22
23
24
# File 'lib/ruby_coded/config/user_config.rb', line 22

def get_config(key)
  full_config["user_config"][key]
end

#saveObject



31
32
33
# File 'lib/ruby_coded/config/user_config.rb', line 31

def save
  File.write(@config_path, full_config.to_yaml)
end

#set_config(key, value) ⇒ Object



26
27
28
29
# File 'lib/ruby_coded/config/user_config.rb', line 26

def set_config(key, value)
  full_config["user_config"][key] = value
  File.write(@config_path, full_config.to_yaml)
end

#trust_directory!(dir = Dir.pwd) ⇒ Object



40
41
42
43
44
45
46
47
# File 'lib/ruby_coded/config/user_config.rb', line 40

def trust_directory!(dir = Dir.pwd)
  trusted = get_config("trusted_directories") || []
  resolved = resolve_path(dir)
  return if trusted.include?(resolved)

  trusted << resolved
  set_config("trusted_directories", trusted)
end