class Aranea::Failure
TODO: Look into moving whitelisting of consumer hostnames to here and allowing it to be configurable via the consuming application
Attributes
expiration_date[RW]
Public Class Methods
create(params)
click to toggle source
# File lib/aranea/failure_repository.rb, line 13 def create(params) failure = retrieve_failure raise FailureFailure, "A failure is already in progress (#{failure})." if failure failure = new(params) Repository.store(failure, params[:minutes].minutes) failure end
current()
click to toggle source
# File lib/aranea/failure_repository.rb, line 9 def current retrieve_failure || NullFailure.new end
new(params)
click to toggle source
# File lib/aranea/failure_repository.rb, line 29 def initialize(params) @pattern = Regexp.new(params[:pattern]) @response = params[:failure] @response_hash = params[:response_hash] || {} @response_headers_hash = params[:response_headers_hash] || {} end
retrieve_failure()
click to toggle source
# File lib/aranea/failure_repository.rb, line 22 def retrieve_failure Repository.get end
Public Instance Methods
respond!()
click to toggle source
# File lib/aranea/failure_repository.rb, line 40 def respond! case @response when "timeout" raise ::Faraday::TimeoutError, "Fake failure from Aranea" when "ssl_error" raise ::Faraday::SSLError, "Fake failure from Aranea" else ::Faraday::Response.new( status: @response.to_i, body: @response_hash.to_json, response_headers: @response_headers_hash ) end end
should_fail?(request_env, _app)
click to toggle source
# File lib/aranea/failure_repository.rb, line 36 def should_fail?(request_env, _app) @pattern.match(request_env[:url].to_s) end
to_s()
click to toggle source
# File lib/aranea/failure_repository.rb, line 55 def to_s "Failure on #{@pattern.inspect} ending at approximately #{@expiration_date}" end