Sha256: 732fda0c90fd75707fad6598328adf6a4c74afe492529539df9bd2c5ce064f59

Contents?: true

Size: 1.19 KB

Versions: 2

Compression:

Stored size: 1.19 KB

Contents

#!/usr/bin/ruby
 
# Version 1.0
# Last Updated 6/22/2009
 
require 'json'
 
class SmtpApiHeader
 
  def initialize()
    @data = {}
  end  
 
  def addTo(to)
    @data['to'] ||= []
    @data['to'] += to.kind_of?(Array) ? to : [to]
  end 
 
  def addSubVal(var, val)
    if not @data['sub']
      @data['sub'] = {}
    end
    if val.instance_of?(Array)
      @data['sub'][var] = val  
    else
      @data['sub'][var] = [val]    
    end
  end
 
  def setUniqueArgs(val)
    if val.instance_of?(Hash)
      @data['unique_args'] = val
    end
  end
 
  def setCategory(cat)
    @data['category'] = cat
  end
 
  def addFilterSetting(fltr, setting, val)
    if not @data['filters']
      @data['filters'] = {}
    end
    if not @data['filters'][fltr]
      @data['filters'][fltr] = {}
    end
    if not @data['filters'][fltr]['settings']
      @data['filters'][fltr]['settings'] = {}
    end
    @data['filters'][fltr]['settings'][setting] = val
  end
 
  def asJSON()
    json = JSON.generate @data
    return json.gsub(/(["\]}])([,:])(["\[{])/, '\\1\\2 \\3')
  end
 
  def as_string()
    json  = asJSON()
    str = 'X-SMTPAPI: %s' % json.gsub(/(.{1,72})( +|$\n?)|(.{1,72})/,"\\1\\3\n")
    return str    
  end
 
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
patrol-1.0.1 lib/smtp_api_header.rb
patrol-0.2.0 lib/smtp_api_header.rb