Class: Harbinger::ConfigManager
- Inherits:
-
Object
- Object
- Harbinger::ConfigManager
- Defined in:
- lib/harbinger/config_manager.rb
Instance Method Summary collapse
- #get_project(name) ⇒ Object
-
#initialize(config_dir: default_config_dir) ⇒ ConfigManager
constructor
A new instance of ConfigManager.
- #list_projects ⇒ Object
- #project_count ⇒ Object
- #remove_project(name) ⇒ Object
- #save_project(name:, path:, versions: {}) ⇒ Object
Constructor Details
#initialize(config_dir: default_config_dir) ⇒ ConfigManager
Returns a new instance of ConfigManager.
9 10 11 12 13 |
# File 'lib/harbinger/config_manager.rb', line 9 def initialize(config_dir: default_config_dir) @config_dir = config_dir @config_file = File.join(@config_dir, "config.yml") FileUtils.mkdir_p(@config_dir) end |
Instance Method Details
#get_project(name) ⇒ Object
32 33 34 |
# File 'lib/harbinger/config_manager.rb', line 32 def get_project(name) list_projects[name] end |
#list_projects ⇒ Object
27 28 29 30 |
# File 'lib/harbinger/config_manager.rb', line 27 def list_projects config = load_config config["projects"] || {} end |
#project_count ⇒ Object
44 45 46 |
# File 'lib/harbinger/config_manager.rb', line 44 def project_count list_projects.size end |
#remove_project(name) ⇒ Object
36 37 38 39 40 41 42 |
# File 'lib/harbinger/config_manager.rb', line 36 def remove_project(name) config = load_config return unless config["projects"] config["projects"].delete(name) write_config(config) end |
#save_project(name:, path:, versions: {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/harbinger/config_manager.rb', line 15 def save_project(name:, path:, versions: {}) config = load_config config["projects"] ||= {} config["projects"][name] = { "path" => path, "last_scanned" => Time.now.iso8601 }.merge(versions.transform_keys(&:to_s)) write_config(config) end |