thincloud-postmark 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 1.9.3@thincloud-postmark
data/Gemfile CHANGED
@@ -1,4 +1,9 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
- # Specify your gem's dependencies in thincloud-postmark.gemspec
4
3
  gemspec
4
+
5
+ group :test do
6
+ platforms :ruby do
7
+ gem "simplecov"
8
+ end
9
+ end
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ gem install thincloud-postmark
37
37
 
38
38
  ## Usage
39
39
 
40
- This gem adds a generator to Rails, `thincloud:postmark`. Running the generator will install a Postmark initializer and a mail interceptor for non-production environments.
40
+ This gem adds a generator to Rails, `thincloud:postmark`. Running the generator will install a mail interceptor for non-production environments and a configuration initializer in `config/initializers/thincloud_postmark.rb` where your API key or environment variable can be defined.
41
41
 
42
42
  * Invoke the generator:
43
43
 
data/Rakefile CHANGED
@@ -1,2 +1,13 @@
1
1
  #!/usr/bin/env rake
2
+
2
3
  require "bundler/gem_tasks"
4
+ require "rake/testtask"
5
+
6
+ Rake::TestTask.new(:test) do |t|
7
+ t.libs << "lib"
8
+ t.libs << "test"
9
+ t.pattern = "test/**/*_test.rb"
10
+ t.verbose = false
11
+ end
12
+
13
+ task default: :test
@@ -12,7 +12,7 @@ module Thincloud
12
12
  gem "postmark-rails", "~> 0.4.1"
13
13
 
14
14
  copy_file "action_mailer.rb", "config/initializers/action_mailer.rb"
15
- copy_file "postmark.rb", "config/initializers/postmark.rb"
15
+ copy_file "thincloud_postmark.rb", "config/initializers/thincloud_postmark.rb"
16
16
  copy_file "mail_interceptor.rb", "lib/mail_interceptor.rb"
17
17
 
18
18
  say_status "", ""
@@ -0,0 +1,3 @@
1
+ Thincloud::Postmark.configure do |config|
2
+ config.api_key = ENV["POSTMARK_API_KEY"] || "POSTMARK_API_TEST"
3
+ end
@@ -0,0 +1,21 @@
1
+ module Thincloud
2
+ module Postmark
3
+ class << self
4
+ attr_accessor :configuration
5
+ end
6
+
7
+ def self.configure
8
+ self.configuration ||= Configuration.new
9
+ yield configuration
10
+ end
11
+
12
+ # Public: Configuration options for the Thincloud::Postmark module
13
+ class Configuration
14
+ attr_accessor :api_key
15
+
16
+ def initialize
17
+ @api_key = "POSTMARK_API_TEST"
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,19 @@
1
+ class Engine < ::Rails::Engine
2
+
3
+ # Require the config initializer in advance so it is available for
4
+ # the "thincloud.postmark.action_mailer" initializer
5
+ initializer "thincloud.postmark.configuration", before: "thincloud.postmark.action_mailer" do
6
+ config_initializer = File.expand_path("config/initializers/thincloud_postmark.rb")
7
+ require config_initializer if File.exists?(config_initializer)
8
+ end
9
+
10
+ # Apply the postmark settings just before ActionMailer applies them
11
+ initializer "thincloud.postmark.action_mailer", before: "action_mailer.set_configs" do
12
+ if api_key = Thincloud::Postmark.configuration.try(:api_key)
13
+ Postmark.secure = true
14
+ Rails.application.config.action_mailer.delivery_method = :postmark
15
+ Rails.application.config.action_mailer.postmark_settings = { api_key: api_key }
16
+ end
17
+ end
18
+
19
+ end
@@ -1,5 +1,5 @@
1
1
  module Thincloud
2
2
  module Postmark
3
- VERSION = "0.1.1"
3
+ VERSION = "0.2.0 "
4
4
  end
5
5
  end
@@ -1,8 +1,10 @@
1
+ require "rails"
1
2
  require "postmark-rails"
2
- require "thincloud-postmark/version"
3
+ require "thincloud/postmark/configuration"
4
+ require "thincloud/postmark/engine"
5
+ require "thincloud/postmark/version"
3
6
 
4
7
  module Thincloud
5
8
  module Postmark
6
- # Your code goes here...
7
9
  end
8
10
  end
@@ -0,0 +1,21 @@
1
+ require "minitest_helper"
2
+
3
+ describe Thincloud::Postmark::Configuration do
4
+
5
+ describe "api_key" do
6
+ describe "default" do
7
+ it { Thincloud::Postmark::Configuration.new.api_key.must_equal "POSTMARK_API_TEST" }
8
+ end
9
+
10
+ describe "provided" do
11
+ before do
12
+ Thincloud::Postmark.configure do |config|
13
+ config.api_key = "abc123"
14
+ end
15
+ end
16
+
17
+ it { Thincloud::Postmark.configuration.api_key.must_equal "abc123" }
18
+ end
19
+ end
20
+
21
+ end
@@ -0,0 +1,22 @@
1
+ if RUBY_ENGINE == "ruby"
2
+ begin
3
+ require "simplecov"
4
+ SimpleCov.add_filter "test"
5
+ SimpleCov.add_filter "config"
6
+ SimpleCov.command_name "MiniTest"
7
+ SimpleCov.start
8
+ rescue LoadError
9
+ warn "unable to load SimpleCov"
10
+ end
11
+ end
12
+
13
+ ENV["RAILS_ENV"] = "test"
14
+
15
+ require "minitest/autorun"
16
+ require "minitest/pride"
17
+
18
+ require "thincloud-postmark"
19
+ require "thincloud/postmark/configuration"
20
+
21
+ # Load support files
22
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
@@ -0,0 +1,7 @@
1
+ require "minitest_helper"
2
+
3
+ describe Thincloud::Postmark do
4
+ it "exists" do
5
+ Thincloud::Postmark.must_be_kind_of Module
6
+ end
7
+ end
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require File.expand_path("../lib/thincloud-postmark/version", __FILE__)
2
+ require File.expand_path("../lib/thincloud/postmark/version", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
5
  gem.authors = ["Robert Bousquet", "Phil Cohen"]
@@ -15,5 +15,7 @@ Gem::Specification.new do |gem|
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = Thincloud::Postmark::VERSION
17
17
 
18
+ gem.add_development_dependency "thincloud-test", "~> 0.3.2"
19
+
18
20
  gem.add_runtime_dependency "postmark-rails", "~> 0.4.1"
19
21
  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.1.1
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,8 +10,24 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-09-19 00:00:00.000000000 Z
13
+ date: 2012-10-16 00:00:00.000000000 Z
14
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: thincloud-test
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 0.3.2
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 0.3.2
15
31
  - !ruby/object:Gem::Dependency
16
32
  name: postmark-rails
17
33
  requirement: !ruby/object:Gem::Requirement
@@ -37,6 +53,7 @@ extensions: []
37
53
  extra_rdoc_files: []
38
54
  files:
39
55
  - .gitignore
56
+ - .ruby-version
40
57
  - Gemfile
41
58
  - LICENSE
42
59
  - README.md
@@ -44,9 +61,14 @@ files:
44
61
  - lib/generators/thincloud/postmark/postmark_generator.rb
45
62
  - lib/generators/thincloud/postmark/templates/action_mailer.rb
46
63
  - lib/generators/thincloud/postmark/templates/mail_interceptor.rb
47
- - lib/generators/thincloud/postmark/templates/postmark.rb
64
+ - lib/generators/thincloud/postmark/templates/thincloud_postmark.rb
48
65
  - lib/thincloud-postmark.rb
49
- - lib/thincloud-postmark/version.rb
66
+ - lib/thincloud/postmark/configuration.rb
67
+ - lib/thincloud/postmark/engine.rb
68
+ - lib/thincloud/postmark/version.rb
69
+ - test/configuration_test.rb
70
+ - test/minitest_helper.rb
71
+ - test/thincloud-postmark_test.rb
50
72
  - thincloud-postmark.gemspec
51
73
  homepage: http://newleaders.github.com/thincloud-postmark
52
74
  licenses: []
@@ -60,16 +82,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
60
82
  - - ! '>='
61
83
  - !ruby/object:Gem::Version
62
84
  version: '0'
85
+ segments:
86
+ - 0
87
+ hash: -3057873401400622908
63
88
  required_rubygems_version: !ruby/object:Gem::Requirement
64
89
  none: false
65
90
  requirements:
66
91
  - - ! '>='
67
92
  - !ruby/object:Gem::Version
68
93
  version: '0'
94
+ segments:
95
+ - 0
96
+ hash: -3057873401400622908
69
97
  requirements: []
70
98
  rubyforge_project:
71
99
  rubygems_version: 1.8.24
72
100
  signing_key:
73
101
  specification_version: 3
74
102
  summary: Postmark configuration for Rails apps.
75
- test_files: []
103
+ test_files:
104
+ - test/configuration_test.rb
105
+ - test/minitest_helper.rb
106
+ - test/thincloud-postmark_test.rb
@@ -1,6 +0,0 @@
1
- # ActionMailer Postmark setup
2
- Postmark.secure = true
3
- Rails.application.config.action_mailer.delivery_method = :postmark
4
- Rails.application.config.action_mailer.postmark_settings = {
5
- api_key: ENV["POSTMARK_API_KEY"] || "POSTMARK_API_TEST"
6
- }