Module: MailControl::LoggedEmail::ClassMethods
- Defined in:
- lib/mail-control/logged_email.rb
Instance Method Summary collapse
-
#mailing(name, &block) ⇒ Definition
Defines a new LoggedEmail2 type and registers a definition.
- #poll_for_changes ⇒ Object
-
#send_email(verb, data) ⇒ MailControl::LoggedEmail2
Publishes an mailing using an mailing name and data.
Instance Method Details
#mailing(name, &block) ⇒ Definition
Defines a new LoggedEmail2 type and registers a definition
55 56 57 58 59 |
# File 'lib/mail-control/logged_email.rb', line 55 def mailing(name, &block) definition = MailControl::DefinitionDSL.new(name) definition.instance_eval(&block) MailControl::Definition.register(definition) end |
#poll_for_changes ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/mail-control/logged_email.rb', line 18 def poll_for_changes() #if block_given? ::LoggedEmail.where('state = ? AND send_after <= ?', 'initial', Time.now).select(:act_target_id).uniq.each do |cur_target| target_id = cur_target['act_target_id'] ::LoggedEmail.where('state = ? AND act_target_id = ? AND send_after <= ?', 'initial', target_id, Time.now).select(:verb).uniq.each do |verb| changes_for_target = ::LoggedEmail.where(:act_target_id => target_id, :state => 'initial', :verb => verb['verb'].to_s) yield verb, changes_for_target changes_for_target.each do |cft| cft.update_attributes(:state => 'complete') end end end end |
#send_email(verb, data) ⇒ MailControl::LoggedEmail2
Publishes an mailing using an mailing name and data
67 68 69 |
# File 'lib/mail-control/logged_email.rb', line 67 def send_email(verb, data) new.send_email({:verb => verb}.merge(data)) end |