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