aws-ses 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +3 -4
- data/Gemfile.lock +7 -24
- data/README.erb +1 -1
- data/README.rdoc +15 -4
- data/Rakefile +8 -21
- data/VERSION +1 -1
- data/aws-ses.gemspec +2 -11
- data/lib/aws/ses/base.rb +13 -1
- data/lib/aws/ses/send_email.rb +36 -24
- data/test/send_email_test.rb +46 -8
- metadata +19 -81
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5d83b84b06b584bdb5c4643e75dde6cd185d7b54
|
4
|
+
data.tar.gz: f7c7c7d108a5e87ba91b5249f2e8795a6ace7606
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bd17ce170e886f373038bbee96b593398ad2f9a1397bcce409cc7d9c0ecdcd6adceca4756d9380b7d114cc503797065de349df675ff409d1a8ab8806c147e00b
|
7
|
+
data.tar.gz: 97d79a71412f8bf55659ac2bca9697072b5ad0a7ec6531d45ab249d56e817f6b56f0f432b1a2f21acdf9a5cb3c68869dd3aa5f50ae853828b6cc9bd25a46fd47
|
data/Gemfile
CHANGED
@@ -7,13 +7,12 @@ source "http://rubygems.org"
|
|
7
7
|
# Include everything needed to run rake, tests, features, etc.
|
8
8
|
group :development do
|
9
9
|
gem "shoulda-context", ">= 0"
|
10
|
-
gem "bundler"
|
11
|
-
gem "
|
12
|
-
gem "rcov", ">= 0"
|
10
|
+
gem "bundler"
|
11
|
+
#gem "rcov", ">= 0"
|
13
12
|
gem 'flexmock', '~> 0.8.11'
|
14
13
|
end
|
15
14
|
|
16
15
|
gem 'xml-simple'
|
17
16
|
gem 'builder'
|
18
17
|
gem 'mime-types'
|
19
|
-
gem 'mail', '> 2.2.5'
|
18
|
+
gem 'mail', '> 2.2.5'
|
data/Gemfile.lock
CHANGED
@@ -1,39 +1,22 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
|
5
|
-
builder (3.0.0)
|
4
|
+
builder (3.2.2)
|
6
5
|
flexmock (0.8.11)
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
rake
|
13
|
-
mail (2.2.15)
|
14
|
-
activesupport (>= 2.3.6)
|
15
|
-
i18n (>= 0.4.0)
|
16
|
-
mime-types (~> 1.16)
|
17
|
-
treetop (~> 1.4.8)
|
18
|
-
mime-types (1.16)
|
19
|
-
polyglot (0.3.1)
|
20
|
-
rake (0.8.7)
|
21
|
-
rcov (0.9.9)
|
22
|
-
shoulda-context (1.0.0.beta1)
|
23
|
-
treetop (1.4.9)
|
24
|
-
polyglot (>= 0.3.1)
|
25
|
-
xml-simple (1.0.13)
|
6
|
+
mail (2.6.1)
|
7
|
+
mime-types (>= 1.16, < 3)
|
8
|
+
mime-types (2.4.1)
|
9
|
+
shoulda-context (1.2.1)
|
10
|
+
xml-simple (1.1.4)
|
26
11
|
|
27
12
|
PLATFORMS
|
28
13
|
ruby
|
29
14
|
|
30
15
|
DEPENDENCIES
|
31
16
|
builder
|
32
|
-
bundler
|
17
|
+
bundler
|
33
18
|
flexmock (~> 0.8.11)
|
34
|
-
jeweler (~> 1.5.2)
|
35
19
|
mail (> 2.2.5)
|
36
20
|
mime-types
|
37
|
-
rcov
|
38
21
|
shoulda-context
|
39
22
|
xml-simple
|
data/README.erb
CHANGED
data/README.rdoc
CHANGED
@@ -19,6 +19,17 @@ Before you can do anything, you must establish a connection using Base.new. A b
|
|
19
19
|
|
20
20
|
The minimum connection options that you must specify are your access key id and your secret access key.
|
21
21
|
|
22
|
+
=== Connecting to a server from another region
|
23
|
+
|
24
|
+
The default server API endpoint is "email.us-east-1.amazonaws.com", corresponding to the US East 1 region.
|
25
|
+
|
26
|
+
To connect to a different one, just pass it as a parameter to the AWS::SES::Base initializer:
|
27
|
+
|
28
|
+
ses = AWS::SES::Base.new(
|
29
|
+
:access_key_id => 'abc',
|
30
|
+
:secret_access_key => '123',
|
31
|
+
:server => 'email.eu-west-1.amazonaws.com'
|
32
|
+
)
|
22
33
|
|
23
34
|
== Send E-mail
|
24
35
|
|
@@ -26,12 +37,12 @@ Adds functionality for send_email and send_raw_email
|
|
26
37
|
Use the following to send an e-mail:
|
27
38
|
|
28
39
|
ses = AWS::SES::Base.new( ... connection info ... )
|
29
|
-
ses.send_email
|
40
|
+
ses.send_email(
|
30
41
|
:to => ['jon@example.com', 'dave@example.com'],
|
31
42
|
:source => '"Steve Smith" <steve@example.com>',
|
32
|
-
:subject => 'Subject Line'
|
43
|
+
:subject => 'Subject Line',
|
33
44
|
:text_body => 'Internal text body'
|
34
|
-
|
45
|
+
)
|
35
46
|
By default, the email "from" display address is whatever is before the @.
|
36
47
|
To change the display from, use the format:
|
37
48
|
|
@@ -130,7 +141,7 @@ This gem is compatible with Rails >= 3.0.0 and Rails 2.3.x
|
|
130
141
|
|
131
142
|
To use, first add the gem to your Gemfile:
|
132
143
|
|
133
|
-
gem "aws-ses", "~> 0.
|
144
|
+
gem "aws-ses", "~> 0.6.0", :require => 'aws/ses'
|
134
145
|
|
135
146
|
== For Rails 3.x
|
136
147
|
|
data/Rakefile
CHANGED
@@ -11,20 +11,6 @@ require 'rake'
|
|
11
11
|
|
12
12
|
require 'erb'
|
13
13
|
|
14
|
-
require 'jeweler'
|
15
|
-
Jeweler::Tasks.new do |gem|
|
16
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
-
gem.name = "aws-ses"
|
18
|
-
gem.homepage = "http://github.com/drewblas/aws-ses"
|
19
|
-
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{Client library for Amazon's Simple Email Service's REST API}
|
21
|
-
gem.description = gem.summary
|
22
|
-
gem.email = "drew.blas@gmail.com"
|
23
|
-
gem.authors = ["Drew Blas", 'Marcel Molina Jr.']
|
24
|
-
# Do not add dependencies here because Jewler will add them from the Gemfile
|
25
|
-
end
|
26
|
-
Jeweler::RubygemsDotOrgTasks.new
|
27
|
-
|
28
14
|
require 'rake/testtask'
|
29
15
|
Rake::TestTask.new(:test) do |test|
|
30
16
|
test.libs << 'lib' << 'test'
|
@@ -32,16 +18,16 @@ Rake::TestTask.new(:test) do |test|
|
|
32
18
|
test.verbose = true
|
33
19
|
end
|
34
20
|
|
35
|
-
require 'rcov/rcovtask'
|
36
|
-
Rcov::RcovTask.new do |test|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
end
|
21
|
+
# require 'rcov/rcovtask'
|
22
|
+
# Rcov::RcovTask.new do |test|
|
23
|
+
# test.libs << 'test'
|
24
|
+
# test.pattern = 'test/**/*_test.rb'
|
25
|
+
# test.verbose = true
|
26
|
+
# end
|
41
27
|
|
42
28
|
task :default => :test
|
43
29
|
|
44
|
-
require '
|
30
|
+
require 'rdoc/task'
|
45
31
|
require File.dirname(__FILE__) + '/lib/aws/ses'
|
46
32
|
|
47
33
|
namespace :doc do
|
@@ -64,6 +50,7 @@ namespace :doc do
|
|
64
50
|
system 'open doc/index.html'
|
65
51
|
end
|
66
52
|
|
53
|
+
desc "Generate readme.rdoc from readme.erb"
|
67
54
|
task :readme do
|
68
55
|
require 'support/rdoc/code_info'
|
69
56
|
RDoc::CodeInfo.parse('lib/**/*.rb')
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.0
|
data/aws-ses.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "aws-ses"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.6.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Drew Blas", "Marcel Molina Jr."]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2014-10-13"
|
13
13
|
s.description = "Client library for Amazon's Simple Email Service's REST API"
|
14
14
|
s.email = "drew.blas@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -75,9 +75,6 @@ Gem::Specification.new do |s|
|
|
75
75
|
s.add_runtime_dependency(%q<mime-types>, [">= 0"])
|
76
76
|
s.add_runtime_dependency(%q<mail>, ["> 2.2.5"])
|
77
77
|
s.add_development_dependency(%q<shoulda-context>, [">= 0"])
|
78
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
79
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
80
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
81
78
|
s.add_development_dependency(%q<flexmock>, ["~> 0.8.11"])
|
82
79
|
else
|
83
80
|
s.add_dependency(%q<xml-simple>, [">= 0"])
|
@@ -85,9 +82,6 @@ Gem::Specification.new do |s|
|
|
85
82
|
s.add_dependency(%q<mime-types>, [">= 0"])
|
86
83
|
s.add_dependency(%q<mail>, ["> 2.2.5"])
|
87
84
|
s.add_dependency(%q<shoulda-context>, [">= 0"])
|
88
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
89
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
90
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
91
85
|
s.add_dependency(%q<flexmock>, ["~> 0.8.11"])
|
92
86
|
end
|
93
87
|
else
|
@@ -96,9 +90,6 @@ Gem::Specification.new do |s|
|
|
96
90
|
s.add_dependency(%q<mime-types>, [">= 0"])
|
97
91
|
s.add_dependency(%q<mail>, ["> 2.2.5"])
|
98
92
|
s.add_dependency(%q<shoulda-context>, [">= 0"])
|
99
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
100
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
101
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
102
93
|
s.add_dependency(%q<flexmock>, ["~> 0.8.11"])
|
103
94
|
end
|
104
95
|
end
|
data/lib/aws/ses/base.rb
CHANGED
@@ -17,6 +17,18 @@ module AWS #:nodoc:
|
|
17
17
|
# )
|
18
18
|
#
|
19
19
|
# The minimum connection options that you must specify are your access key id and your secret access key.
|
20
|
+
#
|
21
|
+
# === Connecting to a server from another region
|
22
|
+
#
|
23
|
+
# The default server API endpoint is "email.us-east-1.amazonaws.com", corresponding to the US East 1 region.
|
24
|
+
# To connect to a different one, just pass it as a parameter to the AWS::SES::Base initializer:
|
25
|
+
#
|
26
|
+
# ses = AWS::SES::Base.new(
|
27
|
+
# :access_key_id => 'abc',
|
28
|
+
# :secret_access_key => '123',
|
29
|
+
# :server => 'email.eu-west-1.amazonaws.com'
|
30
|
+
# )
|
31
|
+
|
20
32
|
module SES
|
21
33
|
|
22
34
|
API_VERSION = '2010-12-01'
|
@@ -35,7 +47,7 @@ module AWS #:nodoc:
|
|
35
47
|
# @param [Boolean] urlencode whether or not to url encode the result., true or false
|
36
48
|
# @return [String] the signed and encoded string.
|
37
49
|
def SES.encode(secret_access_key, str, urlencode=true)
|
38
|
-
digest = OpenSSL::Digest
|
50
|
+
digest = OpenSSL::Digest.new('sha256')
|
39
51
|
b64_hmac =
|
40
52
|
Base64.encode64(
|
41
53
|
OpenSSL::HMAC.digest(digest, secret_access_key, str)).gsub("\n","")
|
data/lib/aws/ses/send_email.rb
CHANGED
@@ -22,7 +22,7 @@ module AWS
|
|
22
22
|
# send_raw_email will also take a hash and pass it through Mail.new automatically as well.
|
23
23
|
#
|
24
24
|
module SendEmail
|
25
|
-
|
25
|
+
|
26
26
|
# Sends an email through SES
|
27
27
|
#
|
28
28
|
# the destination parameters can be:
|
@@ -51,25 +51,25 @@ module AWS
|
|
51
51
|
# @return [Response] the response to sending this e-mail
|
52
52
|
def send_email(options = {})
|
53
53
|
package = {}
|
54
|
-
|
54
|
+
|
55
55
|
package['Source'] = options[:source] || options[:from]
|
56
|
-
|
56
|
+
|
57
57
|
add_array_to_hash!(package, 'Destination.ToAddresses', options[:to]) if options[:to]
|
58
58
|
add_array_to_hash!(package, 'Destination.CcAddresses', options[:cc]) if options[:cc]
|
59
59
|
add_array_to_hash!(package, 'Destination.BccAddresses', options[:bcc]) if options[:bcc]
|
60
|
-
|
60
|
+
|
61
61
|
package['Message.Subject.Data'] = options[:subject]
|
62
|
-
|
62
|
+
|
63
63
|
package['Message.Body.Html.Data'] = options[:html_body] if options[:html_body]
|
64
64
|
package['Message.Body.Text.Data'] = options[:text_body] || options[:body] if options[:text_body] || options[:body]
|
65
|
-
|
65
|
+
|
66
66
|
package['ReturnPath'] = options[:return_path] if options[:return_path]
|
67
|
-
|
67
|
+
|
68
68
|
add_array_to_hash!(package, 'ReplyToAddresses', options[:reply_to]) if options[:reply_to]
|
69
|
-
|
69
|
+
|
70
70
|
request('SendEmail', package)
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
# Sends using the SendRawEmail method
|
74
74
|
# This gives the most control and flexibility
|
75
75
|
#
|
@@ -98,24 +98,36 @@ module AWS
|
|
98
98
|
def send_raw_email(mail, args = {})
|
99
99
|
message = mail.is_a?(Hash) ? Mail.new(mail) : mail
|
100
100
|
raise ArgumentError, "Attachment provided without message body" if message.has_attachments? && message.text_part.nil? && message.html_part.nil?
|
101
|
+
|
102
|
+
raw_email = build_raw_email(message, args)
|
103
|
+
result = request('SendRawEmail', raw_email)
|
104
|
+
message.message_id = "#{result.parsed['SendRawEmailResult']['MessageId']}@email.amazonses.com"
|
105
|
+
result
|
106
|
+
end
|
107
|
+
|
108
|
+
alias :deliver! :send_raw_email
|
109
|
+
alias :deliver :send_raw_email
|
110
|
+
|
111
|
+
private
|
112
|
+
|
113
|
+
def build_raw_email(message, args = {})
|
114
|
+
# the message.to_s includes the :to and :cc addresses
|
101
115
|
package = { 'RawMessage.Data' => Base64::encode64(message.to_s) }
|
102
116
|
package['Source'] = args[:from] if args[:from]
|
103
117
|
package['Source'] = args[:source] if args[:source]
|
104
118
|
if args[:destinations]
|
105
119
|
add_array_to_hash!(package, 'Destinations', args[:destinations])
|
106
120
|
else
|
107
|
-
|
121
|
+
mail_addresses = [message.to, message.cc, message.bcc].flatten.compact
|
122
|
+
args_addresses = [args[:to], args[:cc], args[:bcc]].flatten.compact
|
123
|
+
|
124
|
+
mail_addresses = args_addresses unless args_addresses.empty?
|
125
|
+
|
126
|
+
add_array_to_hash!(package, 'Destinations', mail_addresses)
|
108
127
|
end
|
109
|
-
|
110
|
-
message.message_id = "#{result.parsed['SendRawEmailResult']['MessageId']}@email.amazonses.com"
|
111
|
-
result
|
128
|
+
package
|
112
129
|
end
|
113
130
|
|
114
|
-
alias :deliver! :send_raw_email
|
115
|
-
alias :deliver :send_raw_email
|
116
|
-
|
117
|
-
private
|
118
|
-
|
119
131
|
# Adds all elements of the ary with the appropriate member elements
|
120
132
|
def add_array_to_hash!(hash, key, ary)
|
121
133
|
cnt = 1
|
@@ -125,23 +137,23 @@ module AWS
|
|
125
137
|
end
|
126
138
|
end
|
127
139
|
end
|
128
|
-
|
140
|
+
|
129
141
|
class EmailResponse < AWS::SES::Response
|
130
142
|
def result
|
131
143
|
super["#{action}Result"]
|
132
144
|
end
|
133
|
-
|
145
|
+
|
134
146
|
def message_id
|
135
147
|
result['MessageId']
|
136
148
|
end
|
137
149
|
end
|
138
|
-
|
150
|
+
|
139
151
|
class SendEmailResponse < EmailResponse
|
140
|
-
|
152
|
+
|
141
153
|
end
|
142
|
-
|
154
|
+
|
143
155
|
class SendRawEmailResponse < EmailResponse
|
144
|
-
|
156
|
+
|
145
157
|
end
|
146
158
|
end
|
147
159
|
end
|
data/test/send_email_test.rb
CHANGED
@@ -4,12 +4,12 @@ class SendEmailTest < Test::Unit::TestCase
|
|
4
4
|
context 'when sending email' do
|
5
5
|
setup do
|
6
6
|
@base = generate_base
|
7
|
-
@basic_email = { :from => 'jon@example.com',
|
7
|
+
@basic_email = { :from => 'jon@example.com',
|
8
8
|
:to => 'dave@example.com',
|
9
|
-
:subject => 'Subject1',
|
9
|
+
:subject => 'Subject1',
|
10
10
|
:text_body => 'Body1' }
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
context 'adding to a hash' do
|
14
14
|
should 'add array elements to the hash' do
|
15
15
|
hash = {}
|
@@ -18,7 +18,7 @@ class SendEmailTest < Test::Unit::TestCase
|
|
18
18
|
expected = {'SomeKey.member.1' => 'x', 'SomeKey.member.2' => 'y'}
|
19
19
|
assert_equal expected, hash
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
should 'add singular elements to the hash' do
|
23
23
|
hash = {}
|
24
24
|
ary = 'z'
|
@@ -27,7 +27,7 @@ class SendEmailTest < Test::Unit::TestCase
|
|
27
27
|
assert_equal expected, hash
|
28
28
|
end
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
should 'send an e-mail' do
|
32
32
|
mock_connection(@base, :body => %{
|
33
33
|
<SendEmailResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
|
@@ -39,13 +39,13 @@ class SendEmailTest < Test::Unit::TestCase
|
|
39
39
|
</ResponseMetadata>
|
40
40
|
</SendEmailResponse>
|
41
41
|
})
|
42
|
-
|
42
|
+
|
43
43
|
result = @base.send_email @basic_email
|
44
44
|
assert result.success?
|
45
45
|
assert_equal 'abc-123', result.message_id
|
46
46
|
assert_equal 'xyz-123', result.request_id
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
should 'throw ArgumentException when attachment supplied without a body' do
|
50
50
|
#mock_connection(@base, :body => %{
|
51
51
|
# <SendRawEmailResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
|
@@ -75,11 +75,49 @@ class SendEmailTest < Test::Unit::TestCase
|
|
75
75
|
</ResponseMetadata>
|
76
76
|
</SendRawEmailResponse>
|
77
77
|
})
|
78
|
-
|
78
|
+
|
79
79
|
result = @base.send_raw_email(@basic_email)
|
80
80
|
assert result.success?
|
81
81
|
assert_equal 'abc-123', result.message_id
|
82
82
|
assert_equal 'xyz-123', result.request_id
|
83
83
|
end
|
84
|
+
|
85
|
+
context "with a standard email" do
|
86
|
+
setup do
|
87
|
+
@message = Mail.new({:from => 'jon@example.com', :to => 'dave@example.com', :cc => 'sally@example.com', :subject => 'Subject1', :body => "test body"})
|
88
|
+
end
|
89
|
+
|
90
|
+
should "add the 2 addresses to the Destinations" do
|
91
|
+
package = @base.send("build_raw_email", @message)
|
92
|
+
assert_equal 'dave@example.com', package['Destinations.member.1']
|
93
|
+
assert_equal 'sally@example.com', package['Destinations.member.2']
|
94
|
+
end
|
95
|
+
|
96
|
+
should "be able to override the e-mail destinations" do
|
97
|
+
dest_options = {:to => "another@example.com", :cc => "bob@example.com" }
|
98
|
+
package = @base.send("build_raw_email", @message, dest_options)
|
99
|
+
assert_equal 'another@example.com', package['Destinations.member.1']
|
100
|
+
assert_equal 'bob@example.com', package['Destinations.member.2']
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
should "add the bcc address to the email destinations" do
|
105
|
+
message = Mail.new({:from => 'jon@example.com', :bcc => "robin@example.com", :to => 'dave@example.com', :subject => 'Subject1', :body => "test body"})
|
106
|
+
package = @base.send("build_raw_email", message)
|
107
|
+
assert_equal 'dave@example.com', package['Destinations.member.1']
|
108
|
+
assert_equal 'robin@example.com', package['Destinations.member.2']
|
109
|
+
end
|
110
|
+
|
111
|
+
should "when only bcc address in the email" do
|
112
|
+
message = Mail.new({:from => 'jon@example.com', :bcc => ["robin@example.com", 'dave@example.com'], :subject => 'Subject1', :body => "test body"})
|
113
|
+
package = @base.send("build_raw_email", message)
|
114
|
+
assert_equal 'robin@example.com', package['Destinations.member.1']
|
115
|
+
assert_equal 'dave@example.com', package['Destinations.member.2']
|
116
|
+
end
|
117
|
+
|
118
|
+
should "add the mail addresses to the email destination" do
|
119
|
+
message = Mail.new({:from => 'jon@example.com', :to => ["robin@example.com", 'dave@example.com'], :subject => 'Subject1', :body => "test body"})
|
120
|
+
|
121
|
+
end
|
84
122
|
end
|
85
123
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-ses
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.6.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Drew Blas
|
@@ -10,150 +9,90 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2014-10-13 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: xml-simple
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- -
|
18
|
+
- - ">="
|
21
19
|
- !ruby/object:Gem::Version
|
22
20
|
version: '0'
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
|
-
- -
|
25
|
+
- - ">="
|
29
26
|
- !ruby/object:Gem::Version
|
30
27
|
version: '0'
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: builder
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
|
-
- -
|
32
|
+
- - ">="
|
37
33
|
- !ruby/object:Gem::Version
|
38
34
|
version: '0'
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
|
-
- -
|
39
|
+
- - ">="
|
45
40
|
- !ruby/object:Gem::Version
|
46
41
|
version: '0'
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: mime-types
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
|
-
- -
|
46
|
+
- - ">="
|
53
47
|
- !ruby/object:Gem::Version
|
54
48
|
version: '0'
|
55
49
|
type: :runtime
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
|
-
- -
|
53
|
+
- - ">="
|
61
54
|
- !ruby/object:Gem::Version
|
62
55
|
version: '0'
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: mail
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
|
-
- -
|
60
|
+
- - ">"
|
69
61
|
- !ruby/object:Gem::Version
|
70
62
|
version: 2.2.5
|
71
63
|
type: :runtime
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
|
-
- -
|
67
|
+
- - ">"
|
77
68
|
- !ruby/object:Gem::Version
|
78
69
|
version: 2.2.5
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: shoulda-context
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
|
-
- -
|
74
|
+
- - ">="
|
85
75
|
- !ruby/object:Gem::Version
|
86
76
|
version: '0'
|
87
77
|
type: :development
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
|
-
- -
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: '0'
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: bundler
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
|
-
requirements:
|
100
|
-
- - ~>
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: 1.0.0
|
103
|
-
type: :development
|
104
|
-
prerelease: false
|
105
|
-
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
|
-
requirements:
|
108
|
-
- - ~>
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 1.0.0
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: jeweler
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
|
-
requirements:
|
116
|
-
- - ~>
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: 1.5.2
|
119
|
-
type: :development
|
120
|
-
prerelease: false
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
|
-
requirements:
|
124
|
-
- - ~>
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
version: 1.5.2
|
127
|
-
- !ruby/object:Gem::Dependency
|
128
|
-
name: rcov
|
129
|
-
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
|
-
requirements:
|
132
|
-
- - ! '>='
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
version: '0'
|
135
|
-
type: :development
|
136
|
-
prerelease: false
|
137
|
-
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
|
-
requirements:
|
140
|
-
- - ! '>='
|
81
|
+
- - ">="
|
141
82
|
- !ruby/object:Gem::Version
|
142
83
|
version: '0'
|
143
84
|
- !ruby/object:Gem::Dependency
|
144
85
|
name: flexmock
|
145
86
|
requirement: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
87
|
requirements:
|
148
|
-
- - ~>
|
88
|
+
- - "~>"
|
149
89
|
- !ruby/object:Gem::Version
|
150
90
|
version: 0.8.11
|
151
91
|
type: :development
|
152
92
|
prerelease: false
|
153
93
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
94
|
requirements:
|
156
|
-
- - ~>
|
95
|
+
- - "~>"
|
157
96
|
- !ruby/object:Gem::Version
|
158
97
|
version: 0.8.11
|
159
98
|
description: Client library for Amazon's Simple Email Service's REST API
|
@@ -166,7 +105,7 @@ extra_rdoc_files:
|
|
166
105
|
- README.rdoc
|
167
106
|
- TODO
|
168
107
|
files:
|
169
|
-
- .document
|
108
|
+
- ".document"
|
170
109
|
- CHANGELOG
|
171
110
|
- Gemfile
|
172
111
|
- Gemfile.lock
|
@@ -198,25 +137,24 @@ files:
|
|
198
137
|
homepage: http://github.com/drewblas/aws-ses
|
199
138
|
licenses:
|
200
139
|
- MIT
|
140
|
+
metadata: {}
|
201
141
|
post_install_message:
|
202
142
|
rdoc_options: []
|
203
143
|
require_paths:
|
204
144
|
- lib
|
205
145
|
required_ruby_version: !ruby/object:Gem::Requirement
|
206
|
-
none: false
|
207
146
|
requirements:
|
208
|
-
- -
|
147
|
+
- - ">="
|
209
148
|
- !ruby/object:Gem::Version
|
210
149
|
version: '0'
|
211
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
|
-
none: false
|
213
151
|
requirements:
|
214
|
-
- -
|
152
|
+
- - ">="
|
215
153
|
- !ruby/object:Gem::Version
|
216
154
|
version: '0'
|
217
155
|
requirements: []
|
218
156
|
rubyforge_project:
|
219
|
-
rubygems_version:
|
157
|
+
rubygems_version: 2.2.2
|
220
158
|
signing_key:
|
221
159
|
specification_version: 3
|
222
160
|
summary: Client library for Amazon's Simple Email Service's REST API
|