Sha256: f2ebcd1a815ea81c4e9e0649dbd3b8160022a9d3985e04cb4c2b3412b12ca65b

Contents?: true

Size: 764 Bytes

Versions: 5

Compression:

Stored size: 764 Bytes

Contents

require 'weeter/plugins/notification/http'
require 'weeter/plugins/notification/resque'

require 'active_support/core_ext/string/inflections'
require 'active_support/core_ext/module/delegation'

module Weeter
  module Plugins
    class NotificationPlugin
      delegate :publish_tweet, :to => :configured_plugin
      delegate :delete_tweet, :to => :configured_plugin
      
      def initialize(client_app_config)
        @config = client_app_config
      end
      
    protected
      def configured_plugin
        @configured_plugin ||= begin
          Weeter.logger.info("Using #{@config.notification_plugin} notification plugin")
          Notification.const_get(@config.notification_plugin.to_s.camelize).new(@config)
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
weeter-0.11.0 lib/weeter/plugins/notification_plugin.rb
weeter-0.10.0 lib/weeter/plugins/notification_plugin.rb
weeter-0.9.2 lib/weeter/plugins/notification_plugin.rb
weeter-0.9.1 lib/weeter/plugins/notification_plugin.rb
weeter-0.9.0 lib/weeter/plugins/notification_plugin.rb