Module: Trackets

Defined in:
lib/trackets/middleware/rack_exception_handler.rb,
lib/trackets.rb,
lib/trackets/client.rb,
lib/trackets/params.rb,
lib/trackets/railtie.rb,
lib/trackets/version.rb,
lib/trackets/null_env.rb,
lib/trackets/backtrace.rb,
lib/trackets/view_helpers.rb,
lib/trackets/configuration.rb,
lib/trackets/plugins/loader.rb,
lib/trackets/jobs/notice_job.rb,
lib/trackets/plugins/sidekiq.rb,
lib/trackets/rack_env_sanitizer.rb,
lib/generators/trackets/install_generator.rb

Overview

Middleware for Rack applications

Example of a basic Rack app

require 'rack'
require 'trackets'

Trackets.setup do |config|
  config.private_api_key = "insert-valid-api-key"
end

app = Rack::Builder.app do
  run lambda { |env| raise "Testing Error" }
end

use Trackets::Middleware::RackExceptionHandler
run app

Defined Under Namespace

Modules: Generators, Middleware, Plugins, ViewHelpers Classes: Backtrace, Client, Configuration, NoticeJob, NullEnv, Params, RackEnvSanitizer, Railtie, TracketsCustomException

Constant Summary collapse

VERSION =
"0.0.9"

Class Method Summary collapse

Class Method Details

.configurationObject



17
18
19
# File 'lib/trackets.rb', line 17

def configuration
  @configuration ||= Configuration.new
end

.force(&block) ⇒ Object



40
41
42
43
44
45
46
47
# File 'lib/trackets.rb', line 40

def force(&block)
  original = configuration.force?
  configuration.force = true

  yield

  configuration.force = original
end

.notify(exception, env = nil, additional_info = nil) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/trackets.rb', line 21

def notify(exception, env = nil, additional_info = nil)
  return unless Trackets.configuration.enabled?

  job = NoticeJob.new
  job = job.async if Trackets.configuration.async?

  job.perform(exception, env, additional_info)
end

.send_custom_exception(message = nil) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/trackets.rb', line 32

def send_custom_exception(message = nil)
  begin
    raise TracketsCustomException, message
  rescue TracketsCustomException => e
    force { Trackets.notify(e) }
  end
end

.setup {|configuration| ... } ⇒ Object

Yields:



11
12
13
14
15
# File 'lib/trackets.rb', line 11

def setup
  yield(configuration)

  Plugins::Loader.new
end