Sha256: 2cbbe0b0cd53ed1df1a16e6990842c3e90b60396d3155e11bbdbc7226fecdfd0

Contents?: true

Size: 1.06 KB

Versions: 3

Compression:

Stored size: 1.06 KB

Contents

class ProxyLink < ActiveRecord::Base
    belongs_to :mailinglist
    belongs_to :address
    validates_presence_of :mailinglist
    validates_presence_of :address

    def proxy_address
        "#{mailinglist.name}-#{id}@#{mailinglist.domain.name}"
    end

    def self.real_address(addrstr)
        matches=addrstr.match(/(.+)-([\d]+)@(.*)/)
        if matches
            mlname, proxyid, domainname = matches[1..3]
            domain=Domain.find_by_name domainname
            if domain
                ml=Mailinglist.find_all_by_name(mlname).find do |m|
                    m.domain.id == domain.id
                end
                if ml
                    # find_by_id instead of find so that it returns
                    # nil if not found rather than raising an exception
                    pl=self.find_by_id proxyid.to_i
                    if pl
                        if pl.mailinglist_id == ml.id then
                            return pl.address.address
                        end
                    end
                end
            end
        end
    end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sugoi-mail-0.1.5 app/models/proxy_link.rb
sugoi-mail-0.3.0 app/models/proxy_link.rb
sugoi-mail-0.3.2 app/models/proxy_link.rb