Class: MailGenerator::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/mail_generator/generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(mailer, &block) ⇒ Generator

Returns a new instance of Generator.



8
9
10
11
12
13
14
15
# File 'lib/mail_generator/generator.rb', line 8

def initialize(mailer, &block)
  output_dir = Rails.root.join('mail_examples')
  FileUtils.rm_rf output_dir
  Dir.mkdir output_dir
  
  @mailer = mailer
  instance_eval &block
end

Instance Attribute Details

#output_dirObject

Returns the value of attribute output_dir.



6
7
8
# File 'lib/mail_generator/generator.rb', line 6

def output_dir
  @output_dir
end

Instance Method Details

#mail(action, *args) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/mail_generator/generator.rb', line 16

def mail(action, *args)
  result = @mailer.send(action, *args)
  
  parts = {}
  parts['html'] = result.html_part if result.html_part
  parts['txt'] = result.text_part if result.text_part
  
  parts.each_pair do |type, part|
    path = "#{output_dir}/#{action}.#{type}"
  
    File.open(path, 'w') {|f| f.write(part.body.decoded) }
    # `open #{path}`
  end
end