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