Class: FormMail

Inherits:
Object
  • Object
show all
Includes:
Forms::Models::Extension
Defined in:
app/models/form_mail.rb

Instance Method Summary collapse

Methods included from Forms::Models::Extension

included

Instance Method Details

#bodyObject



83
84
85
86
87
88
89
90
91
92
# File 'app/models/form_mail.rb', line 83

def body
  # This parses the content of the form
  @parser = Radius::Parser.new(PageContext.new(@page), :tag_prefix => 'r')
  if @config[:body]
    @body = @parser.parse(@form.send(@config[:body]))
  else
    @body = @parser.parse(@form.content)
  end
  @body
end

#ccObject



94
95
96
# File 'app/models/form_mail.rb', line 94

def cc
  @config[:cc]
end

#charsetObject



119
120
121
122
# File 'app/models/form_mail.rb', line 119

def charset
  charset = @config[:charset] || 'utf-8'
  charset = charset == '' ? nil : charset
end

#content_typeObject



115
116
117
# File 'app/models/form_mail.rb', line 115

def content_type
  content_type = @config[:content_type] || 'text/html'
end

#createObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/models/form_mail.rb', line 4

def create
  begin
    FormMailer.deliver_mail(
      :recipients     => recipients,
      :from           => from,
      :reply_to       => reply_to,
      :subject        => subject,
      :body           => body,
      :cc             => cc,
      :headers        => headers,
      :content_type   => content_type,
      :charset        => charset,
      :config         => @config
    )
    @sent = true
  rescue Exception => exception
    raise exception if RAILS_ENV['development']
    @message = exception
    @sent = false
  end
  
  @result = {
    :sent     => self.sent?,
    :message  => self.message,
    :subject  => self.subject,
    :from     => self.from
  }
end

#fromObject



33
34
35
36
37
38
39
40
41
# File 'app/models/form_mail.rb', line 33

def from
  from = nil
  unless @config[:field].nil? or !@config[:field][:from].blank?
    from = Forms::Tags::Responses.retrieve(@data, @config[:field][:from])
  else
    from = @config[:from]
  end
  from
end

#headersObject



106
107
108
109
110
111
112
113
# File 'app/models/form_mail.rb', line 106

def headers
  headers = { 'Reply-To' => reply_to }
  if sender
    headers['Return-Path'] = sender
    headers['Sender'] = sender
  end
  headers
end

#messageObject



102
103
104
# File 'app/models/form_mail.rb', line 102

def message
  @message || nil
end

#recipientsObject



43
44
45
46
47
48
49
50
51
# File 'app/models/form_mail.rb', line 43

def recipients
  to = nil
  unless @config[:field].nil? or !@config[:field][:to].blank?
    to = Forms::Tags::Responses.retrieve(@data, @config[:field][:to])
  else
    to = @config[:to]
  end
  to
end

#reply_toObject



53
54
55
56
57
58
59
60
61
# File 'app/models/form_mail.rb', line 53

def reply_to
  reply_to = nil
  unless @config[:field].nil? or !@config[:field][:reply_to].blank?
    reply_to = Forms::Tags::Responses.retrieve(@data, @config[:field][:reply_to])
  else
    reply_to = @config[:reply_to]
  end
  reply_to
end

#senderObject



63
64
65
66
67
68
69
70
71
# File 'app/models/form_mail.rb', line 63

def sender
  sender = nil
  unless @config[:field].nil? or !@config[:field][:sender].blank?
    sender = Forms::Tags::Responses.retrieve(@data, @config[:field][:sender])
  else
    sender = @config[:sender]
  end
  sender
end

#sent?Boolean

Returns:

  • (Boolean)


98
99
100
# File 'app/models/form_mail.rb', line 98

def sent?
  @sent || false
end

#subjectObject



73
74
75
76
77
78
79
80
81
# File 'app/models/form_mail.rb', line 73

def subject
  subject = nil
  unless @config[:field].nil? or !@config[:field][:subject].blank?
    subject = Forms::Tags::Responses.retrieve(@data, @config[:field][:subject])
  else
    subject = @config[:subject]
  end
  subject
end