Top Level Namespace
Defined Under Namespace
Modules: AnjeaBackup
Classes: NoIniFileError
Instance Method Summary
collapse
Instance Method Details
#get_category(line) ⇒ Object
9
10
11
12
|
# File 'lib/anjea_backup/inifile.rb', line 9
def get_category line
match_data = /(\[)([\w-]*)(\])/.match line
match_data.captures[1]
end
|
#get_kv(line) ⇒ Object
14
15
16
17
|
# File 'lib/anjea_backup/inifile.rb', line 14
def get_kv line
match_data = /([A-Za-z0-9]*) *= *([A-Za-z0-9\/ .\-_]*)/.match line
match_data.captures
end
|
#is_head?(line) ⇒ Boolean
4
5
6
7
|
# File 'lib/anjea_backup/inifile.rb', line 4
def is_head? line
match_data = /(\[)([\w-]*)(\])/.match line
match_data
end
|
#read_ini_file(filename) ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/anjea_backup/inifile.rb', line 19
def read_ini_file filename
ini_objs = []
begin
file_contents = File.readlines(filename)
rescue Errno::ENOENT
raise NoIniFileError, "#{filename} config file error"
end
ini_obj = {}
file_contents.each do |line|
next if(line.strip.empty? || line.start_with?("#"))
if is_head? line
ini_objs << ini_obj if !ini_obj.empty?
ini_obj = {}
ini_obj[:name] = get_category line
next
end
kv = get_kv line
ini_obj[kv[0]] = kv[1]
end
ini_objs << ini_obj
ini_objs
end
|