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

Returns:

  • (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
# File 'lib/anjea_backup/inifile.rb', line 19

def read_ini_file filename
  ini_objs = []
  file_contents = File.readlines(filename)
  rescue Errno::ENOENT
    raise NoIniFileError, "#{filename} config file error"
  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