lib/nilac/get_variables.rb in nilac-0.0.4.3.9.7.1 vs lib/nilac/get_variables.rb in nilac-0.0.4.3.9.8
- old
+ new
@@ -1,8 +1,9 @@
require_relative 'replace_strings'
require_relative 'read_file_line_by_line'
require_relative 'paranthesis_compactor'
+require_relative 'extract_paranthesis_contents'
def get_variables(input_file_contents, temporary_nila_file, *loop_variables)
variables = []
@@ -50,39 +51,72 @@
current_row = current_row.gsub("$@#)\n\n","\n")
current_row = current_row.rstrip + "\n"
- current_row_split = current_row.split("=")
+ if current_row.count("=") > 1
- for y in 0...current_row_split.length
+ if compact_paranthesis(current_row).count("=") > 1
- current_row_split[y] = current_row_split[y].strip
+ current_row_split = current_row.split("=")
+ current_row_split[0...-1].each do |split|
- end
+ variables << split.strip
- if current_row_split[0].include?("[") or current_row_split[0].include?("(")
+ end
- current_row_split[0] = current_row_split[0][0...current_row_split[0].index("[")]
+ else
- end
+ paranthesis_contents = extract_paranthesis_contents(current_row)
- current_row_split[0] = current_row_split[0].split(".",2)[0].strip if current_row_split[0].include?(".")
+ paranthesis_contents = paranthesis_contents.reject {|element| !replace_strings(element).include?("=")}
- if current_row_split[0].include?(" ")
+ paranthesis_contents.each do |element|
- variable_name = current_row_split[0].split
+ string_extract = element.strip[1...-1]
- variable_name = variable_name.join("_")
+ variables << string_extract.split("=").collect {|element| element.strip}[0]
- modified_file_contents[modified_file_contents.index(original_row)] = modified_file_contents[modified_file_contents.index(original_row)].gsub(current_row_split[0],variable_name)
+ end
+ if compact_paranthesis(current_row).include?("=")
+
+ variables << current_row.split("=",2).collect {|element| element.strip}[0]
+
+ end
+
+ end
+
else
- variable_name = current_row_split[0]
+ current_row_split = current_row.split("=")
+ current_row_split = current_row_split.collect {|element| element.strip}
+
+ if current_row_split[0].include?("[") or current_row_split[0].include?("(")
+
+ current_row_split[0] = current_row_split[0][0...current_row_split[0].index("[")]
+
+ end
+
+ current_row_split[0] = current_row_split[0].split(".",2)[0].strip if current_row_split[0].include?(".")
+
+ if current_row_split[0].include?(" ")
+
+ variable_name = current_row_split[0].split
+
+ variable_name = variable_name.join("_")
+
+ modified_file_contents[modified_file_contents.index(original_row)] = modified_file_contents[modified_file_contents.index(original_row)].gsub(current_row_split[0],variable_name)
+
+ else
+
+ variable_name = current_row_split[0]
+
+ end
+
end
variables << variable_name
end
@@ -143,8 +177,8 @@
line_by_line_contents = line_by_line_contents.collect { |element| element.gsub("greatequal", ">=") }
line_by_line_contents = line_by_line_contents.collect { |element| element.gsub("lessyequal", "<=") }
- return variables.uniq, line_by_line_contents
+ return variables.uniq.compact, line_by_line_contents
end
\ No newline at end of file