class BConv::ConfigParser
Public Class Methods
new(filename, projToConvert, debugMode)
click to toggle source
# File lib/ConfigParser.rb, line 11 def initialize(filename, projToConvert, debugMode) @filename = filename @projToConvert = projToConvert @debugMode = debugMode end
Public Instance Methods
getKeyValuePairs(line,hash,lineNumber)
click to toggle source
# File lib/ConfigParser.rb, line 77 def getKeyValuePairs(line,hash,lineNumber) arr = [] line.gsub!('\\','/') arr = line.split("=") if (arr.length == 2) if arr[0].strip[0] != "#" comPos = arr[1].index("#") arr[1] = arr[1][0..comPos-1] if comPos != nil hash.store(arr[0].strip,arr[1].strip) raise "Error: Parameter in #{File.basename(@filename)} from Mapping in line #{lineNumber} is missing!" if arr[0].strip == "" end elsif arr[1] == "" hash.store(arr[0].strip,"") end return hash end
readConfig()
click to toggle source
# File lib/ConfigParser.rb, line 17 def readConfig begin mapping = [] mappings = [] bracket = false i=0 j=0 File.open(@filename) do |l| while(line = l.gets) != nil if line.include?("{") mapping.push({}) i = i+1 mapping[i] = mapping[i-1].clone bracket = true lineNumber = l.lineno elsif line.include?("}") if bracket == true if @projToConvert != "" && @projToConvert != mapping[i]['Proj2Convert'] #do nothing and continue bracket = false elsif @projToConvert != "" && @projToConvert == mapping[i]['Proj2Convert'] mappings.push({}) mappings[j] = mapping[i].clone break else mappings.push({}) mappings[j] = mapping[i].clone bracket = false end if mappings.length != 0 mappings[j].each do |key,value| raise "Error: Workspace parameter from Mapping in line #{lineNumber} is missing!" if mappings[j].has_key?('Workspace') == false raise "Error: MainProj parameter from Mapping in line #{lineNumber} is missing!" if mappings[j].has_key?('MainProj') == false raise "Error: BuildConfig parameter from Mapping in line #{lineNumber} is missing!" if mappings[j].has_key?('BuildConfig') == false raise "Error: Proj2Convert parameter from Mapping in line #{lineNumber} is missing!" if mappings[j].has_key?('Proj2Convert') == false raise "Error: OutputFile parameter from Mapping in line #{lineNumber} is missing!" if mappings[j].has_key?('OutputFile') == false raise "Error: TemplateFile parameter from Mapping in line #{lineNumber} is missing!" if mappings[j].has_key?('TemplateFile') == false end j = j+1 end end mapping.delete_at(i) i = i-1 bracket = false else getKeyValuePairs(line,mapping[i],lineNumber) end end replaceWorkspaceElmInPath(mappings) end return 0, mappings rescue Exception => e puts e.message #puts e.back_trace if @debugMode == true abort end end
replaceWorkspaceElmInPath(mappings)
click to toggle source
# File lib/ConfigParser.rb, line 95 def replaceWorkspaceElmInPath(mappings) for j in 0..(mappings.length-1) workspaceArr = Util.strToArray('Workspace',mappings[j]) mappings[j].each do |key,value| match = value.match(/Workspace\s*\[\s*(\d+)\s*\]/) if match != nil value.gsub!(/Workspace\s*\[\s*(\d+)\s*\]/,workspaceArr[match[1].to_i]) end end end end