Class: Mailing::SequenceStep
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Mailing::SequenceStep
- Defined in:
- app/models/mailing/sequence_step.rb
Instance Method Summary collapse
- #casted_owner(owner) ⇒ Object
- #email_name ⇒ Object
- #ready_at(last_activity_at) ⇒ Object
- #ready_to_send?(last_activity_at) ⇒ Boolean
- #send_the_mail(owner) ⇒ Object
- #send_to_owner(sequence_owner) ⇒ Object
Instance Method Details
#casted_owner(owner) ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'app/models/mailing/sequence_step.rb', line 32 def casted_owner(owner) # Avoid an issue with serialization case owner.class.name when "CompanyAdmin", "OrganizationAdmin", "SimpleUser" owner.becomes(User) else owner end end |
#email_name ⇒ Object
28 29 30 |
# File 'app/models/mailing/sequence_step.rb', line 28 def email_name [sequence.name, name].join("_") end |
#ready_at(last_activity_at) ⇒ Object
9 10 11 |
# File 'app/models/mailing/sequence_step.rb', line 9 def ready_at(last_activity_at) (last_activity_at.beginning_of_day + days_after_last_step.days).to_date end |
#ready_to_send?(last_activity_at) ⇒ Boolean
4 5 6 7 |
# File 'app/models/mailing/sequence_step.rb', line 4 def ready_to_send?(last_activity_at) return true if days_after_last_step == 0 last_activity_at.beginning_of_day + days_after_last_step.days <= Time.zone.now end |
#send_the_mail(owner) ⇒ Object
23 24 25 26 |
# File 'app/models/mailing/sequence_step.rb', line 23 def send_the_mail(owner) # InstallationMailer.user_promoted(owner.becomes(User)).deliver_later SequenceMailer.send(email_name, casted_owner(owner)).deliver_later end |
#send_to_owner(sequence_owner) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'app/models/mailing/sequence_step.rb', line 13 def send_to_owner(sequence_owner) # on a un scheduler qui appel les mails à envoyer les jours ouvrés # send_the_mail(sequence_owner.owner) sequence_owner.current_step = position sequence_owner.last_email_sent_at = Time.zone.now sequence_owner.save end |