posten 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +39 -5
- data/lib/posten/test.rb +12 -2
- data/lib/posten/version.rb +1 -1
- data/lib/posten.rb +1 -1
- data/posten.gemspec +1 -1
- data/test/deliver.rb +1 -1
- data/test/sandbox.rb +35 -11
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 028dc4afd9e44b74fc548a2bb523926445f964d6
|
4
|
+
data.tar.gz: 0ef9bffeda538885f47d4179cb09c87b233dc080
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c023d101bebc3c4f0f9cc761fd013a4095207811d650b486f7167eab24d20957e49895f151aad7f8617164ddcae507b6799490a333b228e5ca9130c9473febe
|
7
|
+
data.tar.gz: dcdda50a9edae464213f5943b77d641ba80e2b30d6cf3d784f2d79b8143108a1d84cbaf3f7c7aa8cb66df313b05be9051e9f168f52e83413e44c5402a47d64ea
|
data/README.md
CHANGED
@@ -144,6 +144,39 @@ end
|
|
144
144
|
welcome {{ app.titleize(user.name) }}!
|
145
145
|
```
|
146
146
|
|
147
|
+
Development
|
148
|
+
-----------
|
149
|
+
|
150
|
+
You can use [mt][mt] to fake a SMTP server and print mails to STDOUT.
|
151
|
+
|
152
|
+
```
|
153
|
+
$ gem install mt
|
154
|
+
$ mt 2525
|
155
|
+
```
|
156
|
+
|
157
|
+
Update the smtp settings with the fake SMTP server url. It's recommended
|
158
|
+
to store configuration in environment variables.
|
159
|
+
|
160
|
+
```ruby
|
161
|
+
# SMTP_URL => "smtp://localhost:2525"
|
162
|
+
Posten.connect(url: ENV.fetch("SMTP_URL"))
|
163
|
+
```
|
164
|
+
|
165
|
+
Enjoy:
|
166
|
+
|
167
|
+
```
|
168
|
+
$ mt 2525
|
169
|
+
---
|
170
|
+
from: bob@posten.gem
|
171
|
+
to: alice@posten.gem
|
172
|
+
Reply-To:
|
173
|
+
subject: =?utf-8?Q?hello?=
|
174
|
+
Message-ID: <1442511985.7632298.501.70146383400960@me.com>
|
175
|
+
Date: Thu, 17 Sep 2015 19:46:25 +0200
|
176
|
+
|
177
|
+
Can you keep a secret?
|
178
|
+
```
|
179
|
+
|
147
180
|
Testing
|
148
181
|
-------
|
149
182
|
|
@@ -171,16 +204,14 @@ mailer.welcome_mail(User.first)
|
|
171
204
|
UserMailer.deliveries.count # => 1
|
172
205
|
```
|
173
206
|
|
174
|
-
`Posten.
|
175
|
-
you can reset it manually using Array's `clear` method before each test is
|
176
|
-
executed. The next example uses the testing library [Cutest][cutest]:
|
207
|
+
Use `Posten.reset` to have a clean slate before each test is executed:
|
177
208
|
|
178
209
|
```ruby
|
179
210
|
require "cutest"
|
180
211
|
require "posten/test"
|
181
212
|
|
182
|
-
|
183
|
-
Posten.
|
213
|
+
prepare do
|
214
|
+
Posten.reset
|
184
215
|
end
|
185
216
|
|
186
217
|
scope "signup" do
|
@@ -197,6 +228,8 @@ scope "signup" do
|
|
197
228
|
end
|
198
229
|
```
|
199
230
|
|
231
|
+
The example above uses the testing library [Cutest][cutest].
|
232
|
+
|
200
233
|
SMTP Settings
|
201
234
|
-------------
|
202
235
|
|
@@ -243,3 +276,4 @@ $ gem install posten
|
|
243
276
|
|
244
277
|
[cutest]: https://github.com/djanowski/cutest
|
245
278
|
[mote]: https://github.com/soveran/mote
|
279
|
+
[mt]: https://github.com/soveran/mt
|
data/lib/posten/test.rb
CHANGED
@@ -1,11 +1,21 @@
|
|
1
1
|
require "ostruct"
|
2
2
|
|
3
3
|
class Posten
|
4
|
+
def self.sandbox
|
5
|
+
return @@sandbox ||= Hash.new { |h, k| h[k] = [] }
|
6
|
+
end
|
7
|
+
|
4
8
|
def self.deliveries
|
5
|
-
return
|
9
|
+
return sandbox[self.name]
|
6
10
|
end
|
7
11
|
|
8
|
-
def
|
12
|
+
def self.reset
|
13
|
+
sandbox.clear
|
14
|
+
end
|
15
|
+
|
16
|
+
undef_method(:deliver)
|
17
|
+
|
18
|
+
def deliver(options = {})
|
9
19
|
deliveries << OpenStruct.new(defaults.merge(options))
|
10
20
|
end
|
11
21
|
|
data/lib/posten/version.rb
CHANGED
data/lib/posten.rb
CHANGED
data/posten.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
|
13
13
|
s.files = `git ls-files`.split("\n")
|
14
14
|
|
15
|
-
s.add_dependency "malone", "~> 1.
|
15
|
+
s.add_dependency "malone", "~> 1.2.0"
|
16
16
|
s.add_dependency "mote", "~> 1.1.4"
|
17
17
|
s.add_dependency "seteable", "1.0.0"
|
18
18
|
s.add_development_dependency "bundler", "~> 1.10"
|
data/test/deliver.rb
CHANGED
data/test/sandbox.rb
CHANGED
@@ -1,21 +1,45 @@
|
|
1
1
|
require_relative "../lib/posten/test"
|
2
2
|
|
3
|
-
|
4
|
-
Posten.connect({})
|
3
|
+
Posten.connect({})
|
5
4
|
|
6
|
-
|
5
|
+
Posten.defaults(from: "bob@posten.gem", to: "eve@posten.gem")
|
7
6
|
|
8
|
-
|
7
|
+
setup do
|
8
|
+
Posten.reset
|
9
9
|
|
10
|
-
|
11
|
-
subject: "subject",
|
12
|
-
text: "text",
|
13
|
-
html: "<html></html>"
|
14
|
-
}
|
10
|
+
assert_equal 0, Posten.deliveries.size
|
15
11
|
|
16
|
-
|
12
|
+
{ subject: "subject", text: "text", html: "<html></html>" }
|
13
|
+
end
|
14
|
+
|
15
|
+
test "sandbox" do |params|
|
16
|
+
posten = Posten.new
|
17
|
+
posten.deliver(params)
|
17
18
|
|
18
19
|
mail = Posten.deliveries.first
|
19
20
|
|
20
|
-
assert_equal defaults.merge(params), mail.to_h
|
21
|
+
assert_equal posten.defaults.merge(params), mail.to_h
|
22
|
+
end
|
23
|
+
|
24
|
+
test "mailer" do |params|
|
25
|
+
class UserMailer < Posten
|
26
|
+
end
|
27
|
+
|
28
|
+
mailer = UserMailer.new
|
29
|
+
mailer.deliver(params)
|
30
|
+
|
31
|
+
mail = UserMailer.deliveries.first
|
32
|
+
|
33
|
+
assert_equal mailer.defaults.merge(params), mail.to_h
|
34
|
+
end
|
35
|
+
|
36
|
+
test "different sandboxes" do |params|
|
37
|
+
class UserMailer < Posten
|
38
|
+
end
|
39
|
+
|
40
|
+
Posten.new.deliver
|
41
|
+
UserMailer.new.deliver
|
42
|
+
|
43
|
+
assert_equal 1, Posten.deliveries.count
|
44
|
+
assert_equal 1, UserMailer.deliveries.count
|
21
45
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: posten
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francesco Rodríguez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: malone
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.2.0
|
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: 1.
|
26
|
+
version: 1.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: mote
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|