lib/relevance/tarantula/result.rb in relevance-tarantula-0.2.0 vs lib/relevance/tarantula/result.rb in relevance-tarantula-0.2.1

- old
+ new

@@ -9,37 +9,47 @@ hash.each do |k,v| raise ArgumentError, k unless HASHABLE_ATTRS.member?(k) self.instance_variable_set("@#{k}", v) end end + def short_description [method,url].join(" ") end + def sequence_number @sequence_number ||= (self.class.next_number += 1) end + def file_name "#{sequence_number}.html" end + def code response && response.code end + def body response && response.body end + def full_url "#{DEFAULT_LOCALHOST}#{url}" end + ALLOW_NNN_FOR = /^allow_(\d\d\d)_for$/ + class << self attr_accessor :next_number + def handle(result) retval = result.dup retval.success = successful?(result.response) || can_skip_error?(result) retval.description = "Bad HTTP Response" unless retval.success retval end + def success_codes %w{200 201 302 401} end # allow_errors_for is a hash @@ -49,18 +59,19 @@ def can_skip_error?(result) coll = allow_errors_for[result.code] return false unless coll coll.any? {|item| item === result.url} end + def successful?(response) success_codes.member?(response.code) end + def method_missing(meth, *args) super unless ALLOW_NNN_FOR =~ meth.to_s (allow_errors_for[$1] ||= []).push(*args) end end + self.allow_errors_for = {} self.next_number = 0 - - -end \ No newline at end of file +end