pakyow-mailer 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5176cd98fcad18048eaeb52eeeeb3cff53dce1bd
4
- data.tar.gz: af5629e8b9768e94752e1cdcf1b846d1b060b506
3
+ metadata.gz: 078a9bf4d7afbd84c0674c7e0bb89dc73cf383e9
4
+ data.tar.gz: cb84c77170807c604abf262e2e9f701434de9c6d
5
5
  SHA512:
6
- metadata.gz: 4e4db00b1ec12894a8495f2c18f7b24b061010822d0bf1aa78e681505147d48ccfbcac77723ebf82bd03c7443effb338b7bf2abcaf37ae48ad07210fa2359109
7
- data.tar.gz: 04e7f61535e189de36d546c8a360c1475041babb85494dbb8cf4ef1a83ec17f34b505c4e30057b6cf5eb4cd31e865373ee557978fbed84d3511f3c4f00e3fd37
6
+ metadata.gz: 54fe6ef23a9e653c307f272977fea6c8960dd3a054d139301d6cab1cfad16ce6bee88c96d8856805d45051a2d6a4eb996d61a7642f71f52ac2576ac597396c1d
7
+ data.tar.gz: 0ca068ebbea7fa205ac05e1b1683c0f60dbc3a5c1e0078aa31c501727b8e09d2466f2a55c4253619de64d3e00567f020e4eca88171fb6e86f150ec876ddaa1e3
@@ -1,3 +1,7 @@
1
+ = 0.9.0
2
+
3
+ * Removes support for Ruby versions < 2.0.0
4
+
1
5
  = 0.8.0 / 2014-03-02
2
6
 
3
7
  * Major rewrite, including premailer support
@@ -12,4 +16,4 @@
12
16
 
13
17
  = 0.7.0 / 2011-11-19
14
18
 
15
- * Initial gem release
19
+ * Initial gem release
@@ -1,31 +1,16 @@
1
- module Pakyow
2
- module Config
3
- class Mailer
4
- Config::Base.register_config(:mailer, self)
1
+ Pakyow::Config.register(:mailer) { |config|
2
+ # the default sender name
3
+ config.opt :default_sender, 'Pakyow'
5
4
 
6
- class << self
7
- attr_accessor :default_sender, :default_content_type, :delivery_method, :delivery_options, :encoding
8
-
9
- def default_sender
10
- @default_sender || "Pakyow"
11
- end
12
-
13
- def default_content_type
14
- @default_content_type || 'text/html; charset=' + encoding
15
- end
16
-
17
- def delivery_method
18
- @delivery_method || :sendmail
19
- end
20
-
21
- def delivery_options
22
- @delivery_options || {:enable_starttls_auto => false}
23
- end
5
+ # the default mimetype to use
6
+ config.opt :default_content_type, lambda { 'text/html; charset=' + Pakyow::Config.mailer.encoding }
24
7
 
25
- def encoding
26
- @encoding || 'UTF-8'
27
- end
28
- end
29
- end
30
- end
31
- end
8
+ # the delivery method to use for sending mail
9
+ config.opt :delivery_method, :sendmail
10
+
11
+ # any delivery options necessary for `delivery_method`
12
+ config.opt :delivery_options, { enable_starttls_auto: false }
13
+
14
+ # the default encoding to use
15
+ config.opt :encoding, 'UTF-8'
16
+ }
@@ -1,7 +1,7 @@
1
1
  module Pakyow
2
2
  module AppHelpers
3
3
  def mailer(view_path)
4
- Mailer.new(view_path, @presenter.store)
4
+ Mailer.from_store(view_path, @presenter.store)
5
5
  end
6
6
  end
7
7
  end
@@ -1,59 +1,72 @@
1
1
  module Pakyow
2
2
  class Mailer
3
3
  attr_accessor :view, :message, :processed
4
-
5
- def initialize(view_path, view_store)
6
- @view = view_store.view(view_path)
7
-
4
+
5
+ def self.from_store(view_path, view_store)
6
+ new(view: view_store.view(view_path))
7
+ end
8
+
9
+ def initialize(view: nil, content: nil)
10
+ @view = view
11
+ @content = content
12
+
8
13
  @message = Mail.new
9
- @message.from = Config::Base.mailer.default_sender
10
- @message.content_type = Config::Base.mailer.default_content_type
11
- @message.delivery_method(Config::Base.mailer.delivery_method, Config::Base.mailer.delivery_options)
14
+ @message.from = Config.mailer.default_sender
15
+ @message.content_type = Config.mailer.default_content_type
16
+ @message.delivery_method(Config.mailer.delivery_method, Config.mailer.delivery_options)
12
17
  end
