Class: MultiRepo::ConfigFile
- Inherits:
-
Object
- Object
- MultiRepo::ConfigFile
- Defined in:
- lib/multirepo/files/config-file.rb
Constant Summary collapse
- FILENAME =
".multirepo"
Instance Method Summary collapse
- #add_entry(entry) ⇒ Object
- #ensure_access(file, error_message, &check) ⇒ Object
- #entry_exists?(entry) ⇒ Boolean
- #exists? ⇒ Boolean
- #file ⇒ Object
- #filename ⇒ Object
-
#initialize(path) ⇒ ConfigFile
constructor
A new instance of ConfigFile.
- #load_entries ⇒ Object
- #remove_entry(entry) ⇒ Object
- #save_entries(entries) ⇒ Object
Constructor Details
#initialize(path) ⇒ ConfigFile
Returns a new instance of ConfigFile.
10 11 12 |
# File 'lib/multirepo/files/config-file.rb', line 10 def initialize(path) @path = path end |
Instance Method Details
#add_entry(entry) ⇒ Object
40 41 42 |
# File 'lib/multirepo/files/config-file.rb', line 40 def add_entry(entry) save_entries(load_entries.push(entry)) end |
#ensure_access(file, error_message, &check) ⇒ Object
48 49 50 |
# File 'lib/multirepo/files/config-file.rb', line 48 def ensure_access(file, , &check) fail MultiRepoException, if File.exists?(file) && !check.call(File.stat(file)) end |
#entry_exists?(entry) ⇒ Boolean
36 37 38 |
# File 'lib/multirepo/files/config-file.rb', line 36 def entry_exists?(entry) load_entries.any? { |e| e == entry } end |
#exists? ⇒ Boolean
22 23 24 |
# File 'lib/multirepo/files/config-file.rb', line 22 def exists? File.exist?(file) end |
#file ⇒ Object
14 15 16 |
# File 'lib/multirepo/files/config-file.rb', line 14 def file File.join(@path, FILENAME) end |
#filename ⇒ Object
18 19 20 |
# File 'lib/multirepo/files/config-file.rb', line 18 def filename FILENAME end |
#load_entries ⇒ Object
26 27 28 29 |
# File 'lib/multirepo/files/config-file.rb', line 26 def load_entries ensure_access(file, "Can't read config file (permissions)") { |stat| stat.readable? } Psych.load(File.read(file)) end |
#remove_entry(entry) ⇒ Object
44 45 46 |
# File 'lib/multirepo/files/config-file.rb', line 44 def remove_entry(entry) save_entries(load_entries.delete_if { |e| e == entry }) end |
#save_entries(entries) ⇒ Object
31 32 33 34 |
# File 'lib/multirepo/files/config-file.rb', line 31 def save_entries(entries) ensure_access(file, "Can't write config file (permissions)") { |stat| stat.writable? } File.write(file, Psych.dump(entries)) end |