class OnlyofficeRspecResultParser::Example
rspec example data
Attributes
backtrace[RW]
code[RW]
duration[RW]
log[RW]
message[RW]
page_url[RW]
@return [String] link to page url
passed[RW]
screenshot[RW]
@return [String] link to screenshot
text[RW]
Public Class Methods
new(data)
click to toggle source
# File lib/onlyoffice_rspec_result_parser/rspec_result_parser/example.rb, line 12 def initialize(data) fetch_data(data) @page_url = fetch_page_url @screenshot = fetch_screenshot end
Private Instance Methods
fetch_data(data)
click to toggle source
# File lib/onlyoffice_rspec_result_parser/rspec_result_parser/example.rb, line 20 def fetch_data(data) @text = data.css('span').first.text @passed = data[:class].split[1] case @passed when 'failed' fetch_failed_data(data) when 'passed' @duration = data.css('span')[1].text end end
fetch_failed_data(data)
click to toggle source
Fetch data for failed case @param data [Nokogiri::XML::Element] element to parse
# File lib/onlyoffice_rspec_result_parser/rspec_result_parser/example.rb, line 66 def fetch_failed_data(data) @duration = data.css('span')[1].text @message = format_link(data.css('div.message').text) @backtrace = data.css('div.backtrace').text @code = data.css('code').children.to_s end
fetch_page_url()
click to toggle source
# File lib/onlyoffice_rspec_result_parser/rspec_result_parser/example.rb, line 31 def fetch_page_url return nil unless @message message_url_line = @message.match(/^.*Page address:.*/) return nil unless message_url_line message_url_line.to_s.match(/'.*'/).to_s.delete("'") end
fetch_screenshot()
click to toggle source
# File lib/onlyoffice_rspec_result_parser/rspec_result_parser/example.rb, line 40 def fetch_screenshot return nil unless @message screenshot_line = @message.match(/^.*Error screenshot:.*/) return nil unless screenshot_line screenshot_line.to_s.match(/'.*?'/).to_s.delete("'") end
format_link(text)
click to toggle source
Method make all links in text clickable @param [String] text current text @return [String] text with clickable link
# File lib/onlyoffice_rspec_result_parser/rspec_result_parser/example.rb, line 52 def format_link(text) links = URI.extract(text) links.each do |current_link| if current_link.end_with?('png', 'jpg') text.gsub!(current_link, link_url_50_percent(current_link)) elsif current_link.start_with?('http') text.gsub!(current_link, link_url(current_link)) end end text end
link_url(link)
click to toggle source
@param [String] link to insert @return [String] result link
# File lib/onlyoffice_rspec_result_parser/rspec_result_parser/example.rb, line 81 def link_url(link) "<a href='#{link}'>#{link}</a>" end
link_url_50_percent(link)
click to toggle source
@param [String] link to insert @return [String] result link with 50 percent size
# File lib/onlyoffice_rspec_result_parser/rspec_result_parser/example.rb, line 75 def link_url_50_percent(link) "<a href='#{link}'><img src='#{link}' height='50%' width='50%'></a>" end