Deliver packages in multiple ways simultaneously (email, jabber, campfire, irc, etc.)
require "transporter" module Transporter class Email < Service validate_config do |config| config.has_keys :from, :to, :host, :user, :password, :port, :auth config.key_is_one_of :auth, %w(plain auth some other) [:to, :from].each do |key| config.key_matches key, /--some complicated email regexp--/ end end def deliver(message) # Send your email # # In this method you have available `message.short` (usable for short # messages such as twitter, or email subjects) and `message.full` # usable for longer chunks of text, as an email body. # # And you have access to `config`, where all your pre-validated config # values live (including default values set on the class, this hash is # a merged representations of te two. end end register :email, Email end
You probably want one of the child projects of this one, where the different implementations provide you with specific implementations. However, the way to use this is as follows:
Transporter.deliver( :message => { :short => "cuack!", :full => "double cuack" }, :using => { :email => { :to => "...", :from => "...", ... }, :jabber => { :to => "...", :from => "...", ... } }
Where each key of the ‘:using` hash depends on what implementations you loaded. (`Transporter::Email`, `Transporter::Jabber`, etc). Refer to their specific documentations for the full list of configuration values in each.
The ‘:short` message is used in messages like twitter, IM, or as an email subject. The `:full` message is used
-
Example