class AwesomeBot::Result
Attributes
dupes[RW]
links[R]
links_white_listed[R]
skip_dupe[RW]
status[RW]
white_listed[RW]
Public Class Methods
new(links, white_list_from_cli)
click to toggle source
# File lib/awesome_bot/result.rb, line 15 def initialize(links, white_list_from_cli) @links = links @w = white_list_from_cli return if @w.nil? @links_white_listed, @links = links.partition { |u| AwesomeBot.white_list @w, u } end
Public Instance Methods
statuses_issues(options=nil)
click to toggle source
# File lib/awesome_bot/result.rb, line 24 def statuses_issues(options=nil) options = { 'timeout'=>false, 'ssl'=>false, 'redirect'=>false } if options.nil? s = status.select { |x| x['status'] != 200 } if options['timeout'] s = s.reject do |x| ( (x['error'].message == 'Net::ReadTimeout') || (x['error'].message == 'execution expired') || (x['error'].message.include? 'timed out') ) unless x['error'].nil? end end if options['redirect'] s = s.reject { |x| AwesomeBot.status_is_redirected? x['status'] } end if options['ssl'] s = s.reject do |x| ( (x['error'].message.include? 'server certificate') || (x['error'].message.include? 'SSL_connect') ) unless x['error'].nil? end end unless options['errors'].nil? options['errors'].each do |c| s = s.reject { |x| x['status']==c.to_i } end end s end
success(options)
click to toggle source
# File lib/awesome_bot/result.rb, line 58 def success(options) success_dupe && success_links(options) end
success_dupe()
click to toggle source
# File lib/awesome_bot/result.rb, line 62 def success_dupe return true if skip_dupe links.uniq.count == links.count end
success_links(options)
click to toggle source
# File lib/awesome_bot/result.rb, line 67 def success_links(options) statuses_issues(options).count==0 end
white_listing()
click to toggle source
# File lib/awesome_bot/result.rb, line 71 def white_listing !@w.nil? end
write(filename)
click to toggle source
# File lib/awesome_bot/result.rb, line 75 def write(filename) require 'json' r = write_artifacts File.open(filename, 'w') { |f| f.write JSON.pretty_generate(r) } end
write_artifacts()
click to toggle source
# File lib/awesome_bot/result.rb, line 82 def write_artifacts require 'date' { 'date'=>Time.now, 'links'=>@links, 'issues'=>statuses_issues, 'all'=>status } end