mongoid_follow 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,11 +13,17 @@ module Mongoid
13
13
  # >> @bonnie.follow(@clyde)
14
14
  def follow(model)
15
15
  if self.id != model.id && !self.follows?(model)
16
+
17
+ model.before_followed if model.respond_to?('before_followed')
16
18
  model.followers.create!(:ff_type => self.class.name, :ff_id => self.id)
17
19
  model.inc(:fferc, 1)
20
+ model.after_followed if model.respond_to?('after_followed')
18
21
 
22
+ self.before_follow if self.respond_to?('before_follow')
19
23
  self.followees.create!(:ff_type => model.class.name, :ff_id => model.id)
20
24
  self.inc(:ffeec, 1)
25
+ self.after_follow if self.respond_to?('after_follow')
26
+
21
27
  else
22
28
  return false
23
29
  end
@@ -29,11 +35,17 @@ module Mongoid
29
35
  # >> @bonnie.unfollow(@clyde)
30
36
  def unfollow(model)
31
37
  if self.id != model.id && self.follows?(model)
38
+
39
+ model.before_unfollowed if model.respond_to?('before_unfollowed')
32
40
  model.followers.where(:ff_type => self.class.name, :ff_id => self.id).destroy
33
41
  model.inc(:fferc, -1)
42
+ model.after_unfollowed if model.respond_to?('after_unfollowed')
34
43
 
44
+ self.before_unfollow if self.respond_to?('before_unfollow')
35
45
  self.followees.where(:ff_type => model.class.name, :ff_id => model.id).destroy
36
46
  self.inc(:ffeec, -1)
47
+ self.after_unfollow if self.respond_to?('after_unfollow')
48
+
37
49
  else
38
50
  return false
39
51
  end
@@ -1,3 +1,3 @@
1
1
  module MongoidFollow
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/spec/models/group.rb CHANGED
@@ -3,4 +3,12 @@ class Group
3
3
  include Mongoid::Followee
4
4
 
5
5
  field :name
6
+
7
+ def before_followed
8
+ # before followee is followed
9
+ end
10
+
11
+ def before_unfollowed
12
+ # before followee is unfollowed
13
+ end
6
14
  end
data/spec/models/user.rb CHANGED
@@ -4,4 +4,12 @@ class User
4
4
  include Mongoid::Follower
5
5
 
6
6
  field :name
7
+
8
+ def after_follow
9
+ # after follower follows
10
+ end
11
+
12
+ def after_unfollowed
13
+ # after follower unfollows
14
+ end
7
15
  end
@@ -125,5 +125,14 @@ describe Mongoid::Follower do
125
125
 
126
126
  @bonnie.common_followees_with(@alec).should == [@gang, @clyde]
127
127
  end
128
+
129
+ it "should respond on callbacks" do
130
+ @bonnie.respond_to?('after_follow').should be_true
131
+ @bonnie.respond_to?('after_unfollowed').should be_true
132
+ @bonnie.respond_to?('before_follow').should be_false
133
+
134
+ @gang.respond_to?('before_followed').should be_true
135
+ @gang.respond_to?('after_followed').should be_false
136
+ end
128
137
  end
129
138
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: mongoid_follow
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.0
5
+ version: 0.2.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Alec Guintu
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-11-03 00:00:00 +08:00
13
+ date: 2011-11-16 00:00:00 +08:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency