canvas-lms/gems/broadcast_policy
James Williams 211e2073c7 fix rake db:initial_setup
test plan:
* re-create your test db using
RAILS_ENV=test rake db:initial_setup
* should work

Change-Id: Iec245880490a43f1749c68bd2cc8869c6aba4d96
Reviewed-on: https://gerrit.instructure.com/47310
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Jahnavi Yetukuri <jyetukuri@instructure.com>
2015-01-16 20:04:47 +00:00
..
lib fix rake db:initial_setup 2015-01-16 20:04:47 +00:00
spec gemify broadcast policy 2014-09-24 11:35:33 +00:00
.rspec-local gemify broadcast policy 2014-09-24 11:35:33 +00:00
Gemfile gemify broadcast policy 2014-09-24 11:35:33 +00:00
README.md gemify broadcast policy 2014-09-24 11:35:33 +00:00
broadcast_policy.gemspec gemify broadcast policy 2014-09-24 11:35:33 +00:00

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/.