lib/aipim-rails/parser.rb in aipim-rails-0.0.41 vs lib/aipim-rails/parser.rb in aipim-rails-0.0.139

- old
+ new

@@ -1,86 +1,75 @@ require 'aipim-rails/parser_helper' module Parser def self.init(filename) - read_links(filename) - read_content(filename) + parser(filename) end def self.read_line(file) line = file.gets - line = line.gsub("\n", "") unless line.nil? + line = line.gsub("\n", "").split(' ').join(' ') unless line.nil? line end - def self.read_links(filename) - cenario_counter = 1 - output = File.new("aipim/markdown/#{filename}.md", "w") - file = File.new("features/#{filename}", "r") - while(line = read_line(file)) - if ParserHelper.is_cenario?(line) - output.puts "[#{cenario_counter}. #{ParserHelper.get_cenario(line)}](#) " - cenario_counter = cenario_counter+1 - end - end - file.close - output.close - end + def self.parser(filename) - def self.read_content(filename) + file = File.new("features/"+filename, "r") - file = File.new("features/#{filename}", "r") - output = File.new("aipim/markdown/#{filename}.md", "a") + screenshots = %x[\ls aipim/screenshots/#{filename}].split("\n") - screenshot = false - cenario_counter = 1 - result = %x[ls aipim/screenshots/#{filename}].split("\n") - counter_screenshot = 0 + is_screenshot = false; scenario_counter = 1; screenshot_counter = 0 + feature = []; feature_name = nil; feature_description = [] + context_name = nil; context_description = [] + scenarios = []; scenario_name = nil; scenario_steps = []; screenshot = nil - output.puts "" line = read_line(file) while (line) - if !ParserHelper.is_comando?(line) && !(line.gsub(" ", "") == "") - output.puts "#{line} " + if ParserHelper.is_marcacao?(line) && ParserHelper.is_screenshot?(line) + is_screenshot = true line = read_line(file) - - elsif ParserHelper.is_marcacao?(line) - screenshot = true - line = read_line(file) elsif ParserHelper.is_funcionalidade?(line) - output.puts "# #{ParserHelper.get_funcionalidade(line)} #" - line = read_line(file) + feature_name = ParserHelper.get_funcionalidade(line) + while ((line = read_line(file)) && !ParserHelper.is_comando?(line)) + feature_description << line if !(line.gsub(" ", "") == "") + end + elsif ParserHelper.is_contexto?(line) + while ((line = read_line(file)) && !ParserHelper.is_comando?(line)) + context_description << line if !(line.gsub(" ", "") == "") + end + elsif ParserHelper.is_cenario?(line) - output.puts "> ## #{cenario_counter}. #{ParserHelper.get_cenario(line)} ##" - cenario_counter = cenario_counter+1 + scenario_name = ParserHelper.get_cenario(line) while ((line = read_line(file)) && !ParserHelper.is_comando?(line)) - if !(line.gsub(" ", "") == "") - output.puts "> #{line} " - end + scenario_steps << line if !(line.gsub(" ", "") == "") end - if screenshot - output.puts '> [![Alt text](../screenshots/'+filename+'/'+result[counter_screenshot].to_s+')](../screenshots/'+filename+'/'+result[counter_screenshot].to_s+') ' - counter_screenshot = counter_screenshot+1 - screenshot = false + if is_screenshot + screenshot = screenshots[screenshot_counter].to_s + screenshot_counter = screenshot_counter+1 + is_screenshot = false end - output.puts '' - output.puts '<!-- -->' - output.puts '' + scenarios << {name: scenario_name, steps: scenario_steps, screenshot: screenshot} + scenario_steps = [] + screenshot = nil - elsif ParserHelper.is_contexto?(line) - output.puts "## Contexto : #{ParserHelper.get_contexto(line)} ##" - line = read_line(file) - else line = read_line(file) end end file.close - output.close + + feature = { + feature_name: feature_name, + feature_description: feature_description, + context_name: context_name, + context_description: context_description, + scenarios: scenarios, + filename: filename + } end end