Class: Star::Dlp::Config

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

Constant Summary collapse

DEFAULT_CONFIG_DIR =
File.join(Dir.home, ".star-dlp")
DEFAULT_CONFIG_FILE =
File.join(DEFAULT_CONFIG_DIR, "config.json")
DEFAULT_STARS_DIR =
File.join(DEFAULT_CONFIG_DIR, "stars")
DEFAULT_JSON_DIR =
File.join(DEFAULT_STARS_DIR, "json")
DEFAULT_MARKDOWN_DIR =
File.join(DEFAULT_STARS_DIR, "markdown")

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Config

Returns a new instance of Config.



17
18
19
20
21
22
23
24
# File 'lib/star/dlp/config.rb', line 17

def initialize(options = {})
  @github_token = options[:github_token]
  @output_dir = options[:output_dir] || DEFAULT_STARS_DIR
  @json_dir = options[:json_dir] || DEFAULT_JSON_DIR
  @markdown_dir = options[:markdown_dir] || DEFAULT_MARKDOWN_DIR
  
  create_directories
end

Instance Attribute Details

#github_tokenObject

Returns the value of attribute github_token.



15
16
17
# File 'lib/star/dlp/config.rb', line 15

def github_token
  @github_token
end

#json_dirObject

Returns the value of attribute json_dir.



15
16
17
# File 'lib/star/dlp/config.rb', line 15

def json_dir
  @json_dir
end

#markdown_dirObject

Returns the value of attribute markdown_dir.



15
16
17
# File 'lib/star/dlp/config.rb', line 15

def markdown_dir
  @markdown_dir
end

#output_dirObject

Returns the value of attribute output_dir.



15
16
17
# File 'lib/star/dlp/config.rb', line 15

def output_dir
  @output_dir
end

Class Method Details

.loadObject



26
27
28
29
30
31
# File 'lib/star/dlp/config.rb', line 26

def self.load
  return new unless File.exist?(DEFAULT_CONFIG_FILE)
  
  config_data = JSON.parse(File.read(DEFAULT_CONFIG_FILE), symbolize_names: true)
  new(config_data)
end

Instance Method Details

#saveObject



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/star/dlp/config.rb', line 33

def save
  FileUtils.mkdir_p(DEFAULT_CONFIG_DIR) unless Dir.exist?(DEFAULT_CONFIG_DIR)
  
  config_data = {
    github_token: @github_token,
    output_dir: @output_dir,
    json_dir: @json_dir,
    markdown_dir: @markdown_dir
  }
  
  File.write(DEFAULT_CONFIG_FILE, JSON.pretty_generate(config_data))
end