diff --git a/Gemfile b/Gemfile index 4ec2d30..97f548b 100644 --- a/Gemfile +++ b/Gemfile @@ -3,6 +3,7 @@ source "http://rubygems.org" gem "sinatra" gem "sinatra-contrib" gem "riak-client" +gem "airbrake" group :test do gem 'rake' diff --git a/Gemfile.lock b/Gemfile.lock index 92a2733..c8a084c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,12 @@ GEM remote: http://rubygems.org/ specs: + activesupport (3.2.2) + i18n (~> 0.6) + multi_json (~> 1.0) + airbrake (3.0.9) + activesupport + builder backports (2.3.0) beefcake (0.3.7) builder (3.0.0) @@ -38,6 +44,7 @@ PLATFORMS ruby DEPENDENCIES + airbrake purdytest rake riak-client diff --git a/liquor-cabinet.gemspec b/liquor-cabinet.gemspec index a48d80c..b4a8a8e 100644 --- a/liquor-cabinet.gemspec +++ b/liquor-cabinet.gemspec @@ -19,6 +19,7 @@ Gem::Specification.new do |s| s.add_dependency('sinatra') s.add_dependency('sinatra-contrib') s.add_dependency('riak-client') + s.add_dependency('airbrake') s.files = Dir.glob("{bin,lib}/**/*") + Dir['*.rb'] # s.executables = ['config.ru'] diff --git a/liquor-cabinet.rb b/liquor-cabinet.rb index 7c7ae9e..93a4cd9 100644 --- a/liquor-cabinet.rb +++ b/liquor-cabinet.rb @@ -11,12 +11,13 @@ class LiquorCabinet < Sinatra::Base def self.config=(config) @config = config + configure_airbrake end def self.config return @config if @config config = File.read(File.expand_path('config.yml', File.dirname(__FILE__))) - @config = YAML.load(config)[ENV['RACK_ENV']] + self.config = YAML.load(config)[ENV['RACK_ENV']] end configure :development do @@ -44,6 +45,10 @@ class LiquorCabinet < Sinatra::Base "Ohai." end + get "/airbrake" do + raise "Ohai, exception from Sinatra app" + end + get "/:user/:category/:key" do get_data(@user, @category, @key) end @@ -61,4 +66,19 @@ class LiquorCabinet < Sinatra::Base halt 200 end + private + + def self.configure_airbrake + if @config['airbrake'] && @config['airbrake']['api_key'] + require "airbrake" + + Airbrake.configure do |airbrake| + airbrake.api_key = @config['airbrake']['api_key'] + end + + use Airbrake::Rack + enable :raise_errors + end + end + end