mongoid_follow 0.1.0 → 0.2.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.
@@ -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