]> nos-oignons.net Git - gestion-adh.git/blob - lib/nos_oignons/reminder.rb
Add missing require to load ERB
[gestion-adh.git] / lib / nos_oignons / reminder.rb
1 #-*- coding: utf-8 -*-
2
3 require 'erb'
4
5 module NosOignons
6   class Reminder < Struct.new(:days, :subject, :template)
7     class << self
8       def all
9         return @all if @all
10
11         @all = []
12         @all << Reminder.new(
13           30,
14           '[Nos oignons] Renouvellement de votre cotisation',
15           <<-END_OF_ERB.gsub(/^            /, ''))
16             Salut <%= member.name %>,
17
18             La date anniversaire de votre adhésion à Nos oignons est dans <%= days %> jours.
19             Il est donc temps de renouveller votre cotisation si vous souhaitez rester
20             membre de l'association. Si vous avez besoin de plus d'informations sur
21             comment faire, écrivez au conseil d'administration. Répondre à cet email
22             devrait faire l'affaire.
23
24             Au passage, est-ce que vous pourriez vérifier que l'adresse postale est
25             toujours bonne ? Voici celle que nous avons retenu :
26
27             <%= member.address.gsub(/^/, '    ') %>
28
29             Si ce n'est plus le cas, c'est chouette de le signaler.
30
31             Au plaisir de continuer l'aventure de Nos oignons avec vous,
32             -- 
33             Le robot du conseil d'administration
34           END_OF_ERB
35         @all << Reminder.new(
36           10,
37           '[Nos oignons] Renouvellement de votre cotisation (rappel)',
38           <<-END_OF_ERB.gsub(/^            /, ''))
39             Salut <%= member.name %>,
40
41             La date anniversaire de ton adhésion à Nos oignons est dans <%= days %> jours.
42             Si vous ne renouvellez pas votre cotisation d'ici là, vous perdrez la qualité
43             de membre de Nos oignons.
44
45             Pour plus d'informations sur comment faire pour renouveller sa cotisation,
46             c'est possible d'écrire au conseil d'administration. Répondre à ce mail
47             devrait fonctionner.
48
49             À bientôt ?
50             -- 
51             Le robot du conseil d'administration
52           END_OF_ERB
53         @all << Reminder.new(
54           2,
55           '[Nos oignons] Renouvellement de votre cotisation (dernier rappel)',
56           <<-END_OF_ERB.gsub(/^            /, ''))
57             Salut <%= member.name %>,
58
59             Dans <%= days %> jours, c'est la date anniversaire de ton adhésion à Nos oignons.
60             Vu que vous n'avez pas renouvellé votre cotisation, cela signifie que vous
61             allez bientôt quitter l'association…
62
63             Mais il n'est pas encore trop tard pour le faire !
64
65             Des questions ? Mieux vaut les poser au conseil d'administration. En répondant à
66             cet email par exemple.
67
68             Et sinon… bonne route ! :)
69
70             Bien à vous,
71             -- 
72             Le robot du conseil d'administration
73           END_OF_ERB
74         @all
75       end
76     end
77
78     def send(member)
79       locals = { :member => member, :days => days }
80       body = ERB.new(template).result(OpenStruct.new(locals).instance_eval { binding })
81       mail = Mail.new :charset => 'utf-8',
82                       :from => NosOignons::BOARD_EMAIL,
83                       :to => member.email,
84                       :subject => subject,
85                       :body => body
86       mail.deliver
87     end
88   end
89 end