Module: Croket
- Defined in:
- lib/croket/rack.rb,
lib/croket.rb,
lib/croket/rails.rb,
lib/croket/railtie.rb,
lib/croket/version.rb,
lib/croket/configuration.rb,
lib/croket/rails/middleware.rb,
lib/croket/rails/controller_methods.rb,
lib/croket/rails/action_controller_catcher.rb
Overview
Created on 2015-04-08
@author: Nikolay Moskvin <[email protected]>
Defined Under Namespace
Modules: Rails Classes: Configuration, Rack, Railtie
Constant Summary collapse
- VERSION =
"0.0.3"
Class Method Summary collapse
- .configuration ⇒ Object
- .configure(silent = false) {|configuration| ... } ⇒ Object
- .notify(exception, opts = {}) ⇒ Object
Class Method Details
.configuration ⇒ Object
22 23 24 |
# File 'lib/croket.rb', line 22 def configuration @configuration ||= Configuration.new end |
.configure(silent = false) {|configuration| ... } ⇒ Object
18 19 20 |
# File 'lib/croket.rb', line 18 def configure silent = false yield configuration end |
.notify(exception, opts = {}) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/croket.rb', line 26 def notify exception, opts = {} l = configuration.logger l.debug "[CROKET] notify about '#{exception}' #{opts['rack.errors']}" if configuration.environment_blacklist.include? configuration.environment.to_sym l.debug "[CROKET] notification was disabled for '#{configuration.environment}'" return end controller = opts['action_controller.instance'] request = ::Rack::Request.new(opts) params = request.env['action_dispatch.request.parameters'] version = "Rails/#{::Rails.version}" if defined?(::Rails) begin r = RestClient::Request.execute url: "http://#{configuration.host}/v1/issues.json", method: :post, payload: { issue: { description: "#{exception}\n#{generate_description(request, controller, params, exception)}", category: 'crash', package: configuration.package, environment: configuration.environment, version: version } }, headers: {'Authorization' => "Token token=#{configuration.api_key}"}, content_type: :json, accept: :json r = JSON.parse r l.debug "[CROKET] id: #{r['issue']['id']}, number: #{r['issue']['tracker_number']}, dup: #{r['issue']['duplication']}" rescue RestClient::RequestFailed => e l.error "Request to http://#{configuration.host}/v1/issues.json was failed:" + e. end end |