mailkick 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
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