socialization 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/.travis.yml +2 -1
- data/Appraisals +13 -1
- data/CHANGELOG.md +12 -0
- data/Guardfile +12 -0
- data/LICENSE +2 -2
- data/README.md +46 -1
- data/Rakefile +8 -10
- data/lib/socialization/stores/active_record/follow.rb +4 -0
- data/lib/socialization/stores/active_record/like.rb +4 -0
- data/lib/socialization/stores/active_record/mention.rb +4 -0
- data/lib/socialization/stores/active_record/mixins/base.rb +4 -0
- data/lib/socialization/stores/mixins/follow.rb +1 -1
- data/lib/socialization/version.rb +1 -1
- data/socialization.gemspec +5 -3
- data/spec/actors/follower_spec.rb +113 -0
- data/spec/actors/liker_spec.rb +105 -0
- data/spec/actors/mentioner_spec.rb +105 -0
- data/spec/spec_helper.rb +21 -0
- data/{test/test_helper.rb → spec/spec_support/data_stores.rb} +76 -81
- data/spec/spec_support/matchers.rb +54 -0
- data/spec/stores/active_record/follow_store_spec.rb +147 -0
- data/spec/stores/active_record/like_store_spec.rb +146 -0
- data/spec/stores/active_record/mention_store_spec.rb +148 -0
- data/spec/stores/active_record/mixins/base_spec.rb +25 -0
- data/spec/stores/redis/base_spec.rb +195 -0
- data/spec/stores/redis/config_spec.rb +28 -0
- data/spec/stores/redis/follow_store_spec.rb +26 -0
- data/spec/stores/redis/like_store_spec.rb +23 -0
- data/spec/stores/redis/mention_store_spec.rb +23 -0
- data/spec/string_spec.rb +13 -0
- data/spec/victims/followable_spec.rb +59 -0
- data/spec/victims/likeable_spec.rb +58 -0
- data/spec/victims/mentionable_spec.rb +59 -0
- data/spec/world_spec.rb +107 -0
- metadata +79 -42
- data/test/actors/follower_test.rb +0 -114
- data/test/actors/liker_test.rb +0 -106
- data/test/actors/mentioner_test.rb +0 -106
- data/test/stores/active_record/follow_store_test.rb +0 -138
- data/test/stores/active_record/like_store_test.rb +0 -139
- data/test/stores/active_record/mention_store_test.rb +0 -138
- data/test/stores/redis/base_test.rb +0 -203
- data/test/stores/redis/config_test.rb +0 -30
- data/test/stores/redis/follow_store_test.rb +0 -27
- data/test/stores/redis/like_store_test.rb +0 -25
- data/test/stores/redis/mention_store_test.rb +0 -25
- data/test/string_test.rb +0 -13
- data/test/victims/followable_test.rb +0 -60
- data/test/victims/likeable_test.rb +0 -60
- data/test/victims/mentionable_test.rb +0 -60
- data/test/world_test.rb +0 -112
@@ -0,0 +1,28 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
context "RedisStoreConfigTest" do
|
4
|
+
before do
|
5
|
+
Socialization.instance_eval { @redis = nil }
|
6
|
+
end
|
7
|
+
|
8
|
+
it "returns a new Redis object when none were specified" do
|
9
|
+
expect(Socialization.redis).to be_a Redis
|
10
|
+
end
|
11
|
+
|
12
|
+
it "always returns the same Redis object when none were specified" do
|
13
|
+
redis = Socialization.redis
|
14
|
+
expect(Socialization.redis).to eq(redis)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "is able to set and get a redis instance" do
|
18
|
+
redis = Redis.new
|
19
|
+
Socialization.redis = redis
|
20
|
+
expect(Socialization.redis).to eq(redis)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "always return the same Redis object when it was specified" do
|
24
|
+
redis = Redis.new
|
25
|
+
Socialization.redis = redis
|
26
|
+
expect(Socialization.redis).to eq(redis)
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Socialization::RedisStores::Follow do
|
4
|
+
before do
|
5
|
+
use_redis_store
|
6
|
+
@klass = Socialization::RedisStores::Follow
|
7
|
+
@base = Socialization::RedisStores::Base
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "method aliases" do
|
11
|
+
it "should be set properly and made public" do
|
12
|
+
# TODO: Can't figure out how to test method aliases properly. The following doesn't work:
|
13
|
+
# assert @klass.method(:follow!) == @base.method(:relation!)
|
14
|
+
expect(:follow!).to be_a_public_method_of(@klass)
|
15
|
+
expect(:unfollow!).to be_a_public_method_of(@klass)
|
16
|
+
expect(:follows?).to be_a_public_method_of(@klass)
|
17
|
+
expect(:followers_relation).to be_a_public_method_of(@klass)
|
18
|
+
expect(:followers).to be_a_public_method_of(@klass)
|
19
|
+
expect(:followables_relation).to be_a_public_method_of(@klass)
|
20
|
+
expect(:followables).to be_a_public_method_of(@klass)
|
21
|
+
expect(:remove_followers).to be_a_public_method_of(@klass)
|
22
|
+
expect(:remove_followables).to be_a_public_method_of(@klass)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Socialization::RedisStores::Like do
|
4
|
+
before do
|
5
|
+
use_redis_store
|
6
|
+
@klass = Socialization::RedisStores::Like
|
7
|
+
@base = Socialization::RedisStores::Base
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "method aliases" do
|
11
|
+
it "should be set properly and made public" do
|
12
|
+
expect(:like!).to be_a_public_method_of(@klass)
|
13
|
+
expect(:unlike!).to be_a_public_method_of(@klass)
|
14
|
+
expect(:likes?).to be_a_public_method_of(@klass)
|
15
|
+
expect(:likers_relation).to be_a_public_method_of(@klass)
|
16
|
+
expect(:likers).to be_a_public_method_of(@klass)
|
17
|
+
expect(:likeables_relation).to be_a_public_method_of(@klass)
|
18
|
+
expect(:likeables).to be_a_public_method_of(@klass)
|
19
|
+
expect(:remove_likers).to be_a_public_method_of(@klass)
|
20
|
+
expect(:remove_likeables).to be_a_public_method_of(@klass)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Socialization::RedisStores::Follow do
|
4
|
+
before do
|
5
|
+
use_redis_store
|
6
|
+
@klass = Socialization::RedisStores::Mention
|
7
|
+
@base = Socialization::RedisStores::Base
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "method aliases" do
|
11
|
+
it "should be set properly and made public" do
|
12
|
+
expect(:mention!).to be_a_public_method_of(@klass)
|
13
|
+
expect(:unmention!).to be_a_public_method_of(@klass)
|
14
|
+
expect(:mentions?).to be_a_public_method_of(@klass)
|
15
|
+
expect(:mentioners_relation).to be_a_public_method_of(@klass)
|
16
|
+
expect(:mentioners).to be_a_public_method_of(@klass)
|
17
|
+
expect(:mentionables_relation).to be_a_public_method_of(@klass)
|
18
|
+
expect(:mentionables).to be_a_public_method_of(@klass)
|
19
|
+
expect(:remove_mentioners).to be_a_public_method_of(@klass)
|
20
|
+
expect(:remove_mentionables).to be_a_public_method_of(@klass)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/spec/string_spec.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe String do
|
4
|
+
describe "#deep_const_get" do
|
5
|
+
it "should return a class" do
|
6
|
+
expect("Socialization".deep_const_get).to eq(Socialization)
|
7
|
+
expect("Socialization::ActiveRecordStores".deep_const_get).to eq(Socialization::ActiveRecordStores)
|
8
|
+
expect("Socialization::ActiveRecordStores::Follow".deep_const_get).to eq(Socialization::ActiveRecordStores::Follow)
|
9
|
+
|
10
|
+
expect { "Foo::Bar".deep_const_get }.to raise_error(NameError)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Socialization::Followable do
|
4
|
+
before(:all) do
|
5
|
+
use_ar_store
|
6
|
+
@follower = ImAFollower.new
|
7
|
+
@followable = ImAFollowable.create
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "#is_followable?" do
|
11
|
+
it "returns true" do
|
12
|
+
expect(@followable.is_followable?).to be true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#followable?" do
|
17
|
+
it "returns true" do
|
18
|
+
expect(@followable.followable?).to be true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#followed_by?" do
|
23
|
+
it "does not accept non-followers" do
|
24
|
+
expect { @followable.followed_by?(:foo) }.to raise_error(Socialization::ArgumentError)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "calls $Follow.follows?" do
|
28
|
+
expect($Follow).to receive(:follows?).with(@follower, @followable).once
|
29
|
+
@followable.followed_by?(@follower)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "#followers" do
|
34
|
+
it "calls $Follow.followers" do
|
35
|
+
expect($Follow).to receive(:followers).with(@followable, @follower.class, { :foo => :bar })
|
36
|
+
@followable.followers(@follower.class, { :foo => :bar })
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "#followers_relation" do
|
41
|
+
it "calls $Follow.followers_relation" do
|
42
|
+
expect($Follow).to receive(:followers_relation).with(@followable, @follower.class, { :foo => :bar })
|
43
|
+
@followable.followers_relation(@follower.class, { :foo => :bar })
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "deleting a followable" do
|
48
|
+
before(:all) do
|
49
|
+
@follower = ImAFollower.create
|
50
|
+
@follower.follow!(@followable)
|
51
|
+
end
|
52
|
+
|
53
|
+
it "removes follow relationships" do
|
54
|
+
expect(Socialization.follow_model).to receive(:remove_followers).with(@followable)
|
55
|
+
@followable.destroy
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Socialization::Likeable do
|
4
|
+
before(:all) do
|
5
|
+
use_ar_store
|
6
|
+
@liker = ImALiker.new
|
7
|
+
@likeable = ImALikeable.create
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "#is_likeable?" do
|
11
|
+
it "returns true" do
|
12
|
+
expect(@likeable.is_likeable?).to be true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#likeable?" do
|
17
|
+
it "returns true" do
|
18
|
+
expect(@likeable.likeable?).to be true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#liked_by?" do
|
23
|
+
it "does not accept non-likers" do
|
24
|
+
expect { @likeable.liked_by?(:foo) }.to raise_error(Socialization::ArgumentError)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "calls $Like.likes?" do
|
28
|
+
expect($Like).to receive(:likes?).with(@liker, @likeable).once
|
29
|
+
@likeable.liked_by?(@liker)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "#likers" do
|
34
|
+
it "calls $Like.likers" do
|
35
|
+
expect($Like).to receive(:likers).with(@likeable, @liker.class, { :foo => :bar })
|
36
|
+
@likeable.likers(@liker.class, { :foo => :bar })
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "#likers_relation" do
|
41
|
+
it "calls $Like.likers_relation" do
|
42
|
+
expect($Like).to receive(:likers_relation).with(@likeable, @liker.class, { :foo => :bar })
|
43
|
+
@likeable.likers_relation(@liker.class, { :foo => :bar })
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "deleting a likeable" do
|
48
|
+
before(:all) do
|
49
|
+
@liker = ImALiker.create
|
50
|
+
@liker.like!(@likeable)
|
51
|
+
end
|
52
|
+
|
53
|
+
it "removes like relationships" do
|
54
|
+
expect(Socialization.like_model).to receive(:remove_likers).with(@likeable)
|
55
|
+
@likeable.destroy
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Socialization::Mentionable do
|
4
|
+
before(:all) do
|
5
|
+
use_ar_store
|
6
|
+
@mentioner = ImAMentioner.new
|
7
|
+
@mentionable = ImAMentionable.create
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "#is_mentionable?" do
|
11
|
+
it "returns true" do
|
12
|
+
expect(@mentionable.is_mentionable?).to be true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#mentionable?" do
|
17
|
+
it "returns true" do
|
18
|
+
expect(@mentionable.mentionable?).to be true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#mentioned_by?" do
|
23
|
+
it "does not accept non-mentioners" do
|
24
|
+
expect { @mentionable.mentioned_by?(:foo) }.to raise_error(Socialization::ArgumentError)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "calls $Mention.mentions?" do
|
28
|
+
expect($Mention).to receive(:mentions?).with(@mentioner, @mentionable).once
|
29
|
+
@mentionable.mentioned_by?(@mentioner)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "#mentioners" do
|
34
|
+
it "calls $Mention.mentioners" do
|
35
|
+
expect($Mention).to receive(:mentioners).with(@mentionable, @mentioner.class, { :foo => :bar })
|
36
|
+
@mentionable.mentioners(@mentioner.class, { :foo => :bar })
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "#mentioners_relation" do
|
41
|
+
it "calls $Mention.mentioners" do
|
42
|
+
expect($Mention).to receive(:mentioners_relation).with(@mentionable, @mentioner.class, { :foo => :bar })
|
43
|
+
@mentionable.mentioners_relation(@mentioner.class, { :foo => :bar })
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "deleting a mentionable" do
|
48
|
+
before(:all) do
|
49
|
+
@mentioner = ImAMentioner.create
|
50
|
+
@mentioner.mention!(@mentionable)
|
51
|
+
end
|
52
|
+
|
53
|
+
it "removes mention relationships" do
|
54
|
+
expect(Socialization.mention_model).to receive(:remove_mentioners).with(@mentionable)
|
55
|
+
@mentionable.destroy
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
data/spec/world_spec.rb
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
# Test Socialization as it would be used in a "real world" scenario
|
4
|
+
describe "The World" do
|
5
|
+
cattr_reader :users, :movies, :celebs, :comments
|
6
|
+
|
7
|
+
%w(john jane mat carl camilo tami).each do |user|
|
8
|
+
define_method(user) { @users[user.to_sym] }
|
9
|
+
end
|
10
|
+
|
11
|
+
%w(pulp reservoir kill_bill).each do |movie|
|
12
|
+
define_method(movie) { @movies[movie.to_sym] }
|
13
|
+
end
|
14
|
+
|
15
|
+
%w(willis travolta jackson).each do |celeb|
|
16
|
+
define_method(celeb) { @celebs[celeb.to_sym] }
|
17
|
+
end
|
18
|
+
|
19
|
+
before(:all) do
|
20
|
+
seed
|
21
|
+
end
|
22
|
+
|
23
|
+
shared_examples "the world" do
|
24
|
+
it "acts like it should" do
|
25
|
+
john.like!(pulp)
|
26
|
+
john.follow!(jane)
|
27
|
+
john.follow!(travolta)
|
28
|
+
|
29
|
+
expect(john.likes?(pulp)).to be true
|
30
|
+
expect(john.follows?(jane)).to be true
|
31
|
+
expect(john.follows?travolta).to be true
|
32
|
+
|
33
|
+
expect(pulp.liked_by?(john)).to be true
|
34
|
+
expect(travolta.followed_by?(john)).to be true
|
35
|
+
|
36
|
+
carl.like!(pulp)
|
37
|
+
camilo.like!(pulp)
|
38
|
+
expect(pulp.likers(User).size).to eq(3)
|
39
|
+
|
40
|
+
expect(pulp.likers(User).include?(carl)).to be true
|
41
|
+
expect(pulp.likers(User).include?(john)).to be true
|
42
|
+
expect(pulp.likers(User).include?(camilo)).to be true
|
43
|
+
expect(!pulp.likers(User).include?(mat)).to be true
|
44
|
+
|
45
|
+
carl.follow!(mat)
|
46
|
+
mat.follow!(carl)
|
47
|
+
camilo.follow!(carl)
|
48
|
+
|
49
|
+
expect(carl.follows?(mat)).to be true
|
50
|
+
expect(mat.followed_by?(carl)).to be true
|
51
|
+
expect(mat.follows?(carl)).to be true
|
52
|
+
expect(carl.followed_by?(mat)).to be true
|
53
|
+
expect(camilo.follows?(carl)).to be true
|
54
|
+
expect(!carl.follows?(camilo)).to be true
|
55
|
+
|
56
|
+
# Can't like a Celeb
|
57
|
+
expect { john.like!(travolta) }.to raise_error(Socialization::ArgumentError)
|
58
|
+
|
59
|
+
# Can't follow a movie
|
60
|
+
expect { john.follow!(kill_bill) }.to raise_error(Socialization::ArgumentError)
|
61
|
+
|
62
|
+
# You can even follow or like yourself if your ego is that big.
|
63
|
+
expect(john.follow!(john)).to be true
|
64
|
+
expect(john.like!(john)).to be true
|
65
|
+
|
66
|
+
comment = john.comments.create(:body => "I think Tami and Carl would like this movie!", :movie_id => pulp.id)
|
67
|
+
comment.mention!(tami)
|
68
|
+
comment.mention!(carl)
|
69
|
+
expect(comment.mentions?(carl)).to be true
|
70
|
+
expect(carl.mentioned_by?(comment)).to be true
|
71
|
+
expect(comment.mentions?(tami)).to be true
|
72
|
+
expect(tami.mentioned_by?(comment)).to be true
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
context "ActiveRecord store" do
|
77
|
+
before(:all) { use_ar_store }
|
78
|
+
it_behaves_like "the world"
|
79
|
+
end
|
80
|
+
|
81
|
+
context "Redis store" do
|
82
|
+
before(:all) { use_redis_store }
|
83
|
+
it_behaves_like "the world"
|
84
|
+
end
|
85
|
+
|
86
|
+
def seed
|
87
|
+
@users = {}
|
88
|
+
@celebs = {}
|
89
|
+
@movies = {}
|
90
|
+
|
91
|
+
@users[:john] = User.create :name => 'John Doe'
|
92
|
+
@users[:jane] = User.create :name => 'Jane Doe'
|
93
|
+
@users[:mat] = User.create :name => 'Mat'
|
94
|
+
@users[:carl] = User.create :name => 'Carl'
|
95
|
+
@users[:camilo] = User.create :name => 'Camilo'
|
96
|
+
@users[:tami] = User.create :name => 'Tami'
|
97
|
+
|
98
|
+
@movies[:pulp] = Movie.create :name => 'Pulp Fiction'
|
99
|
+
@movies[:reservoir] = Movie.create :name => 'Reservoir Dogs'
|
100
|
+
@movies[:kill_bill] = Movie.create :name => 'Kill Bill'
|
101
|
+
|
102
|
+
@celebs[:willis] = Celebrity.create :name => 'Bruce Willis'
|
103
|
+
@celebs[:travolta] = Celebrity.create :name => 'John Travolta'
|
104
|
+
@celebs[:jackson] = Celebrity.create :name => 'Samuel L. Jackson'
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: socialization
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carl Mercier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -53,7 +53,21 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.3.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.3.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec-mocks
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - ">="
|
@@ -67,7 +81,7 @@ dependencies:
|
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
84
|
+
name: sqlite3
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - ">="
|
@@ -81,7 +95,7 @@ dependencies:
|
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
98
|
+
name: yard
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
101
|
- - ">="
|
@@ -95,7 +109,7 @@ dependencies:
|
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
112
|
+
name: mock_redis
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
115
|
- - ">="
|
@@ -109,7 +123,21 @@ dependencies:
|
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
126
|
+
name: guard
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: guard-rspec
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
114
142
|
requirements:
|
115
143
|
- - ">="
|
@@ -132,10 +160,12 @@ extensions: []
|
|
132
160
|
extra_rdoc_files: []
|
133
161
|
files:
|
134
162
|
- ".gitignore"
|
163
|
+
- ".ruby-version"
|
135
164
|
- ".travis.yml"
|
136
165
|
- Appraisals
|
137
166
|
- CHANGELOG.md
|
138
167
|
- Gemfile
|
168
|
+
- Guardfile
|
139
169
|
- LICENSE
|
140
170
|
- README.md
|
141
171
|
- Rakefile
|
@@ -245,23 +275,26 @@ files:
|
|
245
275
|
- lib/socialization/victims/likeable.rb
|
246
276
|
- lib/socialization/victims/mentionable.rb
|
247
277
|
- socialization.gemspec
|
248
|
-
-
|
249
|
-
-
|
250
|
-
-
|
251
|
-
-
|
252
|
-
-
|
253
|
-
-
|
254
|
-
-
|
255
|
-
-
|
256
|
-
-
|
257
|
-
-
|
258
|
-
-
|
259
|
-
-
|
260
|
-
-
|
261
|
-
-
|
262
|
-
-
|
263
|
-
-
|
264
|
-
-
|
278
|
+
- spec/actors/follower_spec.rb
|
279
|
+
- spec/actors/liker_spec.rb
|
280
|
+
- spec/actors/mentioner_spec.rb
|
281
|
+
- spec/spec_helper.rb
|
282
|
+
- spec/spec_support/data_stores.rb
|
283
|
+
- spec/spec_support/matchers.rb
|
284
|
+
- spec/stores/active_record/follow_store_spec.rb
|
285
|
+
- spec/stores/active_record/like_store_spec.rb
|
286
|
+
- spec/stores/active_record/mention_store_spec.rb
|
287
|
+
- spec/stores/active_record/mixins/base_spec.rb
|
288
|
+
- spec/stores/redis/base_spec.rb
|
289
|
+
- spec/stores/redis/config_spec.rb
|
290
|
+
- spec/stores/redis/follow_store_spec.rb
|
291
|
+
- spec/stores/redis/like_store_spec.rb
|
292
|
+
- spec/stores/redis/mention_store_spec.rb
|
293
|
+
- spec/string_spec.rb
|
294
|
+
- spec/victims/followable_spec.rb
|
295
|
+
- spec/victims/likeable_spec.rb
|
296
|
+
- spec/victims/mentionable_spec.rb
|
297
|
+
- spec/world_spec.rb
|
265
298
|
homepage: https://github.com/cmer/socialization
|
266
299
|
licenses: []
|
267
300
|
metadata: {}
|
@@ -281,25 +314,29 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
281
314
|
version: '0'
|
282
315
|
requirements: []
|
283
316
|
rubyforge_project:
|
284
|
-
rubygems_version: 2.
|
317
|
+
rubygems_version: 2.4.5
|
285
318
|
signing_key:
|
286
319
|
specification_version: 4
|
287
320
|
summary: Easily socialize your app with Likes and Follows
|
288
321
|
test_files:
|
289
|
-
-
|
290
|
-
-
|
291
|
-
-
|
292
|
-
-
|
293
|
-
-
|
294
|
-
-
|
295
|
-
-
|
296
|
-
-
|
297
|
-
-
|
298
|
-
-
|
299
|
-
-
|
300
|
-
-
|
301
|
-
-
|
302
|
-
-
|
303
|
-
-
|
304
|
-
-
|
305
|
-
-
|
322
|
+
- spec/actors/follower_spec.rb
|
323
|
+
- spec/actors/liker_spec.rb
|
324
|
+
- spec/actors/mentioner_spec.rb
|
325
|
+
- spec/spec_helper.rb
|
326
|
+
- spec/spec_support/data_stores.rb
|
327
|
+
- spec/spec_support/matchers.rb
|
328
|
+
- spec/stores/active_record/follow_store_spec.rb
|
329
|
+
- spec/stores/active_record/like_store_spec.rb
|
330
|
+
- spec/stores/active_record/mention_store_spec.rb
|
331
|
+
- spec/stores/active_record/mixins/base_spec.rb
|
332
|
+
- spec/stores/redis/base_spec.rb
|
333
|
+
- spec/stores/redis/config_spec.rb
|
334
|
+
- spec/stores/redis/follow_store_spec.rb
|
335
|
+
- spec/stores/redis/like_store_spec.rb
|
336
|
+
- spec/stores/redis/mention_store_spec.rb
|
337
|
+
- spec/string_spec.rb
|
338
|
+
- spec/victims/followable_spec.rb
|
339
|
+
- spec/victims/likeable_spec.rb
|
340
|
+
- spec/victims/mentionable_spec.rb
|
341
|
+
- spec/world_spec.rb
|
342
|
+
has_rdoc: false
|