mailkick 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile +2 -0
- data/README.md +1 -1
- data/Rakefile +7 -0
- data/lib/mailkick/model.rb +2 -2
- data/lib/mailkick/processor.rb +3 -1
- data/lib/mailkick/version.rb +1 -1
- data/lib/mailkick.rb +12 -6
- data/mailkick.gemspec +3 -1
- data/test/mailkick_test.rb +11 -0
- data/test/test_helper.rb +22 -0
- metadata +40 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f87170752ac89e4482f6f10211bfcd3c0e12f3d
|
4
|
+
data.tar.gz: 48e44c8d786a2b75fe34bc1d9435932e4fb8b5ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98fd63a5858b70759ea11bbe64666cdea206744bd3ec6896f7ab8f1e2ea115c80e502923b03f6c171405b7be0cc23f6caed6e4f4c4cf9f3be55a964c02573aa5
|
7
|
+
data.tar.gz: f358a7f4df99d494f267d4c59c5982da6d1d20ee585663e72dae8bf64fd100d064ddbf77f6fbdc386a24cf52c91ad86a73c1d4801448b78333b2ece9c7e7b9dd
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -195,7 +195,7 @@ More great gems for email
|
|
195
195
|
Change how the user is determined
|
196
196
|
|
197
197
|
```ruby
|
198
|
-
Mailkick.user_method =
|
198
|
+
Mailkick.user_method = -> (email) { User.find_by(email: email) }
|
199
199
|
```
|
200
200
|
|
201
201
|
Use a different email field
|
data/Rakefile
CHANGED
data/lib/mailkick/model.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Mailkick
|
2
2
|
module Model
|
3
|
-
def mailkick_user(
|
4
|
-
email_key =
|
3
|
+
def mailkick_user(opts = {})
|
4
|
+
email_key = opts[:email_key] || :email
|
5
5
|
class_eval do
|
6
6
|
scope :opted_out, proc {|options = {}|
|
7
7
|
binds = [self.class.name, true]
|
data/lib/mailkick/processor.rb
CHANGED
@@ -20,7 +20,9 @@ module Mailkick
|
|
20
20
|
|
21
21
|
parts = message.parts.any? ? message.parts : [message]
|
22
22
|
parts.each do |part|
|
23
|
-
part.
|
23
|
+
if part.content_type.match(/text\/(html|plain)/)
|
24
|
+
part.body = part.body.decoded.gsub(/%7B%7BMAILKICK_TOKEN%7D%7D/, CGI.escape(token))
|
25
|
+
end
|
24
26
|
end
|
25
27
|
end
|
26
28
|
end
|
data/lib/mailkick/version.rb
CHANGED
data/lib/mailkick.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
-
require "
|
2
|
-
require "
|
1
|
+
require "set"
|
2
|
+
require "safely/core"
|
3
|
+
require "active_support"
|
4
|
+
require "mailkick/engine" if defined?(Rails)
|
3
5
|
require "mailkick/processor"
|
4
6
|
require "mailkick/mailer"
|
5
7
|
require "mailkick/model"
|
@@ -8,8 +10,7 @@ require "mailkick/service/mailchimp"
|
|
8
10
|
require "mailkick/service/mandrill"
|
9
11
|
require "mailkick/service/sendgrid"
|
10
12
|
require "mailkick/service/mailgun"
|
11
|
-
require "
|
12
|
-
require "safely/core"
|
13
|
+
require "mailkick/version"
|
13
14
|
|
14
15
|
module Mailkick
|
15
16
|
mattr_accessor :services, :user_method, :secret_token, :mount
|
@@ -89,5 +90,10 @@ module Mailkick
|
|
89
90
|
end
|
90
91
|
end
|
91
92
|
|
92
|
-
|
93
|
-
|
93
|
+
ActiveSupport.on_load(:action_mailer) do
|
94
|
+
prepend Mailkick::Mailer
|
95
|
+
end
|
96
|
+
|
97
|
+
ActiveSupport.on_load(:active_record) do
|
98
|
+
extend Mailkick::Model
|
99
|
+
end
|
data/mailkick.gemspec
CHANGED
@@ -18,8 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
+
spec.add_dependency "activesupport"
|
21
22
|
spec.add_dependency "safely_block", ">= 0.1.1"
|
22
23
|
|
23
|
-
spec.add_development_dependency "bundler"
|
24
|
+
spec.add_development_dependency "bundler"
|
24
25
|
spec.add_development_dependency "rake"
|
26
|
+
spec.add_development_dependency "minitest"
|
25
27
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require_relative "test_helper"
|
2
|
+
|
3
|
+
class MailkickTest < Minitest::Test
|
4
|
+
def test_unsubscribe_url
|
5
|
+
message = UserMailer.welcome.deliver_now
|
6
|
+
html_body = message.html_part.body.to_s
|
7
|
+
assert_equal "<p>BAhbCUkiFXRlc3RAZXhhbXBsZS5vcmcGOgZFVDAwMA%3D%3D--f435e91ba90e1732d3e999af1f2126dcc8182a5d</p>", html_body
|
8
|
+
text_body = message.text_part.body.to_s
|
9
|
+
assert_equal "Boom: BAhbCUkiFXRlc3RAZXhhbXBsZS5vcmcGOgZFVDAwMA%3D%3D--f435e91ba90e1732d3e999af1f2126dcc8182a5d", text_body
|
10
|
+
end
|
11
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require "bundler/setup"
|
2
|
+
Bundler.require(:default)
|
3
|
+
require "minitest/autorun"
|
4
|
+
require "minitest/pride"
|
5
|
+
require "logger"
|
6
|
+
require "action_mailer"
|
7
|
+
|
8
|
+
Minitest::Test = Minitest::Unit::TestCase unless defined?(Minitest::Test)
|
9
|
+
ActionMailer::Base.delivery_method = :test
|
10
|
+
|
11
|
+
Mailkick.secret_token = "test123"
|
12
|
+
|
13
|
+
class UserMailer < ActionMailer::Base
|
14
|
+
default from: "from@example.com"
|
15
|
+
|
16
|
+
def welcome
|
17
|
+
mail to: "test@example.org", subject: "Hello" do |format|
|
18
|
+
format.html { render text: "<p>%7B%7BMAILKICK_TOKEN%7D%7D</p>" }
|
19
|
+
format.text { render text: "Boom: %7B%7BMAILKICK_TOKEN%7D%7D" }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mailkick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: safely_block
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -28,16 +42,16 @@ dependencies:
|
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
|
-
- - "
|
45
|
+
- - ">="
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
47
|
+
version: '0'
|
34
48
|
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
|
-
- - "
|
52
|
+
- - ">="
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rake
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +66,20 @@ dependencies:
|
|
52
66
|
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: minitest
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
55
83
|
description: Email subscriptions made easy
|
56
84
|
email:
|
57
85
|
- andrew@chartkick.com
|
@@ -85,6 +113,8 @@ files:
|
|
85
113
|
- lib/mailkick/service/sendgrid.rb
|
86
114
|
- lib/mailkick/version.rb
|
87
115
|
- mailkick.gemspec
|
116
|
+
- test/mailkick_test.rb
|
117
|
+
- test/test_helper.rb
|
88
118
|
homepage: https://github.com/ankane/mailkick
|
89
119
|
licenses:
|
90
120
|
- MIT
|
@@ -105,8 +135,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
135
|
version: '0'
|
106
136
|
requirements: []
|
107
137
|
rubyforge_project:
|
108
|
-
rubygems_version: 2.
|
138
|
+
rubygems_version: 2.6.8
|
109
139
|
signing_key:
|
110
140
|
specification_version: 4
|
111
141
|
summary: Email subscriptions made easy
|
112
|
-
test_files:
|
142
|
+
test_files:
|
143
|
+
- test/mailkick_test.rb
|
144
|
+
- test/test_helper.rb
|