thincloud-postmark 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -38,17 +38,27 @@ $ gem install thincloud-postmark
38
38
 
39
39
  ## Usage
40
40
 
41
+ Thincloud::Postmark is only enabled for environments included in the `environments` array. For instance, to use `Postmark` in development and staging the list would look like this:
42
+
43
+ ```ruby
44
+ [:development, :staging]
45
+ ```
46
+
47
+ The different configuration options and detailed below.
48
+
41
49
  ### Configuration
42
50
 
43
51
  Thincloud::Postmark configuration options are available to customize the engine behavior. Available options and their default values:
44
52
 
45
53
  ```ruby
54
+ # Rails environment(s) that should use the `postmark` delivery method.
55
+ environments = []
46
56
  api_key = "POSTMARK_API_TEST"
47
57
  interceptor_to = nil
48
58
  interceptor_cc = nil
49
59
  interceptor_bcc = nil
50
60
 
51
- # Rails environment(s) as a symbol that should have mail intercepted
61
+ # Rails environment(s) that should have mail intercepted.
52
62
  interceptor_environments = []
53
63
  ```
54
64
 
@@ -75,7 +85,8 @@ interceptor_bcc -> ENV["THINCLOUD_INTERCEPTOR_BCC"]
75
85
  The `Thincloud::Postmark` module accepts a `configure` block that takes the same options listed above. This block can be put into an initializer or inside of a `config\environments` file.
76
86
 
77
87
  ```ruby
78
- Thincloud::Postmark do |config|
88
+ Thincloud::Postmark.configure do |config|
89
+ config.environments = [:development, :production]
79
90
  config.api_key = "MY_API_KEY"
80
91
  config.secure = true
81
92
  config.interceptor_to = "keymaster@zuul.com"
@@ -91,6 +102,7 @@ You can also access the configuration via the Rails configuration object. In fac
91
102
 
92
103
  ```ruby
93
104
  #...
105
+ config.thincloud.postmark.environments = [:development, :production]
94
106
  config.thincloud.postmark.api_key = "MY_API_KEY"
95
107
  config.thincloud.postmark.secure = false
96
108
  config.thincloud.postmark.interceptor_environments = [:staging]
@@ -12,6 +12,7 @@ module Thincloud
12
12
 
13
13
  # Public: Configuration options for the Thincloud::Postmark module
14
14
  class Configuration
15
+ attr_accessor :environments
15
16
  attr_accessor :api_key
16
17
  attr_accessor :interceptor_to
17
18
  attr_accessor :interceptor_cc
@@ -25,6 +26,7 @@ module Thincloud
25
26
  interceptor_cc = ENV["THINCLOUD_INTERCEPTOR_CC"]
26
27
  interceptor_bcc = ENV["THINCLOUD_INTERCEPTOR_BCC"]
27
28
 
29
+ @environments = []
28
30
  @api_key ||= api_key
29
31
  @interceptor_to ||= interceptor_to
30
32
  @interceptor_cc ||= interceptor_cc
@@ -34,7 +34,10 @@ module Thincloud
34
34
  # process to make sure we have our config settings then we apply them
35
35
  # to AM::Base. Keep them in both places so config appears normal.
36
36
  initializer "thincloud.postmark.settings", before: "finisher_hook" do
37
- if configuration.api_key
37
+ # TODO: Find a way to check other environments in the tests. The dummy
38
+ # application setup in Rails Engine testing only allows us to test one
39
+ # environment, :test in this case.
40
+ if configuration.environments.include?(Rails.env.to_sym)
38
41
  [ActionMailer::Base, config.action_mailer].each do |c|
39
42
  c.delivery_method = :postmark
40
43
  c.postmark_settings = { api_key: configuration.api_key }
@@ -1,5 +1,5 @@
1
1
  module Thincloud
2
2
  module Postmark
3
- VERSION = "0.3.2"
3
+ VERSION = "0.4.0"
4
4
  end
5
5
  end
@@ -4,6 +4,8 @@ describe Thincloud::Postmark::Configuration do
4
4
  let(:config) { Thincloud::Postmark::Configuration.new }
5
5
 
6
6
  it { config.must_be_kind_of Thincloud::Postmark::Configuration }
7
+ it { config.must_respond_to :environments }
8
+ it { config.must_respond_to :environments= }
7
9
  it { config.must_respond_to :api_key }
8
10
  it { config.must_respond_to :api_key= }
9
11
  it { config.must_respond_to :secure }
@@ -15,6 +17,7 @@ describe Thincloud::Postmark::Configuration do
15
17
  it { config.must_respond_to :interceptor_bcc= }
16
18
 
17
19
  describe "defaults" do
20
+ it { config.environments.must_equal [] }
18
21
  it { config.api_key.must_equal "POSTMARK_API_TEST" }
19
22
  it { config.secure.must_equal true }
20
23
  it { ::Postmark.secure.must_equal true }
@@ -35,6 +35,7 @@ Dummy::Application.configure do
35
35
  # Print deprecation notices to the stderr
36
36
  config.active_support.deprecation = :stderr
37
37
 
38
+ config.thincloud.postmark.environments = [:test]
38
39
  config.thincloud.postmark.interceptor_environments = [:test]
39
40
  config.thincloud.postmark.interceptor_to = "marshmellowman@staypuft.com"
40
41
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thincloud-postmark
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2012-11-21 00:00:00.000000000 Z
15
+ date: 2012-11-23 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: thincloud-test
@@ -122,7 +122,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
122
122
  version: '0'
123
123
  segments:
124
124
  - 0
125
- hash: -1800728793378863451
125
+ hash: -2032068721589309994
126
126
  required_rubygems_version: !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
@@ -131,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
131
  version: '0'
132
132
  segments:
133
133
  - 0
134
- hash: -1800728793378863451
134
+ hash: -2032068721589309994
135
135
  requirements: []
136
136
  rubyforge_project:
137
137
  rubygems_version: 1.8.24