smtp_url 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -0
- data/Readme.md +8 -5
- data/lib/smtp_url/railtie.rb +8 -2
- data/lib/smtp_url/version.rb +1 -1
- data/spec/smtp_url/parser_spec.rb +1 -0
- data/spec/smtp_url/railtie_spec.rb +58 -0
- data/spec/spec_helper.rb +11 -0
- metadata +7 -2
data/Gemfile
CHANGED
data/Readme.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# SmtpURL setup
|
2
2
|
|
3
3
|
This gem allows you to configure your smtp settings for mail and
|
4
|
-
action mailer using a url. The intention is to keep those settings
|
5
|
-
out of your code and allow easily setting them with an environment
|
4
|
+
action mailer using a url. The intention is to keep those settings
|
5
|
+
out of your code and allow easily setting them with an environment
|
6
6
|
variable.
|
7
7
|
|
8
8
|
## Installation
|
@@ -13,7 +13,10 @@ Add to your `Gemfile`:
|
|
13
13
|
|
14
14
|
## Usage
|
15
15
|
|
16
|
-
|
16
|
+
If you are in Rails it will automatically setup your email settings if
|
17
|
+
you have the SMTP_URL enviroment variable set.
|
18
|
+
|
19
|
+
Use a SMTP_URL that looks like so:
|
17
20
|
|
18
21
|
smtp://<user>:<password>@<hostname>:<port>/?<options>
|
19
22
|
|
@@ -25,7 +28,7 @@ both the domain and authentication options. For example:
|
|
25
28
|
Only `hostname`, is required. Everything else is optional. It will
|
26
29
|
default to port 25 if it is not specified.
|
27
30
|
|
28
|
-
Set
|
31
|
+
Set SMTP_URL in your server setup like so:
|
29
32
|
|
30
33
|
export SMTP_URL=smtp://user:secret@mailserver:587/?domain=test.com
|
31
34
|
|
@@ -34,7 +37,7 @@ Set the URL in an enviroment variable in your server setup:
|
|
34
37
|
Can be very useful in development when paired with something like
|
35
38
|
[Mailcatcher](http://mailcatcher.me/):
|
36
39
|
|
37
|
-
export SMTP_URL=smtp://
|
40
|
+
export SMTP_URL=smtp://localhost:1025
|
38
41
|
|
39
42
|
|
40
43
|
## License
|
data/lib/smtp_url/railtie.rb
CHANGED
@@ -1,6 +1,12 @@
|
|
1
|
+
require "smtp_url/parser"
|
2
|
+
|
1
3
|
module SmtpURL
|
2
4
|
class Railtie < Rails::Railtie
|
3
|
-
|
4
|
-
|
5
|
+
if ENV["SMTP_URL"]
|
6
|
+
config.action_mailer.delivery_method = :smtp
|
7
|
+
config.action_mailer.smtp_settings = SmtpURL::Parser.new(ENV["SMTP_URL"]).parse
|
8
|
+
else
|
9
|
+
Rails.logger.warn "SmtpURL did not setup your email delivery because the SMTP_URL env var was missing"
|
10
|
+
end
|
5
11
|
end
|
6
12
|
end
|
data/lib/smtp_url/version.rb
CHANGED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Rails
|
4
|
+
class Railtie
|
5
|
+
def self.config
|
6
|
+
Config.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.mailer_config
|
10
|
+
MailerConfig.new
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class Config
|
15
|
+
def action_mailer
|
16
|
+
MailerConfig.new
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class MailerConfig
|
21
|
+
def deliver_method=(method)
|
22
|
+
end
|
23
|
+
|
24
|
+
def smtp_settings=(hash)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class Logger
|
29
|
+
def warn(message)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.logger
|
34
|
+
Logger.new
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
require 'smtp_url/railtie'
|
39
|
+
|
40
|
+
describe SmtpURL::Railtie do
|
41
|
+
|
42
|
+
it "should log a warning if SMTP_URL is not set" do
|
43
|
+
Rails::Logger.any_instance.expects(:warn).with('SmtpURL did not setup your email delivery because the SMTP_URL env var was missing')
|
44
|
+
load 'smtp_url/railtie.rb'
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should setup action_mailer settings when SMTP_URL is set" do
|
48
|
+
ENV['SMTP_URL'] = 'smtp://localhost:1025'
|
49
|
+
Rails::MailerConfig.any_instance.expects(:delivery_method=).with(:smtp)
|
50
|
+
Rails::MailerConfig.any_instance.expects(:smtp_settings=)
|
51
|
+
load 'smtp_url/railtie.rb'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "mocha/api"
|
3
|
+
require "rspec"
|
4
|
+
|
5
|
+
RSpec.configure do |config|
|
6
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
7
|
+
config.run_all_when_everything_filtered = true
|
8
|
+
config.filter_run :focus
|
9
|
+
config.mock_framework = :mocha
|
10
|
+
config.order = 'random'
|
11
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smtp_url
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -45,6 +45,8 @@ files:
|
|
45
45
|
- lib/smtp_url/version.rb
|
46
46
|
- smtp_url.gemspec
|
47
47
|
- spec/smtp_url/parser_spec.rb
|
48
|
+
- spec/smtp_url/railtie_spec.rb
|
49
|
+
- spec/spec_helper.rb
|
48
50
|
homepage: https://github.com/danielfarrell/smtp_url
|
49
51
|
licenses: []
|
50
52
|
post_install_message:
|
@@ -71,3 +73,6 @@ specification_version: 3
|
|
71
73
|
summary: Convert an smtp url into mail/action mailer friendly hashes
|
72
74
|
test_files:
|
73
75
|
- spec/smtp_url/parser_spec.rb
|
76
|
+
- spec/smtp_url/railtie_spec.rb
|
77
|
+
- spec/spec_helper.rb
|
78
|
+
has_rdoc:
|