popular 0.7.1 → 0.7.2
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 +8 -8
- data/README.md +7 -0
- data/lib/popular/friendship.rb +1 -0
- data/lib/popular/version.rb +1 -1
- data/spec/popular/friendship_model_spec.rb +8 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NjUzMTAyNGMyZGE1ODg0OGE3MzM0ZDQwNGNmOTg1OWE2NjU1MjBhMA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZGJiNThhMDcwM2VmNWFjYzg2Y2I0Y2ZiMGFmOTJhOWQxYTgyYWRhYw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OTdlZTM4NTFiNjU5YjI2NDg3MGRlMDY3MDhkMTgyOWExYjQxMzljYWE5NGFm
|
10
|
+
ZGJhMmY2MTgzNWQ4ZmM2OWJhYjFhOTNjZmE0NWIxYjVjNmFmNDE4ZmU5NGFh
|
11
|
+
NzJiYzliMzQ0YzEzMmE2ODdhYTE3MmU1NzE1ZWIwNmNhMDA3YjY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NjFhZDUzZTgyZWVlNmU4NjMwZjk4OTdhMmNkYjdlMmJmYTk4YWRkZGRkNWJk
|
14
|
+
NDgxNzUyYmI5MDEzZjJlOTc1NWQ0M2ZkNWNiYTE1YzIwNDc3MWIwMjcwNDA5
|
15
|
+
NGY1NzA5MDg0NjljYzM3ZjA4NjAxNDMwZTFjZGVjZjhlNWUxNmY=
|
data/README.md
CHANGED
@@ -152,6 +152,13 @@ If Popular isn't quite what you're looking for, here are some other useful gems
|
|
152
152
|
Popular was heavily inspired by this screencast: ( http://railscasts.com/episodes/163-self-referential-association?view=asciicast )
|
153
153
|
|
154
154
|
|
155
|
+
## Plans for the future
|
156
|
+
- Add generator for entire `Frienship` resource that includes FriendshipsController, routes, etc
|
157
|
+
- More aliases
|
158
|
+
- Define your own `FriendshipProfile` class
|
159
|
+
- Callbacks for `befriended` or `followed`
|
160
|
+
|
161
|
+
|
155
162
|
|
156
163
|
## Contributing
|
157
164
|
|
data/lib/popular/friendship.rb
CHANGED
@@ -6,6 +6,7 @@ module Popular
|
|
6
6
|
belongs_to :friend, polymorphic: true
|
7
7
|
has_one :friendship_profile
|
8
8
|
|
9
|
+
validates_uniqueness_of :friend_id, scope: :popular_model_id
|
9
10
|
validates_presence_of :friend, :popular_model
|
10
11
|
|
11
12
|
# Ensures that popular_models cannot add themselves as a friend
|
data/lib/popular/version.rb
CHANGED
@@ -4,7 +4,7 @@ shared_examples 'a friendship model' do
|
|
4
4
|
it 'allows for a one-to-one mapping between friendship and a friendship_profile' do
|
5
5
|
friendship = custom_popular_model.befriend another_custom_popular_model
|
6
6
|
|
7
|
-
expect( friendship.friendship_profile ).to_not be_nil
|
7
|
+
expect( friendship.reload.friendship_profile ).to_not be_nil
|
8
8
|
end
|
9
9
|
|
10
10
|
it 'model does not get created unless explicitly opted in' do
|
@@ -29,6 +29,13 @@ shared_examples 'a friendship model' do
|
|
29
29
|
expect( invalid_model ).to_not be_valid
|
30
30
|
end
|
31
31
|
|
32
|
+
it 'validates uniqueness of friend' do
|
33
|
+
popular_model.befriend another_popular_model
|
34
|
+
invalid_model = described_class.new popular_model: popular_model, friend: another_popular_model
|
35
|
+
|
36
|
+
expect( invalid_model ).to_not be_valid
|
37
|
+
end
|
38
|
+
|
32
39
|
it 'validates presence of friend' do
|
33
40
|
invalid_model = described_class.new popular_model: popular_model
|
34
41
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: popular
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- thejchap
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|