kiss 1.0 → 1.0.1
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.
- data/VERSION +1 -1
- data/lib/kiss/action.rb +9 -9
- data/lib/kiss/mailer.rb +24 -22
- data/lib/kiss/model.rb +1 -1
- data/lib/kiss.rb +3 -1
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0
|
1
|
+
1.0.1
|
data/lib/kiss/action.rb
CHANGED
@@ -70,19 +70,19 @@ class Kiss
|
|
70
70
|
def validate_arg(index, format, required = false)
|
71
71
|
Kiss.validate_value(@args[index], format, required, "arg #{index}")
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
# Creates and invokes new Kiss::Mailer instance to send email message via sendmail.
|
75
|
-
def sendmail(options)
|
76
|
-
|
77
|
-
:
|
75
|
+
def sendmail(options = {})
|
76
|
+
send_email({
|
77
|
+
:engine => :sendmail
|
78
78
|
}.merge(options))
|
79
79
|
end
|
80
80
|
|
81
|
-
# Creates and invokes new Kiss::Mailer instance to send email message via SMTP
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
:
|
81
|
+
# Creates and invokes new Kiss::Mailer instance to send email message via SMTP.
|
82
|
+
def send_email(options = {})
|
83
|
+
Kiss::Mailer.new.send_email({
|
84
|
+
:data => data,
|
85
|
+
:controller => controller
|
86
86
|
}.merge(options))
|
87
87
|
end
|
88
88
|
|
data/lib/kiss/mailer.rb
CHANGED
@@ -3,24 +3,26 @@ class Kiss
|
|
3
3
|
class Mailer
|
4
4
|
include Kiss::TemplateMethods
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
@options
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
@data = {}
|
6
|
+
attr_accessor :controller
|
7
|
+
|
8
|
+
def merge_options(options = {})
|
9
|
+
@options.merge!(options)
|
10
|
+
@controller = options[:controller] || @controller
|
11
|
+
@data = options[:data] || @data
|
14
12
|
end
|
15
13
|
|
16
|
-
|
17
|
-
|
14
|
+
# Creates new email message object.
|
15
|
+
def initialize(options = {})
|
16
|
+
@options = {}
|
17
|
+
@data = {}
|
18
|
+
|
19
|
+
merge_options(options) if options
|
18
20
|
end
|
19
21
|
|
20
22
|
# Renders email template to string, unless message option is
|
21
23
|
# already set to a string value.
|
22
|
-
def prepare_email_message(options =
|
23
|
-
|
24
|
+
def prepare_email_message(options = nil)
|
25
|
+
merge_options(options) if options
|
24
26
|
|
25
27
|
unless @options[:message].is_a?(String)
|
26
28
|
if template_name = @options[:template]
|
@@ -39,16 +41,12 @@ class Kiss
|
|
39
41
|
return @options[:message]
|
40
42
|
end
|
41
43
|
|
42
|
-
# Sets data to be passed to email template.
|
43
|
-
def set(key,value)
|
44
|
-
@data[key] = value
|
45
|
-
end
|
46
|
-
|
47
44
|
# Attempts to send message using SMTP, unless :engine option is set to
|
48
45
|
# :sendmail.
|
49
|
-
def send(options)
|
50
|
-
|
51
|
-
|
46
|
+
def send(options = nil)
|
47
|
+
merge_options(options) if options
|
48
|
+
|
49
|
+
if @options[:engine] == :sendmail
|
52
50
|
return sendmail
|
53
51
|
else
|
54
52
|
return send_smtp
|
@@ -56,7 +54,9 @@ class Kiss
|
|
56
54
|
end
|
57
55
|
|
58
56
|
# Attempts to send message using /usr/sbin/sendmail.
|
59
|
-
def sendmail(options =
|
57
|
+
def sendmail(options = nil)
|
58
|
+
merge_options(options) if options
|
59
|
+
|
60
60
|
prepare_email_message(options)
|
61
61
|
|
62
62
|
IO.popen(@options[:sendmail_path] || "/usr/sbin/sendmail -t","w") do |pipe|
|
@@ -65,7 +65,9 @@ class Kiss
|
|
65
65
|
end
|
66
66
|
|
67
67
|
# Attempts to send message using Net::SMTP.
|
68
|
-
def send_smtp(options =
|
68
|
+
def send_smtp(options = nil)
|
69
|
+
merge_options(options) if options
|
70
|
+
|
69
71
|
prepare_email_message(options)
|
70
72
|
|
71
73
|
require 'net/smtp' unless defined?(Net::SMTP)
|
data/lib/kiss/model.rb
CHANGED
data/lib/kiss.rb
CHANGED
@@ -820,7 +820,9 @@ class Kiss
|
|
820
820
|
|
821
821
|
# Returns new Kiss::Mailer object using specified options.
|
822
822
|
def new_email(options = {})
|
823
|
-
Kiss::Mailer.new(options)
|
823
|
+
mailer = Kiss::Mailer.new(options)
|
824
|
+
mailer.controller = self
|
825
|
+
mailer
|
824
826
|
end
|
825
827
|
|
826
828
|
# Kiss Model cache, used to invoke and store Kiss database models.
|