partisan 0.4.1 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 698e3eb571bbe3198a67365ef8be7beb1b37acf2
4
- data.tar.gz: 40db91f5461e512580f03d9afcc93391fffcd66d
3
+ metadata.gz: d936bacfb75a4439cfa641e0dc3f021f4eeefd0d
4
+ data.tar.gz: ceba8e18ebb77675bd10d141165a31321f552c8d
5
5
  SHA512:
6
- metadata.gz: 9c02a2514eeb7b5b4249370c57aff22f4a587aa30e628868858b08234dd6b4df2c85eadba4cf4c9afebe1645ab3bc3dbe07f89c1a9e596e303f62be79a280ad4
7
- data.tar.gz: 8eeb187a25dcdf319342860348b41408abc85e8baeb5b292cf932d699cf9e7a855b895bd48b1732ed4158391b2e507c7ca77763fc1f49e41e2ea60797eb71d9c
6
+ metadata.gz: 91469d38973cada18bb4ce7827e33b012b9fc55580b93cfafc24d8fad8be2a26e1b5c4cee53111704063a0afc7390fb313efbf41c7c6620c6e23cf510922d293
7
+ data.tar.gz: a3952e8a4e978691f966fc144bcfcb9a2c37f5056fe9e1e737b00d8893612499be3abae243fbf0399424b8c34e53a188b244660e8106e2947ca5b0809beaee40
@@ -1,21 +1,14 @@
1
+ sudo: false
2
+
1
3
  language: ruby
2
4
 
3
5
  rvm:
4
- - 2.0.0
5
- - 1.9.3
6
+ - 2.2
7
+ - 2.1
8
+ - 2.0
6
9
 
7
10
  gemfile:
11
+ - gemfiles/Gemfile.activerecord-4.2
8
12
  - gemfiles/Gemfile.activerecord-4.1
9
- - gemfiles/Gemfile.activerecord-4.0
10
- - gemfiles/Gemfile.activerecord-3.2.x
11
13
 
12
14
  script: "echo 'DO IT' && bundle exec rake spec"
13
-
14
- notifications:
15
- hipchat:
16
- rooms:
17
- secure: "DUZC6Q2b18pEp7W7qNnGRYDgqtZGeWh44ED+hF27OIxjdM6JRx/nOmpvY46/lR6KjiH7DDM+TGPbxAzXo3rECxUZqkMPjMkqfZyfyN4JhccI/dJf1EL0GDUMogPfFUOuLWTqA49Y9GvvXTghK/irlLBhInWcrPJcTIsDG2t4nN4="
18
- template:
19
- - '%{repository}#%{build_number} (%{branch} - %{commit} : %{author}): %{message} (<a href="%{build_url}">Build</a>/<a href="%{compare_url}">Changes</a>)'
20
- format: 'html'
21
-
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013, Mirego
1
+ Copyright (c) 2013-2016, Mirego
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
data/README.md CHANGED
@@ -56,6 +56,10 @@ end
56
56
  class Band < ActiveRecord::Base
57
57
  acts_as_followable
58
58
  end
