class OptimusPrime::Base
Attributes
op_port[R]
wait_for[R]
Public Class Methods
new(opts={})
click to toggle source
# File lib/optimus_prime.rb, line 107 def initialize(opts={}) @wait_for = opts[:wait_for] || 3 @op_port = $port end
Public Instance Methods
clear!()
click to toggle source
# File lib/optimus_prime.rb, line 123 def clear! ::Faraday.get("http://localhost:#{op_port}/clear") end
count(path_name)
click to toggle source
# File lib/optimus_prime.rb, line 127 def count(path_name) requests = ::Faraday.get("http://localhost:#{op_port}/requests/#{path_name}").body JSON.parse(requests)["count"] end
last_request_for(path_name)
click to toggle source
# File lib/optimus_prime.rb, line 132 def last_request_for(path_name) seconds = 0 while :waiting return {} if seconds > wait_for.to_f sleep(0.1) seconds += 0.1 requests = ::Faraday.get("http://localhost:#{op_port}/requests/#{path_name}").body last_request = JSON.parse(requests)["last_request"] return last_request if !last_request.nil? && !last_request.empty? end end
prime(path_name, response="", options={})
click to toggle source
# File lib/optimus_prime.rb, line 112 def prime(path_name, response="", options={}) connection = ::Faraday.new("http://localhost:#{op_port}") connection.post do |request| request.url('/prime') request.headers['Accept'] = 'application/json' request.headers['Content-Type'] = 'application/json' # request.headers['Access-Control-Allow-Meth'] = 'post' request.body = ({ path_name: path_name, response: response }.merge!(options)).to_json end end
wait_until_request(path_name, &block)
click to toggle source
# File lib/optimus_prime.rb, line 145 def wait_until_request(path_name, &block) seconds = 0 while :waiting sleep(0.1) raise "Timeout - waited for: #{wait_for}. \n--> No requests have been made to: #{path_name} endpoint." if seconds > wait_for.to_f seconds += 0.1 request = ::Faraday.get("http://localhost:#{op_port}/requests/#{path_name}").body last_request = JSON.parse(request)["last_request"] begin return true if block.call(last_request) rescue Exception => e raise "#{e}" if seconds > wait_for.to_f end end end