social_connections 0.0.7 → 0.0.8
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.
- data/Gemfile.lock +83 -1
- data/README.md +14 -4
- data/lib/app/models/mute_and_curious_guest.rb +17 -0
- data/lib/app/models/social_activity.rb +12 -9
- data/lib/generators/social_connections/install/install_generator.rb +3 -0
- data/lib/generators/social_connections/install/templates/create_mute_and_curious_guests.rb +11 -0
- data/lib/social_connections/version.rb +1 -1
- data/lib/tasks/social_connections.rake +1 -1
- data/social_connections.gemspec +4 -0
- data/spec/activities_aggregator_spec.rb +10 -1
- data/spec/mute_and_curious_guest_spec.rb +17 -0
- data/spec/social_activities_spec.rb +19 -1
- data/test/schema.rb +7 -0
- data/test/test_helper.rb +3 -1
- metadata +126 -30
data/Gemfile.lock
CHANGED
@@ -1,14 +1,96 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
social_connections (0.0.
|
4
|
+
social_connections (0.0.7)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: http://rubygems.org/
|
8
8
|
specs:
|
9
|
+
abstract (1.0.0)
|
10
|
+
actionmailer (3.0.5)
|
11
|
+
actionpack (= 3.0.5)
|
12
|
+
mail (~> 2.2.15)
|
13
|
+
actionpack (3.0.5)
|
14
|
+
activemodel (= 3.0.5)
|
15
|
+
activesupport (= 3.0.5)
|
16
|
+
builder (~> 2.1.2)
|
17
|
+
erubis (~> 2.6.6)
|
18
|
+
i18n (~> 0.4)
|
19
|
+
rack (~> 1.2.1)
|
20
|
+
rack-mount (~> 0.6.13)
|
21
|
+
rack-test (~> 0.5.7)
|
22
|
+
tzinfo (~> 0.3.23)
|
23
|
+
activemodel (3.0.5)
|
24
|
+
activesupport (= 3.0.5)
|
25
|
+
builder (~> 2.1.2)
|
26
|
+
i18n (~> 0.4)
|
27
|
+
activerecord (3.0.5)
|
28
|
+
activemodel (= 3.0.5)
|
29
|
+
activesupport (= 3.0.5)
|
30
|
+
arel (~> 2.0.2)
|
31
|
+
tzinfo (~> 0.3.23)
|
32
|
+
activesupport (3.0.5)
|
33
|
+
ansi (1.3.0)
|
34
|
+
arel (2.0.10)
|
35
|
+
builder (2.1.2)
|
36
|
+
diff-lcs (1.1.3)
|
37
|
+
erubis (2.6.6)
|
38
|
+
abstract (>= 1.0.0)
|
39
|
+
factory_girl (2.0.5)
|
40
|
+
factory_girl_rails (1.1.0)
|
41
|
+
factory_girl (~> 2.0.0)
|
42
|
+
railties (>= 3.0.0)
|
43
|
+
i18n (0.6.0)
|
44
|
+
mail (2.2.19)
|
45
|
+
activesupport (>= 2.3.6)
|
46
|
+
i18n (>= 0.4.0)
|
47
|
+
mime-types (~> 1.16)
|
48
|
+
treetop (~> 1.4.8)
|
49
|
+
mime-types (1.16)
|
50
|
+
polyglot (0.3.2)
|
51
|
+
rack (1.2.3)
|
52
|
+
rack-mount (0.6.14)
|
53
|
+
rack (>= 1.0.0)
|
54
|
+
rack-test (0.5.7)
|
55
|
+
rack (>= 1.0)
|
56
|
+
railties (3.0.5)
|
57
|
+
actionpack (= 3.0.5)
|
58
|
+
activesupport (= 3.0.5)
|
59
|
+
rake (>= 0.8.7)
|
60
|
+
thor (~> 0.14.4)
|
61
|
+
rake (0.9.2)
|
62
|
+
rspec (2.6.0)
|
63
|
+
rspec-core (~> 2.6.0)
|
64
|
+
rspec-expectations (~> 2.6.0)
|
65
|
+
rspec-mocks (~> 2.6.0)
|
66
|
+
rspec-core (2.6.4)
|
67
|
+
rspec-expectations (2.6.0)
|
68
|
+
diff-lcs (~> 1.1.2)
|
69
|
+
rspec-mocks (2.6.0)
|
70
|
+
rspec-rails (2.6.1)
|
71
|
+
actionpack (~> 3.0)
|
72
|
+
activesupport (~> 3.0)
|
73
|
+
railties (~> 3.0)
|
74
|
+
rspec (~> 2.6.0)
|
75
|
+
sqlite3 (1.3.4)
|
76
|
+
thor (0.14.6)
|
77
|
+
treetop (1.4.10)
|
78
|
+
polyglot
|
79
|
+
polyglot (>= 0.3.1)
|
80
|
+
turn (0.8.2)
|
81
|
+
ansi (>= 1.2.2)
|
82
|
+
tzinfo (0.3.29)
|
9
83
|
|
10
84
|
PLATFORMS
|
11
85
|
ruby
|
12
86
|
|
13
87
|
DEPENDENCIES
|
88
|
+
actionmailer
|
89
|
+
activerecord
|
90
|
+
factory_girl_rails
|
91
|
+
i18n
|
92
|
+
rspec
|
93
|
+
rspec-rails
|
14
94
|
social_connections!
|
95
|
+
sqlite3
|
96
|
+
turn
|
data/README.md
CHANGED
@@ -60,8 +60,16 @@ and
|
|
60
60
|
|
61
61
|
u.comments(b, :comment => 'awesome book!')
|
62
62
|
|
63
|
-
. This creates activities for the user and the book.
|
64
|
-
|
63
|
+
. This creates activities for the user and the book. Activities are _only_ created for
|
64
|
+
those connected to the subject and/or object of the activity--in the example, user `u`
|
65
|
+
is the subject and book `b` is the object. A user `v` can connect to user `u` by saying
|
66
|
+
|
67
|
+
v.connect_to(u)
|
68
|
+
|
69
|
+
. If this is issued before invoking `likes` and `comments` as above, user `v`
|
70
|
+
receives 2 activities.
|
71
|
+
|
72
|
+
These activities can be queried:
|
65
73
|
|
66
74
|
b.likes_by_count
|
67
75
|
|
@@ -72,7 +80,8 @@ Gives the number of users (or other 'connectables') that liked this book. Same f
|
|
72
80
|
. For more examples, see the spec files.
|
73
81
|
|
74
82
|
|
75
|
-
|
83
|
+
Controllers for Activities
|
84
|
+
--------------------------
|
76
85
|
|
77
86
|
Assuming that `current_user` gives you the currently logged in user, a controller
|
78
87
|
responding to a 'like' button could look as follows:
|
@@ -93,7 +102,8 @@ The view (e.g. `app/views/books/show.html.erb`) may then contain the following '
|
|
93
102
|
<%= link_to('I like this', current_user_likes_book_path(@book) %>
|
94
103
|
|
95
104
|
|
96
|
-
|
105
|
+
How to run the Tests (in the gem itself, not in your Rails app)
|
106
|
+
--------------------
|
97
107
|
|
98
108
|
Run test in ./test:
|
99
109
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class MuteAndCuriousGuest < ActiveRecord::Base
|
2
|
+
|
3
|
+
acts_as_connectable :verbs => []
|
4
|
+
|
5
|
+
def self.activities
|
6
|
+
SocialConnections.aggregate(self.instance).activities
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.instance
|
10
|
+
if MuteAndCuriousGuest.count == 0
|
11
|
+
MuteAndCuriousGuest.create
|
12
|
+
else
|
13
|
+
MuteAndCuriousGuest.first
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -20,21 +20,24 @@ class SocialActivity < ActiveRecord::Base
|
|
20
20
|
def self.create_activities(subject, verb, object, options = {})
|
21
21
|
# TODO: we may want to delay this
|
22
22
|
activities = []
|
23
|
-
[ subject, object ].each do |owner| # one activity for the subject, and one for the object
|
23
|
+
[ subject, object ].uniq.each do |owner| # one activity for the subject, and one for the object
|
24
24
|
activities << SocialActivity.create(:owner => owner,
|
25
25
|
:subject => subject,
|
26
26
|
:verb => verb,
|
27
27
|
:target => object,
|
28
28
|
:options_as_json => options.to_json)
|
29
29
|
end
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
30
|
+
# TODO: ugly and hard to read code below, refactor!
|
31
|
+
who = []
|
32
|
+
[subject, object].uniq.each do |w|
|
33
|
+
who.concat(w.incoming_social_connections)
|
34
|
+
end
|
35
|
+
who.collect{|w| w.source}.uniq.each do |connection|
|
36
|
+
activities << SocialActivity.create(:owner => connection, # ... an activity for each one connected
|
37
|
+
:subject => subject,
|
38
|
+
:verb => verb,
|
39
|
+
:target => object,
|
40
|
+
:options_as_json => options.to_json)
|
38
41
|
end
|
39
42
|
activities
|
40
43
|
end
|
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'rails/generators/migration'
|
2
2
|
|
3
3
|
module SocialConnections
|
4
|
+
|
4
5
|
module Generators
|
6
|
+
puts "in 'Generators' module"
|
5
7
|
class InstallGenerator < ::Rails::Generators::Base
|
6
8
|
include Rails::Generators::Migration
|
7
9
|
source_root File.expand_path('../templates', __FILE__)
|
@@ -18,6 +20,7 @@ module SocialConnections
|
|
18
20
|
|
19
21
|
def copy_migrations
|
20
22
|
migration_template "create_social_connections_tables.rb", "db/migrate/create_social_connections.rb"
|
23
|
+
migration_template "create_mute_and_curious_guests.rb", "db/migrate/create_mute_and_curious_guests.rb"
|
21
24
|
end
|
22
25
|
|
23
26
|
end
|
@@ -6,7 +6,7 @@ namespace :db do
|
|
6
6
|
task :social_connections => :environment do
|
7
7
|
ActiveRecord::Migration.verbose = true
|
8
8
|
ActiveRecord::Migrator.migrate(File.join(File.dirname(__FILE__), '../db/migrate/'), ENV['VERSION'] ? ENV['VERSION'].to_i : nil)
|
9
|
-
|
9
|
+
warn "Migration via rake is deprecated, use 'rails generate social_connections:install' instead."
|
10
10
|
Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
|
11
11
|
end
|
12
12
|
end
|
data/social_connections.gemspec
CHANGED
@@ -19,4 +19,8 @@ Gem::Specification.new do |s|
|
|
19
19
|
# s.test_files.reject! { |fn| fn.include? ".swp" }
|
20
20
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
21
|
s.require_paths = ["lib"]
|
22
|
+
s.add_development_dependency('rspec')
|
23
|
+
[ 'sqlite3', 'rspec-rails', 'turn', 'factory_girl_rails', 'activerecord', 'actionmailer', 'i18n', 'pry' ].each do |d|
|
24
|
+
s.add_development_dependency d
|
25
|
+
end
|
22
26
|
end
|
@@ -3,7 +3,6 @@ require File.dirname(__FILE__) + '/../test/test_helper'
|
|
3
3
|
describe "Aggregation" do
|
4
4
|
|
5
5
|
before(:each) do
|
6
|
-
load_schema
|
7
6
|
@tim = Connectable.create(:name => 'Tim', :email => 'tim@test.com')
|
8
7
|
@tom = Connectable.create(:name => 'Tom', :email => 'tom@test.com')
|
9
8
|
end
|
@@ -17,6 +16,16 @@ describe "Aggregation" do
|
|
17
16
|
feed_tom.activities.count.should be_>(1)
|
18
17
|
end
|
19
18
|
|
19
|
+
it "aggregates activities for 'passive' users" do
|
20
|
+
stalker = Connectable.create(:name => 'Tony', :email => 'tony@test.com')
|
21
|
+
stalker.connect_to(@tom)
|
22
|
+
aggregate = SocialConnections.aggregate(stalker)
|
23
|
+
aggregate.activities.count.should eq(0)
|
24
|
+
@tim.comments(@tom, :comment => 'Tony is listening...')
|
25
|
+
aggregate = SocialConnections.aggregate(stalker)
|
26
|
+
aggregate.activities.count.should eq(1)
|
27
|
+
end
|
28
|
+
|
20
29
|
describe "When Tim and Tom interacted" do
|
21
30
|
|
22
31
|
before(:each) do
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
describe MuteAndCuriousGuest do
|
3
|
+
it "has a single instance" do
|
4
|
+
MuteAndCuriousGuest.instance.should_not be(nil)
|
5
|
+
end
|
6
|
+
it "can connect to things" do
|
7
|
+
tim = Connectable.new(:name => 'Tim')
|
8
|
+
MuteAndCuriousGuest.instance.connect_to(tim)
|
9
|
+
end
|
10
|
+
it "receives activities when something happens with a connected thing" do
|
11
|
+
tim = Connectable.new(:name => 'Tim')
|
12
|
+
tom = Connectable.new(:name => 'Tom')
|
13
|
+
MuteAndCuriousGuest.instance.connect_to(tim)
|
14
|
+
tim.comments(tom)
|
15
|
+
SocialConnections.aggregate(MuteAndCuriousGuest.instance).activities.count.should be(1)
|
16
|
+
end
|
17
|
+
end
|
@@ -3,7 +3,6 @@ require File.dirname(__FILE__) + '/../test/test_helper'
|
|
3
3
|
describe "Social Activities" do
|
4
4
|
|
5
5
|
before(:each) do
|
6
|
-
load_schema
|
7
6
|
@sub = Connectable.create(:name => 'Tim')
|
8
7
|
@obj = Connectable.create(:name => 'Tom')
|
9
8
|
end
|
@@ -39,6 +38,25 @@ describe "Social Activities" do
|
|
39
38
|
|
40
39
|
end
|
41
40
|
|
41
|
+
describe "when connected to both object and subject" do
|
42
|
+
before(:each) do
|
43
|
+
@stalker = Connectable.create(:name => 'Steve, the Stalker')
|
44
|
+
@stalker.connect_to(@sub)
|
45
|
+
@stalker.connect_to(@obj)
|
46
|
+
end
|
47
|
+
it "creates one activity, not two" do
|
48
|
+
activities = @sub.likes @obj
|
49
|
+
activities.select { |a| a.owner == @stalker }.count.should eql(1)
|
50
|
+
end
|
51
|
+
describe "when subject and object are identical" do
|
52
|
+
it "creates one activity, not two" do
|
53
|
+
activities = @sub.likes @sub
|
54
|
+
activities.select {|a| a.owner == @stalker}.count.should eql(1)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
|
42
60
|
it "allow options on activities (e.g. a comment)" do
|
43
61
|
activities = @sub.comments(@obj, :comment => 'This is a silly comment on Tom')
|
44
62
|
activities[0].options['comment'].should eql('This is a silly comment on Tom')
|
data/test/schema.rb
CHANGED
@@ -1,4 +1,11 @@
|
|
1
1
|
ActiveRecord::Schema.define(:version => 0) do
|
2
|
+
|
3
|
+
# TODO: very ugly and messy: Maybe at the beginning of a spec run
|
4
|
+
# drop the database and migrate-up via the template files?
|
5
|
+
require File.dirname(__FILE__) + '/../lib/generators/social_connections/install/templates/create_mute_and_curious_guests.rb'
|
6
|
+
CreateMuteAndCuriousGuests.migrate(:down)
|
7
|
+
CreateMuteAndCuriousGuests.migrate(:up)
|
8
|
+
|
2
9
|
# TODO: not DRY: Same in lib/generators/social_connections/install/templates/
|
3
10
|
create_table :social_connections, :force => true do |t|
|
4
11
|
t.integer :source_id
|
data/test/test_helper.rb
CHANGED
@@ -12,7 +12,7 @@ require 'action_mailer'
|
|
12
12
|
require File.dirname(__FILE__) + '/../init'
|
13
13
|
|
14
14
|
class Connectable < ActiveRecord::Base
|
15
|
-
acts_as_connectable :verbs => [ :likes, :recommends, :comments ]
|
15
|
+
acts_as_connectable :verbs => [ :likes, :recommends, :comments, :follows ]
|
16
16
|
def to_s
|
17
17
|
"Connectable '#{self.name}'"
|
18
18
|
end
|
@@ -58,6 +58,8 @@ def load_schema
|
|
58
58
|
|
59
59
|
end
|
60
60
|
|
61
|
+
load_schema
|
62
|
+
|
61
63
|
ActionMailer::Base.delivery_method = :file
|
62
64
|
ActionMailer::Base.file_settings = { :location => 'tmp/mails' }
|
63
65
|
ActionMailer::Base.raise_delivery_errors = true
|
metadata
CHANGED
@@ -1,28 +1,123 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: social_connections
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.8
|
4
5
|
prerelease:
|
5
|
-
version: 0.0.7
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Chris
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
date: 2011-08-29 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: &2157760460 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *2157760460
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: sqlite3
|
27
|
+
requirement: &2157759880 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *2157759880
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec-rails
|
38
|
+
requirement: &2152015320 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *2152015320
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: turn
|
49
|
+
requirement: &2152014920 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *2152014920
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: factory_girl_rails
|
60
|
+
requirement: &2152014520 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *2152014520
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: activerecord
|
71
|
+
requirement: &2152014120 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *2152014120
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: actionmailer
|
82
|
+
requirement: &2152013720 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *2152013720
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: i18n
|
93
|
+
requirement: &2152013320 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *2152013320
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: pry
|
104
|
+
requirement: &2152012920 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *2152012920
|
113
|
+
description: The idea is to provide pluggable social connections, activities and a
|
114
|
+
method to digest those activities (e.g. in daily emails).
|
115
|
+
email:
|
18
116
|
- christian.oloff+gem@gmail.com
|
19
117
|
executables: []
|
20
|
-
|
21
118
|
extensions: []
|
22
|
-
|
23
119
|
extra_rdoc_files: []
|
24
|
-
|
25
|
-
files:
|
120
|
+
files:
|
26
121
|
- .gitignore
|
27
122
|
- .yardopts
|
28
123
|
- Gemfile
|
@@ -34,11 +129,13 @@ files:
|
|
34
129
|
- init.rb
|
35
130
|
- install.rb
|
36
131
|
- lib/app/mailers/digest_mailer.rb
|
132
|
+
- lib/app/models/mute_and_curious_guest.rb
|
37
133
|
- lib/app/models/social_activity.rb
|
38
134
|
- lib/app/models/social_connection.rb
|
39
135
|
- lib/app/views/digest_mailer/digest.html.erb
|
40
136
|
- lib/db/migrate/20110516181115_create_social_connections.rb
|
41
137
|
- lib/generators/social_connections/install/install_generator.rb
|
138
|
+
- lib/generators/social_connections/install/templates/create_mute_and_curious_guests.rb
|
42
139
|
- lib/generators/social_connections/install/templates/create_social_connections_tables.rb
|
43
140
|
- lib/social_connections.rb
|
44
141
|
- lib/social_connections/acts_as_connectable.rb
|
@@ -48,6 +145,7 @@ files:
|
|
48
145
|
- run-tests.sh
|
49
146
|
- social_connections.gemspec
|
50
147
|
- spec/activities_aggregator_spec.rb
|
148
|
+
- spec/mute_and_curious_guest_spec.rb
|
51
149
|
- spec/social_activities_spec.rb
|
52
150
|
- test/activities_test.rb
|
53
151
|
- test/acts_as_connectable_test.rb
|
@@ -58,33 +156,31 @@ files:
|
|
58
156
|
- uninstall.rb
|
59
157
|
homepage: https://sites.google.com/site/socialconnections7/
|
60
158
|
licenses: []
|
61
|
-
|
62
159
|
post_install_message:
|
63
160
|
rdoc_options: []
|
64
|
-
|
65
|
-
require_paths:
|
161
|
+
require_paths:
|
66
162
|
- lib
|
67
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
163
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
164
|
none: false
|
69
|
-
requirements:
|
70
|
-
- -
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version:
|
73
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - ! '>='
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0'
|
169
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
170
|
none: false
|
75
|
-
requirements:
|
76
|
-
- -
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version:
|
171
|
+
requirements:
|
172
|
+
- - ! '>='
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
79
175
|
requirements: []
|
80
|
-
|
81
176
|
rubyforge_project: social_connections
|
82
|
-
rubygems_version: 1.8.
|
177
|
+
rubygems_version: 1.8.6
|
83
178
|
signing_key:
|
84
179
|
specification_version: 3
|
85
180
|
summary: Social connections for ActiveRecord.
|
86
|
-
test_files:
|
181
|
+
test_files:
|
87
182
|
- spec/activities_aggregator_spec.rb
|
183
|
+
- spec/mute_and_curious_guest_spec.rb
|
88
184
|
- spec/social_activities_spec.rb
|
89
185
|
- test/activities_test.rb
|
90
186
|
- test/acts_as_connectable_test.rb
|