pling-actionmailer 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -6,3 +6,4 @@
6
6
  doc/
7
7
  Gemfile.lock
8
8
  pkg/*
9
+ .DS_Store
data/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ## Install
8
8
 
9
- gem 'pling-actionmailer', :require => 'pling/gateways/action_mailer'
9
+ gem 'pling-actionmailer', :require => 'pling/action_mailer'
10
10
 
11
11
  ## Build Status
12
12
 
@@ -0,0 +1,6 @@
1
+ module Pling
2
+ module ActionMailer
3
+ autoload :Gateway, 'pling/action_mailer/gateway'
4
+ autoload :Mailer, 'pling/action_mailer/mailer'
5
+ end
6
+ end
@@ -0,0 +1,31 @@
1
+ require 'pling'
2
+ require 'action_mailer'
3
+
4
+ module Pling
5
+ module ActionMailer
6
+ class Gateway < Pling::Gateway
7
+
8
+ handles :email, :mail, :actionmailer
9
+
10
+ def initialize(configuration)
11
+ super
12
+ require_configuration([:from])
13
+ end
14
+
15
+ def deliver!(message, device)
16
+ mailer = configuration[:mailer] || Pling::ActionMailer::Mailer
17
+ mailer.pling_message(message, device, configuration).deliver
18
+ end
19
+
20
+ private
21
+
22
+ def default_configuration
23
+ super.merge({
24
+ :html => true,
25
+ :text => true
26
+ })
27
+ end
28
+
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,18 @@
1
+ require 'action_mailer'
2
+
3
+ module Pling
4
+ module ActionMailer
5
+ class Mailer < ::ActionMailer::Base
6
+ append_view_path File.expand_path('../../../../app/views', __FILE__)
7
+
8
+ def pling_message(message, device, configuration)
9
+ @message, @device, @configuration = message, device, configuration
10
+
11
+ mail(:to => device.identifier, :from => configuration[:from], :subject => message.subject) do |format|
12
+ format.text { render 'pling/mailer/pling_message' } if configuration[:text]
13
+ format.html { render 'pling/mailer/pling_message' } if configuration[:html]
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "pling-actionmailer"
5
- s.version = "0.2.0"
5
+ s.version = "0.3.0"
6
6
  s.authors = ["benedikt", "t6d", "fabrik42"]
7
7
  s.email = ["benedikt@synatic.net", "me@t6d.de", "fabrik42@gmail.com"]
8
8
  s.homepage = "http://flinc.github.com/pling-actionmailer"
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Pling::Gateway::ActionMailer do
3
+ describe Pling::ActionMailer::Gateway do
4
4
 
5
5
  let(:valid_configuration) do
6
6
  { :from => 'random@example.com' }
@@ -12,11 +12,11 @@ describe Pling::Gateway::ActionMailer do
12
12
  let(:mail) { mock(:deliver => true) }
13
13
 
14
14
  before do
15
- Pling::Gateway::ActionMailer::Mailer.stub(:pling_message => mail)
15
+ Pling::ActionMailer::Mailer.stub(:pling_message => mail)
16
16
  end
17
17
 
18
18
  it 'should handle various action mailer related device types' do
19
- Pling::Gateway::ActionMailer.handled_types.should =~ [:mail, :email, :actionmailer]
19
+ Pling::ActionMailer::Gateway.handled_types.should =~ [:mail, :email, :actionmailer]
20
20
  end
21
21
 
22
22
  context 'when created with an invalid configuration' do
@@ -24,7 +24,7 @@ describe Pling::Gateway::ActionMailer do
24
24
  it "should raise an error when :#{attribute} is missing" do
25
25
  configuration = valid_configuration
26
26
  configuration.delete(attribute)
27
- expect { Pling::Gateway::ActionMailer.new(configuration) }.to raise_error(ArgumentError, /:#{attribute} is missing/)
27
+ expect { Pling::ActionMailer::Gateway.new(configuration) }.to raise_error(ArgumentError, /:#{attribute} is missing/)
28
28
  end
29
29
  end
30
30
  end
@@ -32,9 +32,9 @@ describe Pling::Gateway::ActionMailer do
32
32
  context 'when created with a valid configuration' do
33
33
  it 'should pass the full configuration to the mailer' do
34
34
  configuration = valid_configuration.merge({ :something => true })
35
- gateway = Pling::Gateway::ActionMailer.new(configuration)
35
+ gateway = Pling::ActionMailer::Gateway.new(configuration)
36
36
 
37
- Pling::Gateway::ActionMailer::Mailer.
37
+ Pling::ActionMailer::Mailer.
38
38
  should_receive(:pling_message).
39
39
  with(anything, anything, hash_including(configuration)).and_return(mail)
40
40
 
@@ -47,21 +47,21 @@ describe Pling::Gateway::ActionMailer do
47
47
  with(message, device, hash_including(valid_configuration)).
48
48
  and_return(mail)
49
49
 
50
- gateway = Pling::Gateway::ActionMailer.new(valid_configuration.merge(:mailer => mailer))
50
+ gateway = Pling::ActionMailer::Gateway.new(valid_configuration.merge(:mailer => mailer))
51
51
 
52
52
  gateway.deliver(message, device)
53
53
  end
54
54
 
55
55
  it 'should not change the configuration' do
56
56
  configuration = valid_configuration.merge(:html => true, :text => false)
57
- gateway = Pling::Gateway::ActionMailer.new(configuration)
57
+ gateway = Pling::ActionMailer::Gateway.new(configuration)
58
58
 
59
59
  expect { gateway.deliver(message, device) }.to_not change(configuration, :count)
60
60
  end
61
61
  end
62
62
 
63
63
  describe '#deliver' do
64
- subject { Pling::Gateway::ActionMailer.new(valid_configuration) }
64
+ subject { Pling::ActionMailer::Gateway.new(valid_configuration) }
65
65
 
66
66
  it 'should raise an error if no message is given' do
67
67
  expect { subject.deliver(nil, device) }.to raise_error
@@ -82,7 +82,7 @@ describe Pling::Gateway::ActionMailer do
82
82
  end
83
83
 
84
84
  it 'should try to deliver the given message' do
85
- Pling::Gateway::ActionMailer::Mailer.
85
+ Pling::ActionMailer::Mailer.
86
86
  should_receive(:pling_message).
87
87
  with(message, device, hash_including(valid_configuration)).
88
88
  and_return(mail)
@@ -1,9 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Pling::Gateway::ActionMailer::Mailer do
3
+ describe Pling::ActionMailer::Mailer do
4
4
  subject { described_class }
5
5
 
6
- let(:message) { Pling::Message.new('Hello from Pling') }
6
+ let(:message) { Pling::Message.new(:body => 'Hello from Pling', :subject => 'Subject') }
7
7
  let(:device) { Pling::Device.new(:identifier => 'DEVICEIDENTIFIER', :type => :email) }
8
8
  let(:mail) { described_class.pling_message(message, device, configuration) }
9
9
  let(:configuration) do
@@ -14,7 +14,7 @@ describe Pling::Gateway::ActionMailer::Mailer do
14
14
  }
15
15
  end
16
16
 
17
- specify { described_class.ancestors =~ ActionMailer::Base }
17
+ specify { described_class.ancestors =~ ::ActionMailer::Base }
18
18
 
19
19
  describe '.pling_message' do
20
20
 
@@ -49,6 +49,10 @@ describe Pling::Gateway::ActionMailer::Mailer do
49
49
  mail.to.should include('DEVICEIDENTIFIER')
50
50
  end
51
51
 
52
+ it 'should use message.subject as subject' do
53
+ mail.subject.should include('Subject')
54
+ end
55
+
52
56
  it 'should use sender from the configuration' do
53
57
  mail.from.should include('random@example.com')
54
58
  end
@@ -3,7 +3,8 @@ require 'bundler'
3
3
 
4
4
  Bundler.require
5
5
 
6
- require 'pling/gateway/action_mailer'
6
+ require 'pling/action_mailer'
7
+ require 'action_mailer'
7
8
 
8
9
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
9
10
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pling-actionmailer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2011-10-28 00:00:00.000000000Z
14
+ date: 2011-11-11 00:00:00.000000000Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: pling
18
- requirement: &70346678559800 !ruby/object:Gem::Requirement
18
+ requirement: &70155430875740 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ~>
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: '0.1'
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *70346678559800
26
+ version_requirements: *70155430875740
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: actionmailer
29
- requirement: &70346678558420 !ruby/object:Gem::Requirement
29
+ requirement: &70155430874580 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ~>
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: '3.0'
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *70346678558420
37
+ version_requirements: *70155430874580
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: rspec
40
- requirement: &70346678557260 !ruby/object:Gem::Requirement
40
+ requirement: &70155430873600 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ~>
@@ -45,10 +45,10 @@ dependencies:
45
45
  version: '2.7'
46
46
  type: :development
47
47
  prerelease: false
48
- version_requirements: *70346678557260
48
+ version_requirements: *70155430873600
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: yard
51
- requirement: &70346678556360 !ruby/object:Gem::Requirement
51
+ requirement: &70155430872680 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ! '>='
@@ -56,10 +56,10 @@ dependencies:
56
56
  version: '0.7'
57
57
  type: :development
58
58
  prerelease: false
59
- version_requirements: *70346678556360
59
+ version_requirements: *70155430872680
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: rake
62
- requirement: &70346678555560 !ruby/object:Gem::Requirement
62
+ requirement: &70155430871840 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ! '>='
@@ -67,7 +67,7 @@ dependencies:
67
67
  version: '0.9'
68
68
  type: :development
69
69
  prerelease: false
70
- version_requirements: *70346678555560
70
+ version_requirements: *70155430871840
71
71
  description: Pling Gateway to ActionMailer
72
72
  email:
73
73
  - benedikt@synatic.net
@@ -86,10 +86,12 @@ files:
86
86
  - Rakefile
87
87
  - app/views/pling/mailer/pling_message.html.erb
88
88
  - app/views/pling/mailer/pling_message.text.erb
89
- - lib/pling/gateway/action_mailer.rb
89
+ - lib/pling/action_mailer.rb
90
+ - lib/pling/action_mailer/gateway.rb
91
+ - lib/pling/action_mailer/mailer.rb
90
92
  - pling-actionmailer.gemspec
91
- - spec/pling/gateway/action_mailer/mailer_spec.rb
92
- - spec/pling/gateway/action_mailer_spec.rb
93
+ - spec/pling/action_mailer/gateway_spec.rb
94
+ - spec/pling/action_mailer/mailer_spec.rb
93
95
  - spec/spec_helper.rb
94
96
  homepage: http://flinc.github.com/pling-actionmailer
95
97
  licenses: []
@@ -116,7 +118,7 @@ signing_key:
116
118
  specification_version: 3
117
119
  summary: Pling Gateway to ActionMailer
118
120
  test_files:
119
- - spec/pling/gateway/action_mailer/mailer_spec.rb
120
- - spec/pling/gateway/action_mailer_spec.rb
121
+ - spec/pling/action_mailer/gateway_spec.rb
122
+ - spec/pling/action_mailer/mailer_spec.rb
121
123
  - spec/spec_helper.rb
122
124
  has_rdoc:
@@ -1,42 +0,0 @@
1
- require 'pling'
2
- require 'action_mailer'
3
-
4
- module Pling
5
- module Gateway
6
- class ActionMailer < Base
7
- class Mailer < ::ActionMailer::Base
8
- append_view_path File.expand_path('../../../../app/views', __FILE__)
9
-
10
- def pling_message(message, device, configuration)
11
- @message, @device, @configuration = message, device, configuration
12
-
13
- mail(:to => device.identifier, :from => configuration[:from]) do |format|
14
- format.text { render 'pling/mailer/pling_message' } if configuration[:text]
15
- format.html { render 'pling/mailer/pling_message' } if configuration[:html]
16
- end
17
- end
18
- end
19
-
20
- handles :email, :mail, :actionmailer
21
-
22
- def initialize(configuration)
23
- setup_configuration(configuration, :require => [:from])
24
- end
25
-
26
- def deliver!(message, device)
27
- mailer = configuration[:mailer] || Pling::Gateway::ActionMailer::Mailer
28
- mailer.pling_message(message, device, configuration).deliver
29
- end
30
-
31
- private
32
-
33
- def default_configuration
34
- super.merge({
35
- :html => true,
36
- :text => true
37
- })
38
- end
39
-
40
- end
41
- end
42
- end