Class: MailbuilderPreview::MailPreviewController

Inherits:
ApplicationController show all
Defined in:
app/controllers/mailbuilder_preview/mail_preview_controller.rb

Instance Method Summary collapse

Instance Method Details

#imageObject



34
35
36
37
38
39
40
41
42
43
# File 'app/controllers/mailbuilder_preview/mail_preview_controller.rb', line 34

def image

  path = "./app/emails/#{params[:email_id]}/#{params[:rest]}"
  if path.match(/(png|jpg|gif|jpeg)$/) && File.exist?(path)
    send_file path, :type => (MIME::Types.type_for(path) || []).first.to_s, :disposition => 'inline'
  else
    render :text => "No such image", :status => '404 No such image'
  end

end

#indexObject



6
7
8
9
10
11
# File 'app/controllers/mailbuilder_preview/mail_preview_controller.rb', line 6

def index

  @email_names = Dir.entries("./app/emails/").delete_if {|v| v == ".." || v == '.' }.sort
  render

end

#showObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/controllers/mailbuilder_preview/mail_preview_controller.rb', line 13

def show
  if params[:load_it]
    if params[:text]
      render :text => "<pre>"+get_demo_text(MailBuilder.new(params[:email_id].to_sym))+"</pre>"
    else
      render :text => get_demo_html(MailBuilder.new(params[:email_id].to_sym))
    end
  elsif params[:email]
    builder = MailBuilder.new(params[:email_id].to_sym)
    path = builder.instance_variable_get("@path")

    source = if File.exist?("#{path}/locals.rb")
      File.read("#{path}/locals.rb")
    else
      "{}"
    end

    send_data builder.build(eval(source)).to_s, :type => "message/rfc822", :disposition => 'attachment', :filename => "#{params[:email_id]}-preview.eml"
  end
end