mailchimp_ses 1.0.3 → 1.0.4
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.
- data/.rspec +1 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +2 -1
- data/Gemfile.lock +18 -8
- data/VERSION +1 -1
- data/lib/mailchimp_ses.rb +53 -30
- data/mailchimp_ses.gemspec +9 -7
- data/spec/mailchimp_ses_spec.rb +140 -25
- metadata +70 -57
data/.rspec
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -6,7 +6,8 @@ gem 'json'
|
|
6
6
|
# Add dependencies to develop your gem here.
|
7
7
|
# Include everything needed to run rake, tests, features, etc.
|
8
8
|
group :development do
|
9
|
-
gem "rspec", "~> 2.
|
9
|
+
gem "rspec", "~> 2.6"
|
10
|
+
gem 'ruby-debug'
|
10
11
|
gem "bundler", "~> 1.0.0"
|
11
12
|
gem "jeweler", "~> 1.5.2"
|
12
13
|
gem "rcov", ">= 0"
|
data/Gemfile.lock
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
columnize (0.3.3)
|
4
5
|
diff-lcs (1.1.2)
|
5
6
|
git (1.2.5)
|
6
7
|
jeweler (1.5.2)
|
@@ -8,20 +9,28 @@ GEM
|
|
8
9
|
git (>= 1.2.5)
|
9
10
|
rake
|
10
11
|
json (1.5.1)
|
12
|
+
linecache (0.46)
|
13
|
+
rbx-require-relative (> 0.0.4)
|
11
14
|
mime-types (1.16)
|
12
15
|
monster_mash (0.2.2)
|
13
16
|
typhoeus (>= 0.2.3)
|
14
17
|
typhoeus (>= 0.2.3)
|
15
18
|
rake (0.8.7)
|
19
|
+
rbx-require-relative (0.0.5)
|
16
20
|
rcov (0.9.9)
|
17
|
-
rspec (2.
|
18
|
-
rspec-core (~> 2.
|
19
|
-
rspec-expectations (~> 2.
|
20
|
-
rspec-mocks (~> 2.
|
21
|
-
rspec-core (2.
|
22
|
-
rspec-expectations (2.
|
21
|
+
rspec (2.6.0)
|
22
|
+
rspec-core (~> 2.6.0)
|
23
|
+
rspec-expectations (~> 2.6.0)
|
24
|
+
rspec-mocks (~> 2.6.0)
|
25
|
+
rspec-core (2.6.4)
|
26
|
+
rspec-expectations (2.6.0)
|
23
27
|
diff-lcs (~> 1.1.2)
|
24
|
-
rspec-mocks (2.
|
28
|
+
rspec-mocks (2.6.0)
|
29
|
+
ruby-debug (0.10.4)
|
30
|
+
columnize (>= 0.1)
|
31
|
+
ruby-debug-base (~> 0.10.4.0)
|
32
|
+
ruby-debug-base (0.10.4)
|
33
|
+
linecache (>= 0.3)
|
25
34
|
typhoeus (0.2.3)
|
26
35
|
mime-types
|
27
36
|
mime-types
|
@@ -36,5 +45,6 @@ DEPENDENCIES
|
|
36
45
|
json
|
37
46
|
monster_mash (>= 0.2.2)
|
38
47
|
rcov
|
39
|
-
rspec (~> 2.
|
48
|
+
rspec (~> 2.6)
|
49
|
+
ruby-debug
|
40
50
|
vcr
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.4
|
data/lib/mailchimp_ses.rb
CHANGED
@@ -25,32 +25,16 @@ class MailchimpSes < MonsterMash::Base
|
|
25
25
|
check_api_key!
|
26
26
|
|
27
27
|
uri "http://#{datacenter}.sts.mailchimp.com/1.0/SendEmail"
|
28
|
+
params(parse_options(options))
|
28
29
|
|
29
|
-
|
30
|
-
|
31
|
-
:html => extract_param(options[:message], :html),
|
32
|
-
:text => options[:message][:text],
|
33
|
-
:subject => extract_param(options[:message], :subject),
|
34
|
-
:from_name => extract_param(options[:message], :from_name),
|
35
|
-
:from_email => extract_param(options[:message], :from_email),
|
36
|
-
:to_email => convert_to_hash_array(extract_param(options[:message], :to_email))
|
37
|
-
}
|
38
|
-
|
39
|
-
# Pull optional to_name.
|
40
|
-
if options[:message].has_key?(:to_name) && !options[:message][:to_name].empty?
|
41
|
-
message[:to_name] = convert_to_hash_array(options[:message][:to_name])
|
42
|
-
end
|
43
|
-
|
44
|
-
# Pull optional reply_to.
|
45
|
-
if options[:message].has_key?(:reply_to) && !options[:message][:reply_to].blank?
|
46
|
-
message[:reply_to] = convert_to_hash_array(options[:message][:reply_to])
|
30
|
+
handler do |response|
|
31
|
+
json = JSON.parse(response.body)
|
47
32
|
end
|
33
|
+
end
|
48
34
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
raise ArgumentError, "to_email and to_name need the same number of values"
|
53
|
-
end
|
35
|
+
DEFAULT_OPTIONS = { :autogen_html => true }
|
36
|
+
def self.parse_options(options)
|
37
|
+
options = DEFAULT_OPTIONS.merge(options)
|
54
38
|
|
55
39
|
# Handle tags.
|
56
40
|
tags = nil
|
@@ -58,18 +42,57 @@ class MailchimpSes < MonsterMash::Base
|
|
58
42
|
tags = convert_to_hash_array(options[:tags])
|
59
43
|
end
|
60
44
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
45
|
+
{
|
46
|
+
:message => parse_message_options(options[:message]),
|
47
|
+
:track_opens => extract_param(options, :track_opens).to_s,
|
48
|
+
:track_clicks => extract_param(options, :track_clicks).to_s,
|
49
|
+
:autogen_html => extract_param(options, :autogen_html).to_s,
|
50
|
+
:tags => tags
|
51
|
+
}
|
52
|
+
end
|
53
|
+
|
54
|
+
OPTIONAL_MESSAGE_FIELDS = [:to_name, :reply_to, :cc_email, :cc_name, :bcc_email, :bcc_name]
|
55
|
+
def self.parse_message_options(message_options)
|
56
|
+
message = {
|
57
|
+
:html => extract_param(message_options, :html),
|
58
|
+
:text => message_options[:text],
|
59
|
+
:subject => extract_param(message_options, :subject),
|
60
|
+
:from_name => extract_param(message_options, :from_name),
|
61
|
+
:from_email => extract_param(message_options, :from_email),
|
62
|
+
:to_email => convert_to_hash_array(extract_param(message_options, :to_email))
|
63
|
+
}
|
64
|
+
|
65
|
+
OPTIONAL_MESSAGE_FIELDS.each do |field|
|
66
|
+
set_optional_field!(message, message_options, field)
|
68
67
|
end
|
68
|
+
|
69
|
+
# Check lengths of arrays.
|
70
|
+
check_recipients!(message, :to_email, :to_name)
|
71
|
+
check_recipients!(message, :cc_email, :cc_name)
|
72
|
+
check_recipients!(message, :bcc_email, :bcc_name)
|
73
|
+
|
74
|
+
message
|
69
75
|
end
|
70
76
|
|
71
77
|
private
|
72
78
|
|
79
|
+
def self.set_optional_field!(message, options, key)
|
80
|
+
if options.has_key?(key) && !options[key].empty?
|
81
|
+
message[key] = convert_to_hash_array(options[key])
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def self.check_recipients!(message, email_key, name_key)
|
86
|
+
if message.has_key?(email_key) || message.has_key?(name_key)
|
87
|
+
emails = message[email_key].size rescue 0
|
88
|
+
names = message[name_key].size rescue 0
|
89
|
+
|
90
|
+
if emails != names
|
91
|
+
raise ArgumentError, "#{email_key} and #{name_key} need the same number of values"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
73
96
|
def self.check_api_key!
|
74
97
|
if self.api_key.nil?
|
75
98
|
raise ArgumentError, "Set MailchimpSes.api_key in your config."
|
data/mailchimp_ses.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{mailchimp_ses}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["David Balatero"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-07-15}
|
13
13
|
s.description = %q{Allows you to call MailChimp <-> Amazon SES integration methods.}
|
14
14
|
s.email = %q{dbalatero@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -36,7 +36,7 @@ Gem::Specification.new do |s|
|
|
36
36
|
s.homepage = %q{http://github.com/dbalatero/mailchimp_ses}
|
37
37
|
s.licenses = ["MIT"]
|
38
38
|
s.require_paths = ["lib"]
|
39
|
-
s.rubygems_version = %q{1.
|
39
|
+
s.rubygems_version = %q{1.5.2}
|
40
40
|
s.summary = %q{Gives API methods for MailChimp SES.}
|
41
41
|
s.test_files = [
|
42
42
|
"spec/mailchimp_ses_spec.rb",
|
@@ -44,13 +44,13 @@ Gem::Specification.new do |s|
|
|
44
44
|
]
|
45
45
|
|
46
46
|
if s.respond_to? :specification_version then
|
47
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
48
47
|
s.specification_version = 3
|
49
48
|
|
50
49
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
51
50
|
s.add_runtime_dependency(%q<monster_mash>, [">= 0.2.2"])
|
52
51
|
s.add_runtime_dependency(%q<json>, [">= 0"])
|
53
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.
|
52
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.6"])
|
53
|
+
s.add_development_dependency(%q<ruby-debug>, [">= 0"])
|
54
54
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
55
55
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
56
56
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
@@ -63,7 +63,8 @@ Gem::Specification.new do |s|
|
|
63
63
|
else
|
64
64
|
s.add_dependency(%q<monster_mash>, [">= 0.2.2"])
|
65
65
|
s.add_dependency(%q<json>, [">= 0"])
|
66
|
-
s.add_dependency(%q<rspec>, ["~> 2.
|
66
|
+
s.add_dependency(%q<rspec>, ["~> 2.6"])
|
67
|
+
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
67
68
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
68
69
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
69
70
|
s.add_dependency(%q<rcov>, [">= 0"])
|
@@ -77,7 +78,8 @@ Gem::Specification.new do |s|
|
|
77
78
|
else
|
78
79
|
s.add_dependency(%q<monster_mash>, [">= 0.2.2"])
|
79
80
|
s.add_dependency(%q<json>, [">= 0"])
|
80
|
-
s.add_dependency(%q<rspec>, ["~> 2.
|
81
|
+
s.add_dependency(%q<rspec>, ["~> 2.6"])
|
82
|
+
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
81
83
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
82
84
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
83
85
|
s.add_dependency(%q<rcov>, [">= 0"])
|
data/spec/mailchimp_ses_spec.rb
CHANGED
@@ -1,60 +1,175 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
2
|
|
3
3
|
describe "MailchimpSes" do
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
let(:message) do
|
5
|
+
{
|
6
|
+
:subject => 'Welcome to our website!',
|
7
|
+
:html => '<html>Welcome to our site.</html>',
|
8
|
+
:text => 'Welcome to our website.',
|
9
|
+
:from_name => 'David Balatero',
|
10
|
+
:from_email => 'david@mediapiston.com',
|
11
|
+
:to_email => ['dbalatero@gmail.com'],
|
12
|
+
:to_name => ['David Balatero']
|
13
|
+
}
|
14
|
+
end
|
7
15
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
:html => '<html>Welcome to our site.</html>',
|
12
|
-
:text => 'Welcome to our website.',
|
13
|
-
:from_name => 'David Balatero',
|
14
|
-
:from_email => 'david@mediapiston.com',
|
15
|
-
:to_email => ['dbalatero@gmail.com',],
|
16
|
-
:to_name => ['David Balatero']
|
17
|
-
},
|
16
|
+
let(:options) do
|
17
|
+
{
|
18
|
+
:message => message,
|
18
19
|
:tags => ['fun', 'message', 'unique'],
|
19
20
|
:track_opens => true,
|
20
21
|
:track_clicks => true
|
21
22
|
}
|
22
23
|
end
|
23
24
|
|
25
|
+
before(:each) do
|
26
|
+
# disabled in production.
|
27
|
+
MailchimpSes.api_key = "test-us1"
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "#parse_options" do
|
31
|
+
subject { MailchimpSes.parse_options(options) }
|
32
|
+
|
33
|
+
it "should set autogen_html to true by default" do
|
34
|
+
subject[:autogen_html].should == 'true'
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should allow overriding autogen_html to false" do
|
38
|
+
options[:autogen_html] = false
|
39
|
+
subject[:autogen_html].should == 'false'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "#parse_message_options" do
|
44
|
+
shared_examples_for 'basic message parser' do
|
45
|
+
it 'should set subject' do
|
46
|
+
subject[:subject].should == 'Welcome to our website!'
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should set html' do
|
50
|
+
subject[:html].should == '<html>Welcome to our site.</html>'
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should set text' do
|
54
|
+
subject[:text].should == 'Welcome to our website.'
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'should set from_name' do
|
58
|
+
subject[:from_name].should == 'David Balatero'
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'should set from_email' do
|
62
|
+
subject[:from_email].should == 'david@mediapiston.com'
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'should set to_email' do
|
66
|
+
subject[:to_email][0].should == 'dbalatero@gmail.com'
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'should set to_name' do
|
70
|
+
subject[:to_name][0].should == 'David Balatero'
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
subject { MailchimpSes.parse_message_options(message) }
|
75
|
+
|
76
|
+
describe "with cc options" do
|
77
|
+
before do
|
78
|
+
message.merge!(:cc_email => ['myfriend@gmail.com'],
|
79
|
+
:cc_name => ['My Friend'])
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should set cc_email" do
|
83
|
+
subject[:cc_email][0].should == 'myfriend@gmail.com'
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'should set cc_name' do
|
87
|
+
subject[:cc_name][0].should == 'My Friend'
|
88
|
+
end
|
89
|
+
|
90
|
+
it 'should raise an error if the names do not match emails' do
|
91
|
+
message[:cc_name] = ['One', 'Two']
|
92
|
+
lambda {
|
93
|
+
subject[:cc_name]
|
94
|
+
}.should raise_error(ArgumentError)
|
95
|
+
end
|
96
|
+
|
97
|
+
it_should_behave_like 'basic message parser'
|
98
|
+
end
|
99
|
+
|
100
|
+
describe "with bcc options" do
|
101
|
+
before do
|
102
|
+
message.merge!(:bcc_email => ['bccguy@gmail.com'],
|
103
|
+
:bcc_name => ['BCC Guy'])
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should set bcc_email" do
|
107
|
+
subject[:bcc_email][0].should == 'bccguy@gmail.com'
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'should set cc_name' do
|
111
|
+
subject[:bcc_name][0].should == 'BCC Guy'
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'should raise an error if the names do not match emails' do
|
115
|
+
message[:bcc_name] = ['One', 'Two']
|
116
|
+
lambda {
|
117
|
+
subject[:bcc_name]
|
118
|
+
}.should raise_error(ArgumentError)
|
119
|
+
end
|
120
|
+
|
121
|
+
it_should_behave_like 'basic message parser'
|
122
|
+
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
24
126
|
describe "#send_email" do
|
25
127
|
describe "error checking" do
|
26
128
|
it "should raise error w/ no api key" do
|
27
129
|
MailchimpSes.api_key = nil
|
28
130
|
lambda {
|
29
|
-
MailchimpSes.send_email(
|
131
|
+
MailchimpSes.send_email(options)
|
30
132
|
}.should raise_error(ArgumentError)
|
31
133
|
end
|
32
134
|
|
33
135
|
[:track_opens, :track_clicks].each do |field|
|
34
136
|
it "should require #{field}" do
|
35
|
-
|
137
|
+
options.delete(field)
|
36
138
|
lambda {
|
37
|
-
MailchimpSes.send_email(
|
139
|
+
MailchimpSes.send_email(options)
|
38
140
|
}.should raise_error(ArgumentError)
|
39
141
|
end
|
40
142
|
end
|
41
143
|
|
42
144
|
[:html, :subject, :from_name, :from_email, :to_email].each do |field|
|
43
145
|
it "should require message #{field}" do
|
44
|
-
|
146
|
+
options[:message].delete(field)
|
45
147
|
lambda {
|
46
|
-
MailchimpSes.send_email(
|
148
|
+
MailchimpSes.send_email(options)
|
47
149
|
}.should raise_error(ArgumentError)
|
48
150
|
end
|
49
151
|
end
|
50
152
|
|
51
|
-
|
52
|
-
|
53
|
-
|
153
|
+
[[:to_email, :to_name]].each do |pair|
|
154
|
+
email_key = pair[0]
|
155
|
+
name_key = pair[1]
|
156
|
+
it "should not allow #{email_key} and #{name_key} to be different lengths" do
|
157
|
+
options[:message][email_key] = ['fds@fds.com', 'a@b.com']
|
158
|
+
options[:message][name_key] = ['My Friend Fds']
|
54
159
|
|
55
|
-
|
56
|
-
|
57
|
-
|
160
|
+
lambda {
|
161
|
+
MailchimpSes.send_email(options)
|
162
|
+
}.should raise_error(ArgumentError)
|
163
|
+
end
|
164
|
+
|
165
|
+
it "should not allow #{email_key} with an empty #{name_key}" do
|
166
|
+
options[:message][email_key] = ['fdsa@fdsa.com']
|
167
|
+
options[:message][name_key] = []
|
168
|
+
|
169
|
+
lambda {
|
170
|
+
MailchimpSes.send_email(options)
|
171
|
+
}.should raise_error(ArgumentError)
|
172
|
+
end
|
58
173
|
end
|
59
174
|
end
|
60
175
|
|
@@ -62,7 +177,7 @@ describe "MailchimpSes" do
|
|
62
177
|
use_vcr_cassette 'send_email', :record => :new_episodes
|
63
178
|
|
64
179
|
it "should return a success or failure" do
|
65
|
-
result = MailchimpSes.send_email(
|
180
|
+
result = MailchimpSes.send_email(options)
|
66
181
|
result['status'].should == 'sent'
|
67
182
|
result['message_id'].should_not be_nil
|
68
183
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mailchimp_ses
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 31
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 4
|
10
|
+
version: 1.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- David Balatero
|
@@ -15,13 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-07-15 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
23
|
none: false
|
26
24
|
requirements:
|
27
25
|
- - ">="
|
@@ -32,12 +30,12 @@ dependencies:
|
|
32
30
|
- 2
|
33
31
|
- 2
|
34
32
|
version: 0.2.2
|
33
|
+
prerelease: false
|
35
34
|
name: monster_mash
|
36
|
-
requirement: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
35
|
type: :runtime
|
39
|
-
|
40
|
-
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
39
|
none: false
|
42
40
|
requirements:
|
43
41
|
- - ">="
|
@@ -46,28 +44,41 @@ dependencies:
|
|
46
44
|
segments:
|
47
45
|
- 0
|
48
46
|
version: "0"
|
47
|
+
prerelease: false
|
49
48
|
name: json
|
50
|
-
|
49
|
+
type: :runtime
|
50
|
+
version_requirements: *id002
|
51
51
|
- !ruby/object:Gem::Dependency
|
52
|
-
|
53
|
-
prerelease: false
|
54
|
-
version_requirements: &id003 !ruby/object:Gem::Requirement
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
53
|
none: false
|
56
54
|
requirements:
|
57
55
|
- - ~>
|
58
56
|
- !ruby/object:Gem::Version
|
59
|
-
hash:
|
57
|
+
hash: 15
|
60
58
|
segments:
|
61
59
|
- 2
|
62
|
-
-
|
63
|
-
|
64
|
-
|
60
|
+
- 6
|
61
|
+
version: "2.6"
|
62
|
+
prerelease: false
|
65
63
|
name: rspec
|
66
|
-
requirement: *id003
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
64
|
type: :development
|
65
|
+
version_requirements: *id003
|
66
|
+
- !ruby/object:Gem::Dependency
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 3
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
version: "0"
|
69
76
|
prerelease: false
|
70
|
-
|
77
|
+
name: ruby-debug
|
78
|
+
type: :development
|
79
|
+
version_requirements: *id004
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
71
82
|
none: false
|
72
83
|
requirements:
|
73
84
|
- - ~>
|
@@ -78,12 +89,12 @@ dependencies:
|
|
78
89
|
- 0
|
79
90
|
- 0
|
80
91
|
version: 1.0.0
|
92
|
+
prerelease: false
|
81
93
|
name: bundler
|
82
|
-
requirement: *id004
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
94
|
type: :development
|
85
|
-
|
86
|
-
|
95
|
+
version_requirements: *id005
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
87
98
|
none: false
|
88
99
|
requirements:
|
89
100
|
- - ~>
|
@@ -94,12 +105,12 @@ dependencies:
|
|
94
105
|
- 5
|
95
106
|
- 2
|
96
107
|
version: 1.5.2
|
108
|
+
prerelease: false
|
97
109
|
name: jeweler
|
98
|
-
requirement: *id005
|
99
|
-
- !ruby/object:Gem::Dependency
|
100
110
|
type: :development
|
101
|
-
|
102
|
-
|
111
|
+
version_requirements: *id006
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
103
114
|
none: false
|
104
115
|
requirements:
|
105
116
|
- - ">="
|
@@ -108,12 +119,12 @@ dependencies:
|
|
108
119
|
segments:
|
109
120
|
- 0
|
110
121
|
version: "0"
|
122
|
+
prerelease: false
|
111
123
|
name: rcov
|
112
|
-
requirement: *id006
|
113
|
-
- !ruby/object:Gem::Dependency
|
114
124
|
type: :development
|
115
|
-
|
116
|
-
|
125
|
+
version_requirements: *id007
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
117
128
|
none: false
|
118
129
|
requirements:
|
119
130
|
- - ">="
|
@@ -122,12 +133,12 @@ dependencies:
|
|
122
133
|
segments:
|
123
134
|
- 0
|
124
135
|
version: "0"
|
136
|
+
prerelease: false
|
125
137
|
name: vcr
|
126
|
-
requirement: *id007
|
127
|
-
- !ruby/object:Gem::Dependency
|
128
138
|
type: :development
|
129
|
-
|
130
|
-
|
139
|
+
version_requirements: *id008
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
131
142
|
none: false
|
132
143
|
requirements:
|
133
144
|
- - ~>
|
@@ -138,12 +149,12 @@ dependencies:
|
|
138
149
|
- 3
|
139
150
|
- 0
|
140
151
|
version: 2.3.0
|
152
|
+
prerelease: false
|
141
153
|
name: rspec
|
142
|
-
requirement: *id008
|
143
|
-
- !ruby/object:Gem::Dependency
|
144
154
|
type: :development
|
145
|
-
|
146
|
-
|
155
|
+
version_requirements: *id009
|
156
|
+
- !ruby/object:Gem::Dependency
|
157
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
147
158
|
none: false
|
148
159
|
requirements:
|
149
160
|
- - ~>
|
@@ -154,12 +165,12 @@ dependencies:
|
|
154
165
|
- 5
|
155
166
|
- 2
|
156
167
|
version: 1.5.2
|
168
|
+
prerelease: false
|
157
169
|
name: jeweler
|
158
|
-
requirement: *id009
|
159
|
-
- !ruby/object:Gem::Dependency
|
160
170
|
type: :development
|
161
|
-
|
162
|
-
|
171
|
+
version_requirements: *id010
|
172
|
+
- !ruby/object:Gem::Dependency
|
173
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
163
174
|
none: false
|
164
175
|
requirements:
|
165
176
|
- - ">="
|
@@ -168,12 +179,12 @@ dependencies:
|
|
168
179
|
segments:
|
169
180
|
- 0
|
170
181
|
version: "0"
|
182
|
+
prerelease: false
|
171
183
|
name: vcr
|
172
|
-
|
184
|
+
type: :development
|
185
|
+
version_requirements: *id011
|
173
186
|
- !ruby/object:Gem::Dependency
|
174
|
-
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: &id011 !ruby/object:Gem::Requirement
|
187
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
177
188
|
none: false
|
178
189
|
requirements:
|
179
190
|
- - ">="
|
@@ -184,12 +195,12 @@ dependencies:
|
|
184
195
|
- 2
|
185
196
|
- 2
|
186
197
|
version: 0.2.2
|
198
|
+
prerelease: false
|
187
199
|
name: monster_mash
|
188
|
-
requirement: *id011
|
189
|
-
- !ruby/object:Gem::Dependency
|
190
200
|
type: :runtime
|
191
|
-
|
192
|
-
|
201
|
+
version_requirements: *id012
|
202
|
+
- !ruby/object:Gem::Dependency
|
203
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
193
204
|
none: false
|
194
205
|
requirements:
|
195
206
|
- - ">="
|
@@ -198,8 +209,10 @@ dependencies:
|
|
198
209
|
segments:
|
199
210
|
- 0
|
200
211
|
version: "0"
|
212
|
+
prerelease: false
|
201
213
|
name: json
|
202
|
-
|
214
|
+
type: :runtime
|
215
|
+
version_requirements: *id013
|
203
216
|
description: Allows you to call MailChimp <-> Amazon SES integration methods.
|
204
217
|
email: dbalatero@gmail.com
|
205
218
|
executables: []
|
@@ -256,7 +269,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
256
269
|
requirements: []
|
257
270
|
|
258
271
|
rubyforge_project:
|
259
|
-
rubygems_version: 1.
|
272
|
+
rubygems_version: 1.5.2
|
260
273
|
signing_key:
|
261
274
|
specification_version: 3
|
262
275
|
summary: Gives API methods for MailChimp SES.
|