59
+
60
+ class Follow < ActiveRecord::Base
61
+ acts_as_follow
62
+ end
59
63
  ```
60
64
 
61
65
  And follow/unfollow other records!
@@ -140,9 +144,15 @@ The available callbacks are:
140
144
  | `before_being_unfollowed` | `self.about_to_by_unfollowed_by` |
141
145
  | `after_being_unfollowed` | `self.just_unfollowed_by` |
142
146
 
147
+ ## Contributors
148
+
149
+ * [@simonprev](https://github.com/simonprev)
150
+ * [@remiprev](https://github.com/remiprev)
151
+ * [@jdurand](https://github.com/jdurand)
152
+
143
153
  ## License
144
154
 
145
- `Partisan` is © 2013 [Mirego](http://www.mirego.com) and may be freely distributed under the [New BSD license](http://opensource.org/licenses/BSD-3-Clause). See the [`LICENSE.md`](https://github.com/mirego/partisan/blob/master/LICENSE.md) file.
155
+ `Partisan` is © 2013-2016 [Mirego](http://www.mirego.com) and may be freely distributed under the [New BSD license](http://opensource.org/licenses/BSD-3-Clause). See the [`LICENSE.md`](https://github.com/mirego/partisan/blob/master/LICENSE.md) file.
146
156
 
147
157
  ## About Mirego
148
158
 
@@ -2,4 +2,4 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec path: '../'
4
4
 
5
- gem 'activerecord', '~> 3.2.0'
5
+ gem 'activerecord', '~> 4.2.0'
@@ -4,11 +4,12 @@ class AddFollowsMigration < ActiveRecord::Migration
4
4
  t.references :followable, polymorphic: true
5
5
  t.references :follower, polymorphic: true
6
6
 
7
- t.timestamps
7
+ t.timestamps null: false
8
8
  end
9
9
 
10
- add_index :follows, ['follower_id', 'follower_type'], name: 'index_partisan_followers'
10
+ add_index :follows, ['follower_id', 'follower_type'], name: 'index_partisan_followers'
11
11
  add_index :follows, ['followable_id', 'followable_type'], name: 'index_partisan_followables'
12
+ add_index :follows, ['follower_id', 'follower_type', 'followable_id', 'follower_type'], name: 'index_partisan_unique_follow', unique: true
12
13
  end
13
14
 
14
15
  def down
@@ -30,8 +30,8 @@ module Partisan
30
30
  protected
31
31
 
32
32
  def update_follow_counter
33
- follower.update_follower_counter
34
- followable.update_followable_counter
33
+ follower.update_followings_counter
34
+ followable.update_followers_counter
35
35
  end
36
36
 
37
37
  def around_create_follower(&blk)
@@ -52,7 +52,7 @@ module Partisan
52
52
 
53
53
  # Update cache counter
54
54
  # Called in after_create and after_destroy
55
- def update_followable_counter
55
+ def update_followers_counter
56
56
  self.update_attribute('followers_count', self.followings.count) if self.respond_to?(:followers_count)
57
57
  end
58
58
 
@@ -96,7 +96,7 @@ module Partisan
96
96
 
97
97
  # Update cache counter
98
98
  # Called in after_create and after_destroy
99
- def update_follower_counter
99
+ def update_followings_counter
100
100
  self.update_attribute('followings_count', self.follows.count) if self.respond_to?(:followings_count)
101
101
  end
102
102
 
@@ -1,3 +1,3 @@
1
1
  module Partisan
2
- VERSION = '0.4.1'
2
+ VERSION = '0.4.2'
3
3
  end
@@ -4,7 +4,10 @@ describe Partisan::Followable do
4
4
  before do
5
5
  run_migration do
6
6
  create_table(:fans, force: true)
7
- create_table(:users, force: true)
7
+ create_table(:users, force: true) do |t|
8
+ t.integer :followings_count, default: 0
9
+ t.integer :followers_count, default: 0
10
+ end
8
11
  create_table(:concerts, force: true)
9
12
 
10
13
  create_table(:bands, force: true) do |t|
@@ -13,13 +16,14 @@ describe Partisan::Followable do
13
16
  end
14
17
 
15
18
  follower 'Fan'
16
- follower 'User'
19
+ followable_and_follower 'User'
17
20
  followable 'Band'
18
21
  followable 'Concert'
19
22
  end
20
23
 
21
24
  let(:band) { Band.create }
22
25
  let(:user) { User.create }
26
+ let(:user2) { User.create }
23
27
  let(:concert) { Concert.create }
24
28
  let(:fan) { Fan.create }
25
29
 
@@ -127,5 +131,14 @@ describe Partisan::Followable do
127
131
 
128
132
  it { expect{ user.unfollow(band) }.to change{ Buffer.tmp_value }.to(user) }
129
133
  end
134
+
135
+ describe :update_followings_counter do
136
+ before do
137
+ user.follow user2
138
+ user.reload
139
+ end
140
+
141
+ it { expect(user.followings_count).to eq 1 }
142
+ end
130
143
  end
131
144
  end
@@ -21,18 +21,6 @@ describe Partisan::Follower do
21
21
  let(:user2) { User.create }
22
22
  let(:concert) { Concert.create }
23
23
 
24
- describe :UserToUser do
25
- before do
26
- user.follow user2
27
-
28
- user.reload
29
- user2.reload
30
- end
31
-
32
- it { expect(user.followings_count).to eq 1 }
33
- it { expect(user2.followers_count).to eq 1 }
34
- end
35
-
36
24
  describe :InstanceMethods do
37
25
  before do
38
26
  user.follow band
@@ -150,6 +138,15 @@ describe Partisan::Follower do
150
138
 
151
139
  it { expect{ user.unfollow(band) }.to change{ Buffer.tmp_value }.to(band) }
152
140
  end
141
+
142
+ describe :update_followers_counter do
143
+ before do
144
+ user.follow user2
145
+ user2.reload
146
+ end
147
+
148
+ it { expect(user2.followers_count).to eq 1 }
149
+ end
153
150
  end
154
151
 
155
152
  describe :AliasMethods do
@@ -2,6 +2,7 @@ $:.unshift File.expand_path('../lib', __FILE__)
2
2
 
3
3
  require 'rspec'
4
4
  require 'sqlite3'
5
+ require 'delegate'
5
6
 
6
7
  require 'partisan'
7
8
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: partisan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Prévost
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-10 00:00:00.000000000 Z
12
+ date: 2016-01-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -98,9 +98,8 @@ files:
98
98
  - LICENSE.md
99
99
  - README.md
100
100
  - Rakefile
101
- - gemfiles/Gemfile.activerecord-3.2.x
102
- - gemfiles/Gemfile.activerecord-4.0
103
101
  - gemfiles/Gemfile.activerecord-4.1
102
+ - gemfiles/Gemfile.activerecord-4.2
104
103
  - lib/generators/partisan/USAGE
105
104
  - lib/generators/partisan/install_generator.rb
106
105
  - lib/generators/partisan/templates/migration.rb
@@ -139,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
138
  version: '0'
140
139
  requirements: []
141
140
  rubyforge_project:
142
- rubygems_version: 2.2.2
141
+ rubygems_version: 2.4.5
143
142
  signing_key:
144
143
  specification_version: 4
145
144
  summary: Partisan is a Ruby library that allows ActiveRecord records to be follower
@@ -1,5 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec path: '../'
4
-
5
- gem 'activerecord', '~> 4.0.0'