Class: Raykit::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/raykit/configuration.rb

Constant Summary collapse

CONFIG_DIR =

Define a subdirectory and filename for the config file in a cross-platform manner.

File.join(Dir.home, ".config", "raykit")
CONFIG_FILE =
File.join(CONFIG_DIR, "config.json")

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize ⇒ Configuration

Returns a new instance of Configuration.



11
12
13
14
15
16
17
18
# File 'lib/raykit/configuration.rb', line 11

def initialize
  if File.exist?(CONFIG_FILE)
    load_configuration
  else
    set_default_configuration
    save_configuration # Save the default configuration if no configuration file exists.

  end
end

Instance Attribute Details

#auto_setup ⇒ Object

Returns the value of attribute auto_setup.



5
6
7
# File 'lib/raykit/configuration.rb', line 5

def auto_setup
  @auto_setup
end

#backup_dir ⇒ Object

Returns the value of attribute backup_dir.



5
6
7
# File 'lib/raykit/configuration.rb', line 5

def backup_dir
  @backup_dir
end

#root_dir ⇒ Object

Returns the value of attribute root_dir.



5
6
7
# File 'lib/raykit/configuration.rb', line 5

def root_dir
  @root_dir
end

Instance Method Details

#load_configuration ⇒ Object



20
21
22
23
24
25
# File 'lib/raykit/configuration.rb', line 20

def load_configuration
  config_data = JSON.parse(File.read(CONFIG_FILE))
  @root_dir = config_data["root_dir"]
  @auto_setup = config_data["auto_setup"]
  @backup_dir = config_data["backup_dir"]
end

#save_configuration ⇒ Object



33
34
35
36
37
38
39
40
41
42
# File 'lib/raykit/configuration.rb', line 33

def save_configuration
  # Create the config directory if it doesn't exist.

  FileUtils.mkdir_p(CONFIG_DIR) unless Dir.exist?(CONFIG_DIR)

  File.write(CONFIG_FILE, {
    root_dir: @root_dir,
    auto_setup: @auto_setup,
    backup_dir: @backup_dir,
  }.to_json)
end

#set_default_configuration ⇒ Object



27
28
29
30
31
# File 'lib/raykit/configuration.rb', line 27

def set_default_configuration
  @root_dir = ""
  @auto_setup = false
  @backup_dir = "backup"
end

#to_s ⇒ Object



44
45
46
# File 'lib/raykit/configuration.rb', line 44

def to_s
  "Root Directory: #{@root_dir}\nAuto Setup: #{@auto_setup}\nBackup Directory: #{@backup_dir}"
end