![]() closes CNVS-6016 No more error reports! (soon) this commit builds up sentry integration through the new Canvas::Errors module, along with other things that need to happen on every exception. ErrorReports should now get pushed towards just being used for representing a complaint a user filed via the get help form. I fixed about half the things that got linted as well while I was in here, but because this touches to much I fear divergence from tackling too many (I think we can safely say it's "better than we found it") I left a lot of the infrastructure for error reports in place until other commits for plugins can be merged TEST PLAN: 1) setup your raven.yml config file with the dsn for our sentry install 2) force an error to happen in a request response cycle. 3) see the error in sentry 4) force an error to happen in a job 5) see the error in sentry 6) statsd increments shoudl still fire 7) for the moment, an error report should still get created. Change-Id: I5a9dc7214598f8d5083451fd15f0423f8f939034 Reviewed-on: https://gerrit.instructure.com/51621 Reviewed-by: Simon Williams <simon@instructure.com> Reviewed-by: Brian Palmer <brianp@instructure.com> Tested-by: Jenkins QA-Review: August Thornton <august@instructure.com> Product-Review: Ethan Vizitei <evizitei@instructure.com> |
||
---|---|---|
.. | ||
lib | ||
spec | ||
.rspec-local | ||
Gemfile | ||
README.md | ||
broadcast_policy.gemspec |
README.md
BroadcastPolicy
This allows us to do something like:
class Model < ActiveRecord::Base has_a_broadcast_policy
set_broadcast_policy do |p| p.dispatch :notification_name p.to { some_endpoints } p.whenever { |record| record.foo_is_true? && record.bar_is_false? } end
end
Usage
In order to use the gem in Rails, you'll need an initializer something like this:
config/initializers/broadcast_policy.rb
require 'broadcast_policy' BroadcastPolicy.notifier = lambda { Notifier.new } BroadcastPolicy.notification_finder = lambda { NotificationFinder.new(Nofication.all) } ActiveRecord::Base.send(:extend, BroadcastPolicy::ClassMethods)
The two BroadcastPolicy services are necessary to supply the canvas domain objects for integrating with the notification system License
Copyright (C) 2014 Instructure, Inc.
This file is part of Canvas.
Canvas is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License.
Canvas is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.