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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 90d458c1e23507be111eeb1e9de2ecfa430bbea1
4
- data.tar.gz: bd18b0a3b32a5bd69ad8a73409c5d42bb7c6435e
3
+ metadata.gz: 1f87170752ac89e4482f6f10211bfcd3c0e12f3d
4
+ data.tar.gz: 48e44c8d786a2b75fe34bc1d9435932e4fb8b5ec
5
5
  SHA512:
6
- metadata.gz: 7ccb7874c79601b112b15242802a760d75a97cc16c07ec7b1163fbfd6bfb609b011cf26d6d443ef2edda5ff13850a016ca62073adbff703024dfc52fda776eb9
7
- data.tar.gz: fd76e86747549847fcfe4359aba508e575c8b36c7eacba58f254209a012759b34fa34c044aa7c27d22f428fc6ff011f41208511f6d8207067753f5c0aa9d4439
6
+ metadata.gz: 98fd63a5858b70759ea11bbe64666cdea206744bd3ec6896f7ab8f1e2ea115c80e502923b03f6c171405b7be0cc23f6caed6e4f4c4cf9f3be55a964c02573aa5
7
+ data.tar.gz: f358a7f4df99d494f267d4c59c5982da6d1d20ee585663e72dae8bf64fd100d064ddbf77f6fbdc386a24cf52c91ad86a73c1d4801448b78333b2ece9c7e7b9dd
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.1.6
2
+
3
+ - Fixed error with frozen strings
4
+
1
5
  ## 0.1.5
2
6
 
3
7
  - Use `safely`
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in mailkick.gemspec
4
4
  gemspec
5
+
6
+ gem "actionmailer"
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 = proc {|email| User.where(email: email).first }
198
+ Mailkick.user_method = -> (email) { User.find_by(email: email) }
199
199
  ```
200
200
 
201
201
  Use a different email field
data/Rakefile CHANGED
@@ -1 +1,8 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ task default: :test
5
+ Rake::TestTask.new do |t|
6
+ t.libs << "test"
7
+ t.pattern = "test/**/*_test.rb"
8
+ end
@@ -1,7 +1,7 @@
1
1
  module Mailkick
2
2
  module Model
3
- def mailkick_user(options = {})
4
- email_key = options[:email_key] || :email
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]
@@ -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.body.raw_source.gsub!(/%7B%7BMAILKICK_TOKEN%7D%7D/, CGI.escape(token))
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
@@ -1,3 +1,3 @@
1
1
  module Mailkick
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
data/lib/mailkick.rb CHANGED
@@ -1,5 +1,7 @@
1
- require "mailkick/version"
2
- require "mailkick/engine"
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 "set"
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
- ActionMailer::Base.send(:prepend, Mailkick::Mailer)
93
- ActiveRecord::Base.send(:extend, Mailkick::Model) if defined?(ActiveRecord)
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", "~> 1.6"
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
@@ -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.5
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: 2016-12-07 00:00:00.000000000 Z
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: '1.6'
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: '1.6'
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.5.1
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