sendingmailwithobserver 0.0.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/sendingmailwithobserver.rb +65 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc8937349ab2c8b6404e4b6257558934168b9fe81cfbf6ac80652eb066916a58
|
4
|
+
data.tar.gz: 445d23418b9e51a93aab2497c3f8a04f1fa4ff86ed8634f86a490ad9606aceae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7e4e3d007e0419f684aa11344fb45370d68b21f1a569346c7238010bba9646ed7a6ac4c6291a59309534a0784848d38637b9f23668b028c00b562618e3858c9
|
7
|
+
data.tar.gz: ebdd202d45bb805604f4c65ca1d05fa7c9b17edac3b7db5799a48eeaaa70d36b4f3d1dd1e92fb804ab3844de10fce31700bff4dc968b9c3f6762e245b0bf2b00
|
@@ -0,0 +1,65 @@
|
|
1
|
+
#gem file for sending mail with observer design pattern
|
2
|
+
require 'subject'
|
3
|
+
require 'notifyuser'
|
4
|
+
require 'mail'
|
5
|
+
|
6
|
+
module Subject
|
7
|
+
def initialize
|
8
|
+
@observers=[]
|
9
|
+
end
|
10
|
+
|
11
|
+
def add_observer(observer)
|
12
|
+
@observers << observer
|
13
|
+
end
|
14
|
+
|
15
|
+
def delete_observer(observer)
|
16
|
+
@observers.delete(observer)
|
17
|
+
end
|
18
|
+
|
19
|
+
def notify_observers(user)
|
20
|
+
@observers.each do |observer|
|
21
|
+
observer.update(self,user)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
class NotifyUser
|
28
|
+
include Subject
|
29
|
+
attr_reader :id, :notify, :user
|
30
|
+
attr_accessor :notepad
|
31
|
+
|
32
|
+
def initialize( id,notepad,notify,user )
|
33
|
+
super()
|
34
|
+
@user=user
|
35
|
+
@id = id
|
36
|
+
@notepad = notepad
|
37
|
+
@notify = notify
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
def notepad=(new_notepad)
|
42
|
+
@notepad = new_notepad
|
43
|
+
notify_observers(@user)
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
class Notifier
|
50
|
+
def initialize(notifyuser)
|
51
|
+
notifyuser.add_observer(self)
|
52
|
+
end
|
53
|
+
|
54
|
+
def update(notifyuser,user)
|
55
|
+
begin
|
56
|
+
# callback for observer
|
57
|
+
@notifyuser=notifyuser
|
58
|
+
@user=user
|
59
|
+
puts " Notifyuser #{notifyuser.id} has a change in notepad: #{notifyuser.notepad}\n"
|
60
|
+
NotifyuserMailer.send_email(@user,@notifyuser).deliver_now
|
61
|
+
rescue Exception => e
|
62
|
+
puts ("Exception Found : "+e.to_s)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|