class Safettp::Guard

Attributes

covered[R]
response[R]

Public Class Methods

new(response) click to toggle source
# File lib/safettp/guard.rb, line 7
def initialize(response)
  @response = response
  @covered = []
end

Public Instance Methods

cover(state) { |response| ... } click to toggle source
# File lib/safettp/guard.rb, line 17
def cover(state, &block)
  @covered << state
              yield(response) if response_is?(state)
end
evaluate!() click to toggle source
# File lib/safettp/guard.rb, line 12
def evaluate!
  return response if safe?
  raise Safettp::Guard::StatesNotCovered
end
on_failure(&block) click to toggle source
# File lib/safettp/guard.rb, line 31
def on_failure(&block)
  cover(:failure, &block)
end
on_success(&block) click to toggle source
# File lib/safettp/guard.rb, line 27
def on_success(&block)
  cover(:success, &block)
end
safe?() click to toggle source
# File lib/safettp/guard.rb, line 22
def safe?
  covered.include?(:success) &&
    covered.include?(:failure)
end

Private Instance Methods

response_is?(state) click to toggle source
# File lib/safettp/guard.rb, line 37
def response_is?(state)
        response.public_send("#{state}?")
end