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.
@@ -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", "~> 1.0.0"
11
- gem "jeweler", "~> 1.5.2"
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'
@@ -1,39 +1,22 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activesupport (3.0.3)
5
- builder (3.0.0)
4
+ builder (3.2.2)
6
5
  flexmock (0.8.11)
7
- git (1.2.5)
8
- i18n (0.5.0)
9
- jeweler (1.5.2)
10
- bundler (~> 1.0.0)
11
- git (>= 1.2.5)
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 (~> 1.0.0)
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
@@ -20,7 +20,7 @@ This gem is compatible with Rails >= 3.0.0 and Rails 2.3.x
20
20
 
21
21
  To use, first add the gem to your Gemfile:
22
22
 
23
- gem "aws-ses", "~> 0.5.0", :require => 'aws/ses'
23
+ gem "aws-ses", "~> 0.6.0", :require => 'aws/ses'
24
24
 
25
25
  == For Rails 3.x
26
26
 
@@ -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.5.0", :require => 'aws/ses'
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
- test.libs << 'test'
38
- test.pattern = 'test/**/*_test.rb'
39
- test.verbose = true
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 'rake/rdoctask'
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.5.0
1
+ 0.6.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "aws-ses"
8
- s.version = "0.5.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 = "2013-04-30"
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
@@ -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::Digest.new('sha256')
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","")
@@ -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
- add_array_to_hash!(package, 'Destinations', args[:to]) if args[:to]
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
- result = request('SendRawEmail', package)
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
@@ -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.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: 2013-04-30 00:00:00.000000000 Z
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: 1.8.19
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