posten 0.0.2 → 0.0.3
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/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
|