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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 22f74c0de3648341c888422740a9c4cec7dbc8de91155065a61d73bb06ef99ec
4
- data.tar.gz: 905d2da683f6ffe83a0fc5f0226969cacce4cddc7ee823613e4326b893562092
3
+ metadata.gz: bc8937349ab2c8b6404e4b6257558934168b9fe81cfbf6ac80652eb066916a58
4
+ data.tar.gz: 445d23418b9e51a93aab2497c3f8a04f1fa4ff86ed8634f86a490ad9606aceae
5
5
  SHA512:
6
- metadata.gz: f39ca2c9228748b82434692540ac170897ba1d470be4177a7709bf9ead6d25337c60e6f24d9a24677701098ec0a4d0f18852521cf6bc0d8c895fded8666de5f6
7
- data.tar.gz: bbc2ba2e283d996254527817898a210d74100b5c5741d7da939d8e60e60c728162ef9d2fbbdb262ef91671f864d04ccce39a0387172ad320596ad25d2e03c6f4
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sendingmailwithobserver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Deep Roychoudhury