sendwithus_ruby_action_mailer 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: cb92d4846ee580488478b70d1a9149e19493186a
4
+ data.tar.gz: f6373e3336cb4071df22121e0ee1c79dacc4812f
5
+ SHA512:
6
+ metadata.gz: b73e0d6cfa96393ebb545912e01910fb9478c047d7702e2a634127bfe33bff2c55da2cbcafdc8f8210df1281565c2d68dc400c7497231cb5524a8b6a42e71b76
7
+ data.tar.gz: 55b6a04bd2025fd875a9909a9550c32eba8140f90220fd2cb3200fbfa95d9a5cee46ebb33c50b313e061e226a7040c3ab8a882cd1d6482f3e313bf1e70007466
data/.gitignore ADDED
@@ -0,0 +1,19 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.tmproj
19
+ .rvmrc
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in send_with_us_mailer.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 David Lokhorst
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,84 @@
1
+ # SendWithUsMailer
2
+
3
+ [Send With Us](http://sendwithus.com) is a service that provides a convenient way for non-developers to create and edit
4
+ the email content from your app. Send With Us created a gem, `send_with_us`, that communicates to
5
+ their service using their low-level RESTful API.
6
+
7
+ Ruby on Rails developers are familiar with the ActionMailer interface for sending email. This
8
+ gem implements a small layer over the `send_with_us` gem that provides and ActionMailer-like API.
9
+
10
+ ## Installation
11
+
12
+ Add this line to your application's Gemfile:
13
+
14
+ gem 'send_with_us_mailer'
15
+
16
+ And then execute:
17
+
18
+ $ bundle
19
+
20
+ Or install it yourself as:
21
+
22
+ $ gem install send_with_us_mailer
23
+
24
+ ## Setup
25
+
26
+ (TODO)
27
+
28
+ ## Usage
29
+
30
+ Mailer models inherit from `SendWithUsMailer::Base`. A mailer model defines methods
31
+ used to generate an email message. In these methods, you can assign variables to be sent to
32
+ the Send With Us service and options on the mail itself such as the `:from` address.
33
+
34
+ `````Ruby
35
+ class Notifier < SendWithUsMailer::Base
36
+ default from: 'no-reply@example.com'
37
+
38
+ def welcome(recipient)
39
+ assign(:account, recipient)
40
+ mail(email_id: 'ID-CODE-FROM-SEND-WITH-US', recipient_address: recipient.email)
41
+ end
42
+ end
43
+ `````
44
+
45
+ Within the mailer method, you have access to the following methods:
46
+
47
+ * `assign` - Allows you to assign key-value pairs that will be
48
+ data payload used by Send With Us within the email.
49
+ * `mail` - Allows you to specify the email to be sent.
50
+
51
+
52
+ ### Sending mail
53
+
54
+ Once a mailer action is defined, you can deliver your message or create it and save it
55
+ for delivery later:
56
+
57
+ `````Ruby
58
+ Notifier.welcome(david).deliver # sends the email
59
+
60
+ mail = Notifier.welcome(david) # => a SendWithUsMailer::MailParams object
61
+ mail.deliver # sends the email
62
+ `````
63
+
64
+ You never instantiate your mailer class. Rather, you just call the method you defined
65
+ on the class itself.
66
+
67
+
68
+ ### Default Hash
69
+
70
+ SendWithUsMailer allows you to specify default values inside the class definition:
71
+
72
+ `````Ruby
73
+ class Notifier < SendWithUsMailer::Base
74
+ default from: 'system@example.com'
75
+ end
76
+ `````
77
+
78
+ ## Contributing
79
+
80
+ 1. Fork it
81
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
82
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
83
+ 4. Push to the branch (`git push origin my-new-feature`)
84
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ require 'rake/testtask'
4
+
5
+ Rake::TestTask.new do |t|
6
+ t.libs << 'lib/send_with_us_mailer'
7
+ t.test_files = FileList['test/lib/send_with_us_mailer/*_test.rb']
8
+ t.verbose = true
9
+ end
10
+
11
+ task :default => :test
@@ -0,0 +1,144 @@
1
+ module SendWithUsMailer
2
+ # Mailer models inherit from <tt>SendWithUsMailer::Base</tt>. A mailer model defines methods
3
+ # used to generate an email message. In these methods, you can assign variables to be sent to
4
+ # the Send With Us service and options on the mail itself such as the <tt>:from</tt> address.
5
+ #
6
+ # class Notifier < SendWithUsMailer::Base
7
+ # default from: 'no-reply@example.com'
8
+ #
9
+ # def welcome(recipient)
10
+ # assign(:account, recipient)
11
+ # mail(email_id: 'ID-CODE-FROM-SEND-WITH-US', to: recipient.email)
12
+ # end
13
+ # end
14
+ #
15
+ # Within the mailer method, you have access to the following methods:
16
+ #
17
+ # * <tt>assign</tt> - Allows you to assign key-value pairs that will be
18
+ # data payload used by SendWithUs to interpolate the content.
19
+ # * <tt>mail</tt> - Allows you to specify email to be sent.
20
+ #
21
+ # The mail method is used to set the header parameters.
22
+ #
23
+ #
24
+ # = Sending mail
25
+ #
26
+ # Once a mailer action is defined, you can deliver your message or create it and save it
27
+ # for delivery later:
28
+ #
29
+ # Notifier.welcome(david).deliver # sends the email
30
+ # mail = Notifier.welcome(david) # => a SendWithUsMailer::MailParams object
31
+ # mail.deliver # sends the email
32
+ #
33
+ # You never instantiate your mailer class. Rather, you just call the method you defined
34
+ # on the class itself.
35
+ #
36
+ #
37
+ # = Default Hash
38
+ #
39
+ # SendWithUsMailer allows you to specify default values inside the class definition:
40
+ #
41
+ # class Notifier < SendWithUsMailer::Base
42
+ # default from: 'system@example.com'
43
+ # end
44
+ class Base
45
+
46
+ #---------------------- Singleton methods ----------------------------
47
+ class << self
48
+ def defaults
49
+ @defaults || {}
50
+ end
51
+
52
+ # Set default values for any of the parameters passed to the <tt>#mail</tt>
53
+ # method. For example:
54
+ #
55
+ # class Notifier < SendWithUsMailer::Base
56
+ # default from: 'no-reply@test.lindsaar.net',
57
+ # reply_to: 'bounces@test.lindsaar.net'
58
+ # end
59
+ def default(value = nil)
60
+ @defaults = defaults.merge(value)
61
+ end
62
+
63
+ # Return the mailer methods that are defined in any instance
64
+ # of <tt>SendWithUsMailer::Base</tt>. There should not be
65
+ # any reason to call this directly.
66
+ def mailer_methods
67
+ public_instance_methods - superclass.public_instance_methods
68
+ end
69
+
70
+ # We use <tt>::method_missing</tt> to delegate
71
+ # mailer methods to a new instance and return the
72
+ # <tt>SendWithUsMailer::MailParams</tt> object.
73
+ def method_missing(method_name, *args)
74
+ if mailer_methods.include?(method_name.to_sym)
75
+ new(method_name, *args).message
76
+ else
77
+ super
78
+ end
79
+ end
80
+ end
81
+
82
+ #----------------------- Instance methods ----------------------------
83
+ attr_reader :message
84
+
85
+ # Instantiate a new mailer object. If +method_name+ is not +nil+, the mailer
86
+ # will be initialized according to the named method.
87
+ def initialize(method_name, *args)
88
+ @message = MailParams.new
89
+ self.send(method_name, *args)
90
+ end
91
+
92
+ # The main method that creates the message parameters. The method accepts
93
+ # a headers hash. This hash allows you to specify the certain headers
94
+ # in an email message, these are:
95
+ #
96
+ # * <tt>:email_id</tt> - The unique code associated with the SendWithUs specific email.
97
+ # * <tt>:recipient_address</tt> - Who the message is destined for. Must be a valid email address.
98
+ # * <tt>:recipient_name</tt> - Recipient's name
99
+ # * <tt>:from_address</tt> - Who the message is from. Must be a valid email address.
100
+ # * <tt>:from_name</tt> - Who the email is from
101
+ # * <tt>:reply_to</tt> - Who to set the Reply-To header of the email to.
102
+ #
103
+ # You can set default values for any of the above headers by using the <tt>::default</tt>
104
+ # class method.
105
+ #
106
+ # For example:
107
+ #
108
+ # class Notifier < ActionMailer::Base
109
+ # default from: 'no-reply@test.example.net'
110
+ #
111
+ # def welcome
112
+ # mail(email_id: 'EMAIL_ID from Send With Us', to: 'dave@test.example.net')
113
+ # end
114
+ # end
115
+ def mail(params = {})
116
+ @message.merge!(self.class.defaults.merge(params))
117
+ end
118
+
119
+ # Assign variables that will be sent in the payload to Send With Us.
120
+ #
121
+ # For example:
122
+ #
123
+ # class Notifier < ActionMailer::Base
124
+ # def welcome
125
+ #
126
+ # assign :login_url, "http://thefastguys.example.com"
127
+ # assign :user, {name: "Dave Lokhorst", role: "admin"}
128
+ # assign :team, {name: "The Fast Guys", captain: "Joe"}
129
+ #
130
+ # mail(email_id: 'EMAIL_ID from Send With Us', to: 'dave@test.example.net')
131
+ # end
132
+ # end
133
+ #
134
+ # makes the following parameters accessible to the Send With Us email:
135
+ # {{ login_url }} => "http://thefastguys.example.com"
136
+ # {{ user.name }} => "Dave Lokhorst"
137
+ # {{ user.role }} => "admin"
138
+ # {{ team.name }} => "The Fast Guys"
139
+ # {{ team.captain }} => "Joe"
140
+ def assign(key, value)
141
+ @message.assign(key, value)
142
+ end
143
+ end
144
+ end
@@ -0,0 +1,46 @@
1
+ require "send_with_us"
2
+
3
+ module SendWithUsMailer
4
+ class MailParams
5
+ attr_reader :to, :from, :email_id, :email_data
6
+
7
+ def initialize #:nodoc:
8
+ @email_data = {}
9
+ @to = {}
10
+ @from = {}
11
+ end
12
+
13
+ def assign(key, value) #:nodoc:
14
+ @email_data.merge!( key.to_sym => value )
15
+ end
16
+
17
+ def merge!(params={}) #:nodoc:
18
+ params.each_pair do |key, value|
19
+ case key
20
+ when :email_id
21
+ @email_id = value
22
+ when :recipient_name
23
+ @to.merge!(name: value)
24
+ when :recipient_address
25
+ @to.merge!(address: value)
26
+ when :from_name
27
+ @from.merge!(name: value)
28
+ when :from_address
29
+ @from.merge!(address: value)
30
+ when :reply_to
31
+ @from.merge!(reply_to: value)
32
+ end
33
+ end
34
+ end
35
+
36
+ # Invoke <tt>SendWithUs::Api</tt> to deliver the message.
37
+ # The <tt>SendWithUs</tt> module is implemented in the +send_with_us+ gem.
38
+ #
39
+ # IMPORTANT NOTE: <tt>SendWithUs</tt> must be configured prior to calling this method.
40
+ # In particular, the +api_key+ must be set (following the guidelines in the
41
+ # +send_with_us+ documentation).
42
+ def deliver
43
+ SendWithUs::Api.new.send_with(@email_id, @to, @email_data, @from)
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,3 @@
1
+ module SendWithUsMailer
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,3 @@
1
+ require "send_with_us_mailer/version"
2
+ require "send_with_us_mailer/base"
3
+ require "send_with_us_mailer/mail_params"
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'send_with_us_mailer/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "sendwithus_ruby_action_mailer"
8
+ gem.version = SendWithUsMailer::VERSION
9
+ gem.authors = ["David Lokhorst", "Nicholas Rempel"]
10
+ gem.email = ["nick@sendwithus.com"]
11
+ gem.description = %q{A convenient way to use the Send With Us email
12
+ service with a Ruby on Rails app. SendWilthUsMailer implements a
13
+ mailer API similar to the ActionMailer railtie.}
14
+ gem.summary = %q{An ActionMailer look alike for Send With Us.}
15
+ gem.homepage = 'http://github.com/nrempel/SendWithUs-Mailer'
16
+ gem.license = 'MIT'
17
+
18
+ gem.files = `git ls-files`.split($/)
19
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
20
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
21
+ gem.require_paths = ["lib"]
22
+
23
+ gem.add_runtime_dependency 'send_with_us'
24
+ gem.add_development_dependency 'rake'
25
+ gem.add_development_dependency 'minitest-colorize'
26
+ gem.add_development_dependency 'mocha'
27
+ end
@@ -0,0 +1,70 @@
1
+ require_relative '../../test_helper'
2
+
3
+ describe SendWithUsMailer::Base do
4
+ class FirstMailer < SendWithUsMailer::Base
5
+ def send_an_email; end
6
+ end
7
+
8
+ class SecondMailer < SendWithUsMailer::Base
9
+ def send_a_second_email; end
10
+ end
11
+
12
+ describe "::default" do
13
+ it "responds to default" do
14
+ SendWithUsMailer::Base.must_respond_to :default
15
+ FirstMailer.must_respond_to :default
16
+ end
17
+ end
18
+
19
+ describe "::mailer_methods" do
20
+ it "finds the instance methods defined in the classes" do
21
+ FirstMailer.mailer_methods.must_include(:send_an_email)
22
+ SecondMailer.mailer_methods.must_include(:send_a_second_email)
23
+ end
24
+
25
+ it "does not include instance methods from other mailers" do
26
+ FirstMailer.mailer_methods.wont_include(:send_a_second_email)
27
+ SecondMailer.mailer_methods.wont_include(:send_an_email)
28
+ end
29
+
30
+ it "does not include the Base class instance methods" do
31
+ SendWithUsMailer::Base.public_instance_methods.each do |method|
32
+ FirstMailer.mailer_methods.wont_include(method)
33
+ end
34
+ end
35
+ end
36
+
37
+ describe "methods should be called on the class object" do
38
+ class ThirdMailer < SendWithUsMailer::Base
39
+ def send_an_email(a=nil,b=nil) # an instance method
40
+ end
41
+ end
42
+
43
+ it "class wraps the call to the mailer method (which is an instance method)" do
44
+ ThirdMailer.any_instance.expects(:send_an_email)
45
+ ThirdMailer.send_an_email
46
+ end
47
+
48
+ it "calls to mailer methods return a MailParams object" do
49
+ FirstMailer.send_an_email.must_be_kind_of SendWithUsMailer::MailParams
50
+ end
51
+
52
+ it "relays the arguments to the instance" do
53
+ ThirdMailer.any_instance.expects(:send_an_email).with("a","b")
54
+ ThirdMailer.send_an_email("a","b")
55
+ end
56
+ end
57
+
58
+ describe "#assign" do
59
+ class MailerWithAssign < SendWithUsMailer::Base
60
+ def example
61
+ assign :user, "dave"
62
+ end
63
+ end
64
+
65
+ it "delegates the method to its message" do
66
+ SendWithUsMailer::MailParams.any_instance.expects(:assign)
67
+ MailerWithAssign.example
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,112 @@
1
+ require_relative '../../test_helper'
2
+
3
+ describe SendWithUsMailer do
4
+ describe "minimum requirements" do
5
+ class ExampleMailer < SendWithUsMailer::Base
6
+ def send_an_email
7
+ mail email_id: '4bBEddKbhKBu5xsU2p58KX', recipient_address: 'dave@example.com', recipient_name: 'dave'
8
+ end
9
+ end
10
+
11
+ it "sets the email_id" do
12
+ mail = ExampleMailer.send_an_email
13
+ mail.email_id.must_equal '4bBEddKbhKBu5xsU2p58KX'
14
+ end
15
+
16
+ it "sets the recipient" do
17
+ mail = ExampleMailer.send_an_email
18
+ mail.to[:address].must_equal 'dave@example.com'
19
+ mail.to[:name].must_equal 'dave'
20
+ end
21
+ end
22
+
23
+ describe "more mail options" do
24
+ class MoreOptionsMailer < SendWithUsMailer::Base
25
+ def example_email
26
+ mail email_id: 'a4bBEddKbhKBu5xsU2p58KX',
27
+ to: 'adave@example.com',
28
+ from_address: 'asender@company.com',
29
+ from_name: 'asender',
30
+ reply_to: 'ano-reply@company.com'
31
+ end
32
+ end
33
+
34
+ it "sets the sender" do
35
+ mail = MoreOptionsMailer.example_email
36
+ mail.from[:address].must_equal 'asender@company.com'
37
+ mail.from[:name].must_equal 'asender'
38
+ end
39
+
40
+ it "sets the reply-to address" do
41
+ mail = MoreOptionsMailer.example_email
42
+ mail.from[:reply_to].must_equal 'ano-reply@company.com'
43
+ end
44
+ end
45
+
46
+ describe "using default to set a parameter" do
47
+ class MailerWithDefault < SendWithUsMailer::Base
48
+ default email_id: 'def-4bBEddKbhKBu5xsU2p58KX'
49
+
50
+ def send_an_email
51
+ mail recipient_address: 'def-dave@example.com'
52
+ end
53
+ end
54
+
55
+ it "sets the email_id" do
56
+ mail = MailerWithDefault.send_an_email
57
+ mail.email_id.must_equal 'def-4bBEddKbhKBu5xsU2p58KX'
58
+ end
59
+
60
+ it "sets the recipient" do
61
+ mail = MailerWithDefault.send_an_email
62
+ mail.to[:address].must_equal 'def-dave@example.com'
63
+ end
64
+ end
65
+
66
+ describe "all parameters can be set by default" do
67
+ class AllDefaultMailer < SendWithUsMailer::Base
68
+ default email_id: 'all4bBEddKbhKBu5xsU2p58KX',
69
+ recipient_address: 'alldave@example.com',
70
+ recipient_name: 'alldave',
71
+ from: 'allsender@company.com',
72
+ reply_to: 'allno-reply@company.com'
73
+
74
+ def send_default_email
75
+ mail
76
+ end
77
+ end
78
+
79
+ it "sets the email_id" do
80
+ mail = AllDefaultMailer.send_default_email
81
+ mail.email_id.must_equal 'all4bBEddKbhKBu5xsU2p58KX'
82
+ end
83
+
84
+ it "sets the recipient" do
85
+ mail = AllDefaultMailer.send_default_email
86
+ mail.to[:address].must_equal 'alldave@example.com'
87
+ mail.to[:name].must_equal 'alldave'
88
+ end
89
+ end
90
+
91
+ describe "using #assign" do
92
+ User = Struct.new(:first_name, :last_name, :email)
93
+
94
+ class MailerWithAssign < SendWithUsMailer::Base
95
+ default email_id: '4bBEddKbhKBu5xsU2p58KX'
96
+
97
+ def team_notification(user)
98
+ assign :team, "The Winners"
99
+ assign :user, {first_name: user.first_name, last_name: user.last_name}
100
+ mail recipient_address: user.email
101
+ end
102
+ end
103
+
104
+ it "creates the nested email_data hash" do
105
+ mail = MailerWithAssign.team_notification(User.new("Dave","Lokhorst","dave@example.com"))
106
+ mail.email_data.must_equal({
107
+ team: "The Winners",
108
+ user: {first_name: "Dave", last_name: "Lokhorst"}
109
+ })
110
+ end
111
+ end
112
+ end
@@ -0,0 +1,65 @@
1
+ require_relative '../../test_helper'
2
+
3
+ describe SendWithUsMailer::MailParams do
4
+ subject { SendWithUsMailer::MailParams.new }
5
+
6
+ describe "initialization" do
7
+ it "email_data is empty on initialization" do
8
+ subject.email_data.empty?.must_equal true
9
+ end
10
+ end
11
+
12
+ describe "#assign" do
13
+ let(:ep) { SendWithUsMailer::MailParams.new }
14
+
15
+ it "adds (key,value) pairs to :email_data Hash" do
16
+ ep.assign(:user, {:name => "Dave", :email => "dave@example.com"})
17
+ ep.email_data.must_equal({
18
+ :user => {:name => "Dave", :email => "dave@example.com"}
19
+ })
20
+
21
+ ep.assign(:url, "http://test.example.com")
22
+ ep.email_data.must_equal({
23
+ :user => {:name => "Dave", :email => "dave@example.com"},
24
+ :url => "http://test.example.com"
25
+ })
26
+ end
27
+
28
+ it "symbolizes the keys" do
29
+ ep.assign("company", "Big Co Inc")
30
+ ep.email_data.has_key?(:company).must_equal true
31
+ end
32
+ end
33
+
34
+ describe "#email_id" do
35
+ it "is readable" do
36
+ subject.respond_to?(:email_id).must_equal true
37
+ subject.respond_to?(:email_id=).must_equal false
38
+ end
39
+ end
40
+
41
+ describe "#to" do
42
+ it "is readable" do
43
+ subject.respond_to?(:to).must_equal true
44
+ subject.respond_to?(:to=).must_equal false
45
+ end
46
+ end
47
+
48
+ describe "#from" do
49
+ it "is readable" do
50
+ subject.respond_to?(:from).must_equal true
51
+ subject.respond_to?(:from=).must_equal false
52
+ end
53
+ end
54
+
55
+ describe "#deliver" do
56
+ it "method exists" do
57
+ subject.respond_to?(:deliver).must_equal true
58
+ end
59
+
60
+ it "calls the send_with_us gem" do
61
+ SendWithUs::Api.any_instance.expects(:send_with)
62
+ subject.deliver
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,3 @@
1
+ require 'minitest/autorun'
2
+ require 'mocha/setup'
3
+ require File.expand_path('../../lib/send_with_us_mailer.rb', __FILE__)
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sendwithus_ruby_action_mailer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - David Lokhorst
8
+ - Nicholas Rempel
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-01-15 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: send_with_us
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - '>='
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: minitest-colorize
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: mocha
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ description: |-
71
+ A convenient way to use the Send With Us email
72
+ service with a Ruby on Rails app. SendWilthUsMailer implements a
73
+ mailer API similar to the ActionMailer railtie.
74
+ email:
75
+ - nick@sendwithus.com
76
+ executables: []
77
+ extensions: []
78
+ extra_rdoc_files: []
79
+ files:
80
+ - .gitignore
81
+ - Gemfile
82
+ - LICENSE.txt
83
+ - README.md
84
+ - Rakefile
85
+ - lib/send_with_us_mailer.rb
86
+ - lib/send_with_us_mailer/base.rb
87
+ - lib/send_with_us_mailer/mail_params.rb
88
+ - lib/send_with_us_mailer/version.rb
89
+ - send_with_us_mailer.gemspec
90
+ - test/lib/send_with_us_mailer/base_test.rb
91
+ - test/lib/send_with_us_mailer/integration_test.rb
92
+ - test/lib/send_with_us_mailer/mail_params_test.rb
93
+ - test/test_helper.rb
94
+ homepage: http://github.com/nrempel/SendWithUs-Mailer
95
+ licenses:
96
+ - MIT
97
+ metadata: {}
98
+ post_install_message:
99
+ rdoc_options: []
100
+ require_paths:
101
+ - lib
102
+ required_ruby_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - '>='
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ required_rubygems_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ requirements: []
113
+ rubyforge_project:
114
+ rubygems_version: 2.0.6
115
+ signing_key:
116
+ specification_version: 4
117
+ summary: An ActionMailer look alike for Send With Us.
118
+ test_files:
119
+ - test/lib/send_with_us_mailer/base_test.rb
120
+ - test/lib/send_with_us_mailer/integration_test.rb
121
+ - test/lib/send_with_us_mailer/mail_params_test.rb
122
+ - test/test_helper.rb