Class: DigestEmailGroup

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/app/models/digest_email_group.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.enqueue(performable) ⇒ Object



32
33
34
35
# File 'lib/app/models/digest_email_group.rb', line 32

def enqueue(performable)
  digest_group = init_digest_group(performable)
  digest_group.create_digest_items(performable)
end

.init_digest_group(performable) ⇒ Object



37
38
39
40
41
42
43
44
45
# File 'lib/app/models/digest_email_group.rb', line 37

def init_digest_group(performable)
  group = DigestEmailGroup.find_or_initialize_by_method_name_and_mailer_class performable.method_name, performable.mailer
  if group.new_record?
    group.recipients =  performable.options[:send_to]
    group.save
  end

  group
end

Instance Method Details

#create_digest_items(performable) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/app/models/digest_email_group.rb', line 22

def create_digest_items(performable)
  digest_item = digest_email_items.build :payload => performable.payload
  digest_recipients.each do |recipient|
    digest_item.digest_email_deliveries.build :receiver_email => recipient.gsub(' ', '')
  end
  
  digest_item.save
end

#digest_recipientsObject



18
19
20
# File 'lib/app/models/digest_email_group.rb', line 18

def digest_recipients
  I18n::t("digest_notifier.#{i18n_name_space}.recipient", :default => recipients).to_s.split(',')
end

#email_headerObject



6
7
8
# File 'lib/app/models/digest_email_group.rb', line 6

def email_header
  I18n::t("digest_notifier.#{i18n_name_space}.header", :default => description)
end

#i18n_name_spaceObject



10
11
12
# File 'lib/app/models/digest_email_group.rb', line 10

def i18n_name_space
  "#{mailer_name}.#{method_name}"
end

#mailer_nameObject



14
15
16
# File 'lib/app/models/digest_email_group.rb', line 14

def mailer_name
  mailer_class.to_s.split('::').last.underscore
end