Class: Aranea::Failure
- Inherits:
-
Object
- Object
- Aranea::Failure
- Defined in:
- lib/aranea/failure_repository.rb
Overview
TODO: Look into moving whitelisting of consumer hostnames to here and allowing it to be configurable via the consuming application
Defined Under Namespace
Classes: Repository
Instance Attribute Summary collapse
-
#expiration_date ⇒ Object
Returns the value of attribute expiration_date.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(params) ⇒ Failure
constructor
A new instance of Failure.
- #respond! ⇒ Object
- #should_fail?(request_env, app) ⇒ Boolean
- #to_s ⇒ Object
Constructor Details
#initialize(params) ⇒ Failure
Returns a new instance of Failure.
33 34 35 36 |
# File 'lib/aranea/failure_repository.rb', line 33 def initialize(params) @pattern = Regexp.new(params[:pattern]) @response = params[:failure] end |
Instance Attribute Details
#expiration_date ⇒ Object
Returns the value of attribute expiration_date.
31 32 33 |
# File 'lib/aranea/failure_repository.rb', line 31 def expiration_date @expiration_date end |
Class Method Details
.create(params) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/aranea/failure_repository.rb', line 15 def create(params) if failure = retrieve_failure raise FailureFailure, "A failure is already in progress (#{failure})." else failure = new(params) Repository.store(failure, params[:minutes].minutes) failure end end |
.current ⇒ Object
11 12 13 |
# File 'lib/aranea/failure_repository.rb', line 11 def current retrieve_failure || NullFailure.new end |
.retrieve_failure ⇒ Object
25 26 27 |
# File 'lib/aranea/failure_repository.rb', line 25 def retrieve_failure Repository.get end |
Instance Method Details
#respond! ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/aranea/failure_repository.rb', line 42 def respond! if @response == 'timeout' raise ::Faraday::Error::TimeoutError, 'Fake failure from Aranea' else ::Faraday::Response.new(status: @response.to_i, body: 'Fake failure from Aranea', response_headers: {}) end end |
#should_fail?(request_env, app) ⇒ Boolean
38 39 40 |
# File 'lib/aranea/failure_repository.rb', line 38 def should_fail?(request_env, app) @pattern.match(request_env[:url].to_s) end |
#to_s ⇒ Object
50 51 52 |
# File 'lib/aranea/failure_repository.rb', line 50 def to_s "Failure on #{@pattern.inspect} ending at approximately #@expiration_date" end |