pakyow-mailer 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: