mandrill-rails 1.4.1 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/.travis.yml +5 -3
- data/{README.rdoc → README.md} +48 -46
- data/Rakefile +2 -15
- data/lib/mandrill-rails/version.rb +1 -1
- data/lib/mandrill-rails/web_hook_processor.rb +2 -2
- data/mandrill-rails.gemspec +3 -5
- data/spec/mandrill-rails/web_hook_processor_spec.rb +10 -10
- metadata +27 -41
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YWM5MDJiNzJlMDUwMDQ5NzRkZDE2MmQ3NGM2NjYxNjA5N2JhNTE3Ng==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b43065affe38e76a0da891db680fd93054cd29dc
|
4
|
+
data.tar.gz: 1f361c88d54bd88a4f6c14fb72be2a5a6a6731de
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
OTBiYWY1MDA0MWY0ZWE1ZTMyMDc3NTgwYTllMjJhZDYxMTNmMjA1NjA2YWMz
|
11
|
-
NGUwZmFhMDRhMDgzYmQyYWE2NDlkNmMwOTVmZTU1YjUyOTQ4Yzg=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ZjMzMDUzNTMzMjM3MDRjMzAwODQzM2JhOWE2YTgwYjZjNWJiZDVmYzIwNTll
|
14
|
-
ZDNhYWRiODZlMmE3NDk2YTI1ZTM3Y2U2YmM1YWE5NjVmZDY5ZGE5YzhlMDkw
|
15
|
-
ODI1OGM4ZGIxOTdjMzEzNDJkOGIwNGRkOGYwNjVmMTViMmZlMGI=
|
6
|
+
metadata.gz: 84948a073280f0dab0211d610fb83048ea24a843e58f4b35e8f7ddc8cf929d2ff6cda442692628f0c236eb392759d4b63795dc1adfaeccb221a6d4146376d7a1
|
7
|
+
data.tar.gz: f29d187141fa6bd1c3c01d78b3f8c3a03a8e12305cad40d33d4b979ab720448f14c249f4dca8dae805b421bf1b71abbe061856ca9d73cdf95c47ee4926a3cbbf
|
data/.travis.yml
CHANGED
@@ -6,8 +6,10 @@ rvm:
|
|
6
6
|
#- 1.8.7
|
7
7
|
#- 1.9.2
|
8
8
|
#- jruby-18mode
|
9
|
-
- 1.9.3
|
10
|
-
- 2.0.0
|
9
|
+
# - 1.9.3
|
10
|
+
# - 2.0.0
|
11
11
|
# - rbx-18mode # removing for now; travis is having chronic intermittent issues building this properly at the moment
|
12
12
|
# - rbx-19mode # removeing for now; again, borked on travis "rbx-2.2.1-d19 is not installed"
|
13
|
-
- jruby-19mode
|
13
|
+
# - jruby-19mode
|
14
|
+
- 2.2.2
|
15
|
+
- 2.4.1
|
data/{README.rdoc → README.md}
RENAMED
@@ -1,26 +1,28 @@
|
|
1
|
-
|
1
|
+
# Mandrill::Rails
|
2
|
+
|
3
|
+
[![travis](https://secure.travis-ci.org/evendis/mandrill-rails.png)](http://travis-ci.org/evendis/mandrill-rails)
|
2
4
|
|
3
5
|
The primary goal of Mandrill::Rails is to make supporting Mandrill web hooks as easy and Rails-native as possible. As other opportunities for better Rails integration of the Mandrill API are discovered, these may be rolled in too.
|
4
6
|
|
5
|
-
|
6
|
-
|
7
|
-
|
7
|
+
I thought about implementing this as an engine, but the overhead did not seem appropriate. Maybe that view will change..
|
8
|
+
|
9
|
+
Mandrill::Rails currently does not need or require any direct Mandrill API integration, such as provided by
|
10
|
+
various [Mandrill](https://rubygems.org/search?utf8=%E2%9C%93&query=mandrill)
|
11
|
+
and [MailChimp](https://rubygems.org/search?utf8=%E2%9C%93&query=mailchimp) gems.
|
8
12
|
If you need direct API integration in addition to Mandrill::Rails features, you can choose to add whichever best meets your needs.
|
9
13
|
|
10
|
-
FYI,
|
14
|
+
FYI, [Mandrill](http://mandrill.com/) is the transactional email service by the same folks who do MailChimp.
|
15
|
+
|
11
16
|
|
12
|
-
|
17
|
+
## Requirements and Known Limitations
|
13
18
|
|
14
|
-
|
15
|
-
* MRI 1.8.7, 1.9.2, JRuby 1.8 mode and Rubinius 1.8 mode do work but you must force activesupport < 4.
|
16
|
-
* Requires Rails >= 3.0.3 (including 3.1, 3.2 and 4).
|
19
|
+
Mandrill::Rails 1.5.0+ only supports Rails 5 and MRI 2.2.2+.
|
17
20
|
|
18
|
-
|
19
|
-
* I thought about implementing this as an engine, but the overhead did not seem appropriate. Maybe that view will change..
|
21
|
+
For Rails >= 3.0.3, use Mandrill::Rails 1.4.1.
|
20
22
|
|
21
|
-
|
23
|
+
## The Mandrill::Rails Cookbook
|
22
24
|
|
23
|
-
|
25
|
+
### How do I install it for normal use?
|
24
26
|
|
25
27
|
Add this line to your application's Gemfile:
|
26
28
|
|
@@ -34,22 +36,22 @@ Or install it yourself as:
|
|
34
36
|
|
35
37
|
$ gem install mandrill-rails
|
36
38
|
|
37
|
-
|
39
|
+
### How do I install it for gem development?
|
38
40
|
|
39
|
-
If you want to work on enhancements or fix bugs in Mandrill::Rails, fork and clone the github repository. If you are using bundler (recommended), run
|
41
|
+
If you want to work on enhancements or fix bugs in Mandrill::Rails, fork and clone the github repository. If you are using bundler (recommended), run `bundle` to install development dependencies.
|
40
42
|
|
41
|
-
Run tests using
|
42
|
-
you can kick-off continuous testing of changed files by running
|
43
|
+
Run tests using `rake` or `rake spec`, and note that guard is also included with the development dependencies so
|
44
|
+
you can kick-off continuous testing of changed files by running `bundle exec guard`.
|
43
45
|
|
44
46
|
See the section below on 'Contributing to Mandrill::Rails' for more information.
|
45
47
|
|
46
|
-
|
48
|
+
### How do I configure my app for incoming Mandrill WebHooks?
|
47
49
|
|
48
50
|
Say we have configured Mandrill to send requests to /inbox at our site (see the next recipes for how you do that).
|
49
51
|
|
50
52
|
Once we have Mandrill::Rails in our project, we just need to do two things. You can run a generator to do it for you, or you can configure things manually:
|
51
53
|
|
52
|
-
|
54
|
+
#### Using the generator
|
53
55
|
|
54
56
|
Run the generator and specify the name for your route and controller:
|
55
57
|
|
@@ -69,7 +71,7 @@ If you prefer pluralized names, that can be specified with a flag:
|
|
69
71
|
|
70
72
|
This will create an `InboxesController` class and a resource route called `inboxes`.
|
71
73
|
|
72
|
-
|
74
|
+
#### Manual configuration
|
73
75
|
|
74
76
|
First, configure a resource route:
|
75
77
|
|
@@ -85,19 +87,19 @@ That's all for the basic do-nothing endpoint setup. Note that we need both the G
|
|
85
87
|
|
86
88
|
You can setup as many of these controllers as you need, if you wish different types of events to be handled by different routes.
|
87
89
|
|
88
|
-
|
90
|
+
### How do I configure Mandrill to send inbound email to my app?
|
89
91
|
|
90
|
-
See
|
92
|
+
See [Mandrill Inbound Domains](https://mandrillapp.com/inbound)
|
91
93
|
* enter the mail route you want to match on e.g. *@app.mydomain.com
|
92
94
|
* set the WebHook enpoint to match e.g. http://mydomain.com/inbox
|
93
95
|
|
94
|
-
|
96
|
+
### How do I configure Mandrill to send WebHook requests to my app?
|
95
97
|
|
96
|
-
See
|
98
|
+
See [Mandrill WebHooks](https://mandrillapp.com/settings/webhooks)
|
97
99
|
* select the events you want to trigger on
|
98
100
|
* set the "Post to URL" to point to your controller e.g. http://mydomain.com/inbox
|
99
101
|
|
100
|
-
|
102
|
+
### How do I handle specific Mandrill event payloads in my app?
|
101
103
|
|
102
104
|
Once we have configured Mandrill and setup our routes and controllers, our app will successfully
|
103
105
|
receive WebHook event notifications from Mandrill. But we are not doing anything with the payload yet.
|
@@ -108,7 +110,7 @@ we are interested in.
|
|
108
110
|
The list of available event types includes: inbound, send, hard_bounce, soft_bounce, open,
|
109
111
|
click, spam, unsub, and reject.
|
110
112
|
|
111
|
-
In our controller, we simply write a method called
|
113
|
+
In our controller, we simply write a method called `handle_<event-type>` and it will be called
|
112
114
|
for each event payload received. The event payload will be passed to this method
|
113
115
|
as a Mandrill::WebHook::EventDecorator - basically a Hash with some additional methods to
|
114
116
|
help extract payload-specific elements.
|
@@ -131,7 +133,7 @@ Note that Mandrill may send multiple event payloads in a single request, but you
|
|
131
133
|
to worry about that. Each event payload will be unpacked from the request and dispatched to
|
132
134
|
your handler individually.
|
133
135
|
|
134
|
-
|
136
|
+
### Do I need to handle all the event payloads that Mandrill send?
|
135
137
|
|
136
138
|
No. It is optional. If you don't care to handle a specific payload type - then just don't implement the associated handler method.
|
137
139
|
|
@@ -156,14 +158,14 @@ directive to your controller:
|
|
156
158
|
end
|
157
159
|
|
158
160
|
|
159
|
-
|
161
|
+
### How can I authenticate Mandrill Webhooks?
|
160
162
|
|
161
163
|
Mandrill now supports {webhook authentication}[http://help.mandrill.com/entries/23704122-Authenticating-webhook-requests] which can help prevent unauthorised posting to your webhook handlers. You can lookup and reset your API keys on the
|
162
164
|
{Mandrill WebHook settings}[https://mandrillapp.com/settings/webhooks] page.
|
163
165
|
|
164
166
|
If you do not configure your webhook API key, then the handlers will continue to work fine - they just won't be authenticated.
|
165
167
|
|
166
|
-
To enable authentication, use the
|
168
|
+
To enable authentication, use the `authenticate_with_mandrill_keys!` method to set your API key. It is recommended you pull
|
167
169
|
your API keys from environment settings, or use some other means to avoid committing the API keys in your source code.
|
168
170
|
|
169
171
|
For example, to handle inbound email:
|
@@ -178,11 +180,11 @@ For example, to handle inbound email:
|
|
178
180
|
|
179
181
|
end
|
180
182
|
|
181
|
-
|
183
|
+
### How can I authenticate multiple Mandrill Webhooks in the same controller?
|
182
184
|
|
183
185
|
Sometimes you may have more than one WebHook sending requests to a single controller, for example if you have one handling 'click' events, and another sending inbound email. Mandrill assigns separate API keys to each of these.
|
184
186
|
|
185
|
-
In this case, just add all the valid API keys you will allow with
|
187
|
+
In this case, just add all the valid API keys you will allow with `authenticate_with_mandrill_keys!`, for example:
|
186
188
|
|
187
189
|
class InboxController < ApplicationController
|
188
190
|
include Mandrill::Rails::WebHookProcessor
|
@@ -196,9 +198,9 @@ In this case, just add all the valid API keys you will allow with <tt>authentica
|
|
196
198
|
|
197
199
|
end
|
198
200
|
|
199
|
-
|
201
|
+
### How do I pull apart the event_payload?
|
200
202
|
|
201
|
-
The
|
203
|
+
The `event_payload` object passed to our handler represents a single event and is packaged
|
202
204
|
as an Mandrill::WebHook::EventDecorator - basically a Hash with some additional methods to
|
203
205
|
help extract payload-specific elements.
|
204
206
|
|
@@ -214,9 +216,9 @@ You can use it as a Hash (with String keys) to access all of the native elements
|
|
214
216
|
If you would like examples of the actual data structures sent by Mandrill for different event types,
|
215
217
|
some are included in the project source under spec/fixtures/webhook_examples.
|
216
218
|
|
217
|
-
|
219
|
+
### What additional methods does event_payload provide to help extract payload-specific elements?
|
218
220
|
|
219
|
-
In addition to providing full Hash-like access to the raw message, the
|
221
|
+
In addition to providing full Hash-like access to the raw message, the `event_payload` object
|
220
222
|
(a Mandrill::WebHook::EventDecorator) provides a range of helper methods for some of the more obvious
|
221
223
|
things you might need to do with the payload. Here are some examples (see
|
222
224
|
{Mandrill::WebHook::EventDecorator class documentation}[http://rubydoc.info/gems/mandrill-rails/Mandrill/WebHook/EventDecorator]
|
@@ -247,16 +249,16 @@ for full details)
|
|
247
249
|
# Applicable events: inbound
|
248
250
|
|
249
251
|
|
250
|
-
|
252
|
+
### How to extend Mandrill::WebHook::EventDecorator for application-specific payload handling?
|
251
253
|
|
252
254
|
It's likely you may benefit from adding more application-specific intelligence to the
|
253
|
-
|
255
|
+
`event_payload` object.
|
254
256
|
|
255
257
|
There are many ways to do this, but it is quite legitimate to reopen the EventDecorator class and add your own methods
|
256
258
|
if you wish.
|
257
259
|
|
258
|
-
For example
|
259
|
-
match that with a user record in my system. Or I similarly want to resolve
|
260
|
+
For example `event_payload.user_email` returns the subject user email address, but perhaps I will commonly want to
|
261
|
+
match that with a user record in my system. Or I similarly want to resolve `event_payload.recipient_emails` to user records.
|
260
262
|
In this case, I could extend EventDecorator in my app like this:
|
261
263
|
|
262
264
|
# Extends Mandrill::WebHook::EventDecorator with app-specific event payload transformation
|
@@ -274,9 +276,9 @@ In this case, I could extend EventDecorator in my app like this:
|
|
274
276
|
|
275
277
|
end
|
276
278
|
|
277
|
-
|
279
|
+
### How do I extract attachments from an inbound email?
|
278
280
|
|
279
|
-
The EventDecorator class provides an
|
281
|
+
The EventDecorator class provides an `attachments` method to access an array of attachments (if any).
|
280
282
|
Each attachment is encapsulated in a class that describes the name, mime type, raw and decoded content.
|
281
283
|
|
282
284
|
For example:
|
@@ -303,9 +305,9 @@ For example:
|
|
303
305
|
end
|
304
306
|
|
305
307
|
|
306
|
-
|
308
|
+
### How do I extract images from an inbound email?
|
307
309
|
|
308
|
-
The EventDecorator class provides an
|
310
|
+
The EventDecorator class provides an `images` method to access an array of images (if any).
|
309
311
|
Each image is encapsulated in a class that describes the name, mime type, raw and decoded content.
|
310
312
|
|
311
313
|
For example:
|
@@ -330,7 +332,7 @@ For example:
|
|
330
332
|
end
|
331
333
|
|
332
334
|
|
333
|
-
|
335
|
+
### How do I use Mandrill API features with Mandrill::Rails?
|
334
336
|
|
335
337
|
Mandrill::Rails currently does not need or require any direct Mandrill API integration (such as provided by
|
336
338
|
various {Mandrill}[https://rubygems.org/search?utf8=%E2%9C%93&query=mandrill]
|
@@ -339,7 +341,7 @@ If you need direct API integration in addition to Mandrill::Rails features,
|
|
339
341
|
you can choose to add whichever best meets your needs and use as normal.
|
340
342
|
|
341
343
|
|
342
|
-
|
344
|
+
## Contributing to Mandrill::Rails
|
343
345
|
|
344
346
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
345
347
|
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
@@ -349,7 +351,7 @@ you can choose to add whichever best meets your needs and use as normal.
|
|
349
351
|
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
350
352
|
* Please try not to mess with the gemspec, Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
351
353
|
|
352
|
-
|
354
|
+
## Copyright
|
353
355
|
|
354
356
|
Copyright (c) 2012 Paul Gallagher. See LICENSE for further details.
|
355
357
|
|
data/Rakefile
CHANGED
@@ -1,19 +1,6 @@
|
|
1
|
-
#!/usr/bin/env rake
|
2
1
|
require "bundler/gem_tasks"
|
3
|
-
require
|
4
|
-
require 'rspec/core/rake_task'
|
2
|
+
require "rspec/core/rake_task"
|
5
3
|
|
6
|
-
|
7
|
-
RSpec::Core::RakeTask.new do |spec|
|
8
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
9
|
-
end
|
4
|
+
RSpec::Core::RakeTask.new(:spec)
|
10
5
|
|
11
6
|
task :default => :spec
|
12
|
-
|
13
|
-
require 'rdoc/task'
|
14
|
-
RDoc::Task.new do |rdoc|
|
15
|
-
rdoc.main = "README.rdoc"
|
16
|
-
rdoc.rdoc_dir = 'rdoc'
|
17
|
-
rdoc.title = "mandrill-rails"
|
18
|
-
rdoc.rdoc_files.include('README*', 'lib/**/*.rb')
|
19
|
-
end
|
@@ -34,8 +34,8 @@ module Mandrill::Rails::WebHookProcessor
|
|
34
34
|
extend ActiveSupport::Concern
|
35
35
|
|
36
36
|
included do
|
37
|
-
|
38
|
-
|
37
|
+
skip_before_action :verify_authenticity_token, raise: false
|
38
|
+
before_action :authenticate_mandrill_request!, :only => [:create]
|
39
39
|
end
|
40
40
|
|
41
41
|
module ClassMethods
|
data/mandrill-rails.gemspec
CHANGED
@@ -16,13 +16,11 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.require_paths = ["lib"]
|
17
17
|
spec.version = Mandrill::Rails::VERSION
|
18
18
|
|
19
|
-
spec.add_runtime_dependency "activesupport", ">=
|
19
|
+
spec.add_runtime_dependency "activesupport", ">= 4"
|
20
20
|
|
21
|
-
spec.add_development_dependency "bundler", "~> 1.
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.14"
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
23
|
spec.add_development_dependency "rspec", "~> 3.0"
|
24
24
|
spec.add_development_dependency "generator_spec", "~> 0.9"
|
25
|
-
spec.add_development_dependency "guard-rspec", "~> 4.
|
26
|
-
spec.add_development_dependency "rdoc"
|
27
|
-
|
25
|
+
spec.add_development_dependency "guard-rspec", "~> 4.7"
|
28
26
|
end
|
@@ -3,10 +3,10 @@ require 'spec_helper'
|
|
3
3
|
class WebHookProcessorTestHarness
|
4
4
|
# Mock some controller behaviour
|
5
5
|
# TODO: we should probably start using a real controller harness for testing
|
6
|
-
def self.
|
7
|
-
def self.
|
8
|
-
def self.
|
9
|
-
def self.
|
6
|
+
def self.skip_before_action(*args) ; @skip_before_action_settings = args; end
|
7
|
+
def self.skip_before_action_settings ; @skip_before_action_settings; end
|
8
|
+
def self.before_action(*args) ; @before_action_settings = args ; end
|
9
|
+
def self.before_action_settings ; @before_action_settings; end
|
10
10
|
def head(*args) ; end
|
11
11
|
attr_accessor :params, :request
|
12
12
|
|
@@ -22,15 +22,15 @@ describe Mandrill::Rails::WebHookProcessor do
|
|
22
22
|
processor_class.on_unhandled_mandrill_events! nil
|
23
23
|
end
|
24
24
|
|
25
|
-
describe "##
|
26
|
-
subject { processor_class.
|
25
|
+
describe "##skip_before_action settings" do
|
26
|
+
subject { processor_class.skip_before_action_settings }
|
27
27
|
it "includes verify_authenticity_token" do
|
28
|
-
expect(subject).to eql([:verify_authenticity_token])
|
28
|
+
expect(subject).to eql([:verify_authenticity_token, { raise: false }])
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
describe "##
|
33
|
-
subject { processor_class.
|
32
|
+
describe "##before_action settings" do
|
33
|
+
subject { processor_class.before_action_settings }
|
34
34
|
it "includes authenticate_mandrill_request" do
|
35
35
|
expect(subject).to eql([:authenticate_mandrill_request!, {:only=>[:create]}])
|
36
36
|
end
|
@@ -169,4 +169,4 @@ describe Mandrill::Rails::WebHookProcessor do
|
|
169
169
|
end
|
170
170
|
end
|
171
171
|
|
172
|
-
end
|
172
|
+
end
|
metadata
CHANGED
@@ -1,113 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mandrill-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Gallagher
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '4'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: '4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1.
|
33
|
+
version: '1.14'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1.
|
40
|
+
version: '1.14'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '10.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '10.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '3.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '3.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: generator_spec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - ~>
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0.9'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0.9'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: guard-rspec
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - ~>
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '4.
|
89
|
+
version: '4.7'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - ~>
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '4.
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: rdoc
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ! '>='
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ! '>='
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
96
|
+
version: '4.7'
|
111
97
|
description: Rails integration for Mandrill
|
112
98
|
email:
|
113
99
|
- gallagher.paul@gmail.com
|
@@ -115,14 +101,14 @@ executables: []
|
|
115
101
|
extensions: []
|
116
102
|
extra_rdoc_files: []
|
117
103
|
files:
|
118
|
-
- .gitignore
|
119
|
-
- .rspec
|
120
|
-
- .travis.yml
|
104
|
+
- ".gitignore"
|
105
|
+
- ".rspec"
|
106
|
+
- ".travis.yml"
|
121
107
|
- CHANGELOG
|
122
108
|
- Gemfile
|
123
109
|
- Guardfile
|
124
110
|
- LICENSE
|
125
|
-
- README.
|
111
|
+
- README.md
|
126
112
|
- Rakefile
|
127
113
|
- lib/generators/mandrill/mandrill_generator.rb
|
128
114
|
- lib/generators/templates/controller.rb
|
@@ -176,17 +162,17 @@ require_paths:
|
|
176
162
|
- lib
|
177
163
|
required_ruby_version: !ruby/object:Gem::Requirement
|
178
164
|
requirements:
|
179
|
-
- -
|
165
|
+
- - ">="
|
180
166
|
- !ruby/object:Gem::Version
|
181
167
|
version: '0'
|
182
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
169
|
requirements:
|
184
|
-
- -
|
170
|
+
- - ">="
|
185
171
|
- !ruby/object:Gem::Version
|
186
172
|
version: '0'
|
187
173
|
requirements: []
|
188
174
|
rubyforge_project:
|
189
|
-
rubygems_version: 2.
|
175
|
+
rubygems_version: 2.6.12
|
190
176
|
signing_key:
|
191
177
|
specification_version: 4
|
192
178
|
summary: Provides webhook processing and event decoration to make using Mandrill with
|