13
-
18
+
14
19
  def deliver_to(recipient, subject = nil)
15
- html = content(:html)
16
- text = content(:text)
20
+ html = content :html
21
+ text = content :text
17
22
 
18
- @message.html_part do
19
- content_type 'text/html; charset=' + Config::Base.mailer.encoding
20
- body html
21
- end
23
+ if html.nil?
24
+ @message.body = text
25
+ else
26
+ @message.html_part do
27
+ content_type 'text/html; charset=' + Config.mailer.encoding
28
+ body html
29
+ end
22
30
 
23
- @message.text_part do
24
- body text
31
+ @message.text_part do
32
+ body text
33
+ end
25
34
  end
26
-
35
+
27
36
  @message.subject = subject if subject
28
-
37
+
29
38
  Array(recipient).each {|r| deliver(r)}
30
39
  end
31
40
 
32
41
  def content(type = :html)
33
- return process[type]
42
+ return process.fetch(type, nil)
34
43
  end
35
44
 
36
45
  protected
37
46
 
38
47
  def process
39
48
  unless @processed
40
- @premailer = Premailer.new(view.to_html, with_html_string: true, input_encoding: Config::Base.mailer.encoding)
49
+ @processed_content = {}
41
50
 
42
- @premailer.warnings.each do |w|
43
- Pakyow.logger.warn "#{w[:message]} (#{w[:level]}) may not render properly in #{w[:clients]}"
44
- end
51
+ if @view
52
+ @premailer = Premailer.new(view.to_html, with_html_string: true, input_encoding: Config.mailer.encoding)
45
53
 
46
- @processed_content = {
47
- html: @premailer.to_inline_css,
48
- text: @premailer.to_plain_text,
49
- }
54
+ @premailer.warnings.each do |w|
55
+ Pakyow.logger.warn "#{w[:message]} (#{w[:level]}) may not render properly in #{w[:clients]}"
56
+ end
57
+
58
+ @processed_content[:html] = @premailer.to_inline_css
59
+ @processed_content[:text] = @content || @premailer.to_plain_text
60
+ else
61
+ @processed_content[:text] = @content
62
+ end
50
63
 
51
64
  @processed = true
52
65
  end
53
66
 
54
67
  return @processed_content
55
68
  end
56
-
69
+
57
70
  def deliver(recipient)
58
71
  @message.to = recipient
59
72
  @message.deliver
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pakyow-mailer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Powell
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-04 00:00:00.000000000 Z
12
+ date: 2014-11-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pakyow-core
@@ -17,42 +17,42 @@ dependencies:
17
17
  requirements:
18
18
  - - '='
19
19
  - !ruby/object:Gem::Version
20
- version: 0.8.0
20
+ version: 0.9.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - '='
26
26
  - !ruby/object:Gem::Version
27
- version: 0.8.0
27
+ version: 0.9.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: pakyow-presenter
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - '='
33
33
  - !ruby/object:Gem::Version
34
- version: 0.8.0
34
+ version: 0.9.0
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - '='
40
40
  - !ruby/object:Gem::Version
41
- version: 0.8.0
41
+ version: 0.9.0
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: mail
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '2.5'
48
+ version: '2.6'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '2.5'
55
+ version: '2.6'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: premailer
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -81,7 +81,7 @@ dependencies:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
83
  version: '5.0'
84
- description: A library for delivering Pakyow views as mail.
84
+ description: A library for delivering Pakyow views via email.
85
85
  email: bryan@metabahn.com
86
86
  executables: []
87
87
  extensions: []
@@ -106,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - ">="
108
108
  - !ruby/object:Gem::Version
109
- version: 1.9.3
109
+ version: 2.0.0
110
110
  required_rubygems_version: !ruby/object:Gem::Requirement
111
111
  requirements:
112
112
  - - ">="
@@ -114,8 +114,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  version: '0'
115
115
  requirements: []
116
116
  rubyforge_project: pakyow-mailer
117
- rubygems_version: 2.2.0
117
+ rubygems_version: 2.2.2
118
118
  signing_key:
119
119
  specification_version: 4
120
- summary: A library for delivering Pakyow views as mail.
120
+ summary: Mail functionality for Pakyow apps.
121
121
  test_files: []
122
+ has_rdoc: