Class: EmailPreview::Fixture

Inherits:
Object
  • Object
show all
Defined in:
lib/email_preview/fixture.rb

Constant Summary collapse

DEFAULT_CATEGORY =
'General'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(description, options = {}, &block) ⇒ Fixture

Returns a new instance of Fixture.



6
7
8
9
10
# File 'lib/email_preview/fixture.rb', line 6

def initialize(description, options = {}, &block)
  self.category = options[:category] || DEFAULT_CATEGORY
  self.description = options[:description] || description.to_s
  self.callback = block
end

Instance Attribute Details

#callbackObject

Returns the value of attribute callback.



4
5
6
# File 'lib/email_preview/fixture.rb', line 4

def callback
  @callback
end

#categoryObject

Returns the value of attribute category.



4
5
6
# File 'lib/email_preview/fixture.rb', line 4

def category
  @category
end

#descriptionObject

Returns the value of attribute description.



4
5
6
# File 'lib/email_preview/fixture.rb', line 4

def description
  @description
end

Instance Method Details

#previewObject



11
12
13
# File 'lib/email_preview/fixture.rb', line 11

def preview
  self.callback.call
end

#preview_with_transactionObject



14
15
16
17
18
19
20
21
22
# File 'lib/email_preview/fixture.rb', line 14

def preview_with_transaction
  return preview_without_transaction unless EmailPreview.transactional?
  mail = nil
  ActiveRecord::Base.transaction do
    mail = preview_without_transaction
    raise ActiveRecord::Rollback, "EmailPreview rollback"
  end
  mail
end