Sha256: 04a46661c19e338d76a4a0a9c738372e286839705756b6ab12332978970710ef

Contents?: true

Size: 1.5 KB

Versions: 2

Compression:

Stored size: 1.5 KB

Contents

require 'mailman'
require 'email_reply_parser/email_reply_parser'
require "replyr/config"

require "replyr/address_builder"
require "replyr/reply_address"
require "replyr/bounce_address"

require "replyr/email"

require "replyr/handle_reply"
require "replyr/handle_bounce"
require 'replyr/engine'

# Monkey Patch broken listen dependency in mailman v0.7.0
require 'mailman_monkey_patch' if Mailman::VERSION == "0.7.0"

module Replyr
  class << self
    attr_accessor :config, :logger

    def config
      @config ||= Replyr::Config.new
    end
    
    def setup_logger
      @logger = (defined?(Rails) && Rails.logger) ? Rails.logger : Logger.new(STDOUT)
    end
    
    # Regexp for reply addresses:
    # reply-comment-12-56-01ce26dc69094af9246ea7e7ce9970aff2b81cc9@reply.example.com
    #
    def reply_pattern
      /#{config.reply_prefix}-(?<model_name>[a-z,#]+)-(?<model_id>\d+)-(?<user_id>\d+)-(?<token>\S+)@#{config.reply_host}/
    end
    
    # Regexp for bounce addresses:
    # bounce-newsletter-12-01ce26dc69094af9246ea7e7ce9970aff2b81cc9@bounce.example.com
    #
    def bounce_pattern
      /#{config.bounce_prefix}-(?<model_name>[a-z,#]+)-(?<model_id>\d+)-(?<token>\S+)@#{config.bounce_host}/
    end
    
    # Regexp for bounce and reply addresses.
    # Use this as the Replyr route in your mailman-server.
    #
    def route
      /#{reply_pattern}|#{bounce_pattern}/
    end
    alias_method :address_pattern, :route
    
    def process(message)
      Replyr::Email.process(message)
    end
    
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
replyr-0.0.9 lib/replyr.rb
replyr-0.0.8 lib/replyr.rb