Skip to content

Deliver packages in multiple ways simultaneously (email, jabber, campfire, irc, etc.)

License

Notifications You must be signed in to change notification settings

foca/Transporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Transporter

Deliver packages in multiple ways simultaneously (email, jabber, campfire, irc, etc.)

API

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

How to use

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

List of implementations

  • Example

About

Deliver packages in multiple ways simultaneously (email, jabber, campfire, irc, etc.)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages