Sha256: b15ab49a933e687f87cefbf2d71e5914e66b3081ed9e18a5d0a1fb5167f8b946
Contents?: true
Size: 1.37 KB
Versions: 1
Compression:
Stored size: 1.37 KB
Contents
module Silvermoon autoload :Notifier, 'silvermoon/notifier' autoload :ActionControllerExtension, 'silvermoon/action_controller_extension' module Notifier autoload :Base, 'silvermoon/notifier/base' autoload :Facebook, 'silvermoon/notifier/facebook' autoload :Twitter, 'silvermoon/notifier/twitter' end require 'silvermoon/railtie' mattr_accessor :loaded_notifiers @@loaded_notifiers = Hash.new def self.notify(title, content, url, extras = {}, notifiers = []) returns = {} notifiers = Notifier.config.keys if notifiers.empty? notifiers.each do |notifier| loaded_notifier = loaded_notifiers[notifier] || load_notifier(notifier) begin returns[notifier] = loaded_notifier.notify(title, content, url, extras) rescue ::Exception => e returns[notifier] = e end end returns end def self.add_notifier(notifier) load_notifier(notifier) end def self.clear_notifiers! @@loaded_notifiers = Hash.new end # def self.setup(&block) # self.instance_exec(&block) # end private def self.load_notifier(notifier) return loaded_notifiers[notifier] if loaded_notifiers.has_key?(notifier) loaded_notifier = Silvermoon::Notifier.config[notifier]['klass'].constantize.new loaded_notifier.identifier = notifier loaded_notifiers[notifier] = loaded_notifier loaded_notifier end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
silvermoon-0.1 | lib/silvermoon.rb |