Sha256: b709e079f87913ac2d01d680b360ce632bad798b8daeb764e032df41f18fb2ac

Contents?: true

Size: 1.89 KB

Versions: 11

Compression:

Stored size: 1.89 KB

Contents

require "rorvswild/version"
require "rorvswild/locator"
require "rorvswild/section"
require "rorvswild/client"
require "rorvswild/plugins"
require "rorvswild/queue"
require "rorvswild/agent"

module RorVsWild
  def self.start(config)
    @logger = initialize_logger(config[:logger])
    @agent = Agent.new(config)
  rescue Exception => ex
    logger.error(ex)
    raise
  end

  def self.agent
    @agent
  end

  def self.logger
    @logger ||= initialize_logger
  end

  def self.measure_code(code)
    agent ? agent.measure_code(code) : eval(code)
  end

  def self.measure_block(name, &block)
    agent ? agent.measure_block(name , &block) : block.call
  end

  def self.catch_error(extra_details = nil, &block)
    agent ? agent.catch_error(extra_details, &block) : block.call
  end

  def self.record_error(exception, extra_details = nil)
    agent.record_error(exception, extra_details) if agent
  end

  def self.initialize_logger(destination = nil)
    if destination.respond_to?(:info) && destination.respond_to?(:warn) && destination.respond_to?(:error)
      destination
    elsif destination
      Logger.new(destination)
    elsif defined?(Rails)
      Rails.logger
    else
      Logger.new(STDOUT)
    end
  end

  def self.clock_milliseconds
    Process.clock_gettime(Process::CLOCK_MONOTONIC, :millisecond)
  end

  def self.check
    api_key = RorVsWild.agent.config[:api_key]
    return puts "You API key is missing and has to be defined in config/rorvswild.yml." if !api_key || api_key.empty?
    puts case response = agent.client.post("/jobs", jobs: [{sections: [], name: "RorVsWild.check", runtime: 0}])
    when Net::HTTPOK then "Connection to RorVsWild works fine !"
    when Net::HTTPUnauthorized then "Wrong API key"
    else puts "Something went wrong: #{response.inspect}"
    end
  end
end

if defined?(Rails)
  require "rorvswild/rails_loader"
  RorVsWild::RailsLoader.start_on_rails_initialization
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
rorvswild-1.5.12 lib/rorvswild.rb
rorvswild-1.5.11 lib/rorvswild.rb
rorvswild-1.5.10 lib/rorvswild.rb
rorvswild-1.5.9 lib/rorvswild.rb
rorvswild-1.5.8 lib/rorvswild.rb
rorvswild-1.5.7 lib/rorvswild.rb
rorvswild-1.5.6 lib/rorvswild.rb
rorvswild-1.5.5 lib/rorvswild.rb
rorvswild-1.5.4 lib/rorvswild.rb
rorvswild-1.5.3 lib/rorvswild.rb
rorvswild-1.5.2 lib/rorvswild.rb