class RSpectacles::Adapter::Logger
Attributes
test_run_key[R]
Public Class Methods
new(test_run_key: nil)
click to toggle source
# File lib/rspectacles/adapter/logger.rb, line 11 def initialize(test_run_key: nil) @test_run_key = test_run_key || config.last_run_primary_key end
Public Instance Methods
config()
click to toggle source
# File lib/rspectacles/adapter/logger.rb, line 15 def config RSpectacles.config end
log(example)
click to toggle source
# File lib/rspectacles/adapter/logger.rb, line 29 def log(example) message = format_example(example) queue message end
start()
click to toggle source
# File lib/rspectacles/adapter/logger.rb, line 26 def start end
stop()
click to toggle source
# File lib/rspectacles/adapter/logger.rb, line 23 def stop end
uri()
click to toggle source
# File lib/rspectacles/adapter/logger.rb, line 19 def uri @uri ||= config.rspectacles_url end
Private Instance Methods
active?()
click to toggle source
# File lib/rspectacles/adapter/logger.rb, line 49 def active? !!uri end
format_example(example)
click to toggle source
# File lib/rspectacles/adapter/logger.rb, line 57 def format_example(example) { rspec_run: test_run_key, description: example.description, full_description: example.full_description, status: example.execution_result.status, duration: example.execution_result.run_time, file_path: example.metadata[:file_path], line_number: example.metadata[:line_number] } end
full_uri()
click to toggle source
# File lib/rspectacles/adapter/logger.rb, line 53 def full_uri "#{uri}/examples" end
post_results(messages)
click to toggle source
# File lib/rspectacles/adapter/logger.rb, line 41 def post_results(messages) HTTParty.post(full_uri, timeout: config.timeout, body: { examples: messages }.to_json, headers: { 'Content-Type' => 'application/json' }) rescue Net::ReadTimeout puts "RSpectacles Timeout! Failed to send #{messages.size} messages" end
queue(message)
click to toggle source
# File lib/rspectacles/adapter/logger.rb, line 36 def queue(message) return unless active? post_results Array.wrap(message) end