README.md in outbox-0.0.1 vs README.md in outbox-0.1.0

- old
+ new

@@ -1,10 +1,13 @@ Outbox ====== -Outbox is a Rails Engine and generic interface for sending notifications using a variety of delivery methods, with built-in support for the most popular SaaS solutions. +[![Gem Version](https://badge.fury.io/rb/outbox.png)](http://badge.fury.io/rb/outbox) +Outbox is a factory for creating notifications in a variety of protocols, including: email, SMS, and push notifications. Each protocol is built as a generic interface where the actual delivery method or service can be configured independently of the message itself. + + Installation ------------ Add this line to your application's Gemfile: @@ -22,13 +25,91 @@ ``` bash $ gem install outbox ``` +Support +------- + +This gem is still in early development with plans to support email, SMS, and push notificaitons. As protocols and services are added, this support table will be updated: + +### Email + +| Service | Alias | Client | +|-------------------------------------------|---------|------------| +| [Mail gem](https://github.com/mikel/mail) | `:mail` | MailClient | + +### SMS + +TODO… + +### Push + +TODO… + Usage ----- -TODO: Write usage instructions here +Outbox is inspired by [Mail's](https://github.com/mikel/mail) syntax for creating emails. + +### Making a Message + +An Outbox message is actually a factory for creating many different types of messages with the same **topic**. For example: a **topic** could be an event reminder in a calendar application. You want to send out essentially the same content (the reminder) as an email, SMS, and/or push notifications depending on user preferences: + +``` ruby +message = Outbox::Message.new do + email do + from 'noreply@myapp.com' + subject 'You have an upcoming event!' + end + + sms do + from '+15557654321' + end + + ios_push do + badget '+1' + sound 'default' + end + + body "Don't forget, you have an upcoming event on 8/15/2013." +end + +# This will deliver the message to User's given contact points. +message.deliver email: 'user@gmail.com', sms: '+15551234567', ios_push: 'FE66489F304DC75B8D6E8200DFF8A456E8DAEACEC428B427E9518741C92C6660' +``` + +### Making an email + +Making just an email is done just how you would using the [Mail gem](https://github.com/mikel/mail), so look there for in-depth examples. Here's a simple one to get you started: + +``` ruby +email = Outbox::Messages::Email.new do + to 'user@gmail.com' + from 'noreply@myapp.com' + subject 'You have an upcoming event!' + + text_part do + body "Don't forget, you have an upcoming event on 8/15/2013." + end + + html_part do + body "<h1>Event Reminder</h1>..." + end +end + +# Configure the client. If you use the MailClient, you can specify +# the actual delivery method: +email.client :mail, delivery_method: :smtp, smtp_settings: {} + +# And deliver using the specified client +email.deliver +``` + +Configuration +------------- + +TODO... Contributing ------------ 1. Fork it