Commit 48b22a63cf41b98e0182a3696d1e7ab9b65944b1
1 parent
81833d03
Exists in
master
refactor (custom parent config not needed for rails5 or sti compatibility)
Showing
4 changed files
with
1 additions
and
94 deletions
Show diff stats
README.rdoc
@@ -76,18 +76,6 @@ Make your model(s) that can follow other models acts_as_follower | @@ -76,18 +76,6 @@ Make your model(s) that can follow other models acts_as_follower | ||
76 | ... | 76 | ... |
77 | end | 77 | end |
78 | 78 | ||
79 | -Extended setup: | ||
80 | - # config/initializers/acts_as_follower.rb | ||
81 | - | ||
82 | - # By default list of parent classes includes only `[ApplicationRecord, ActiveRecord::Base]`. | ||
83 | - ActsAsFollower.custom_parent_classes = [CustomRecord] | ||
84 | - | ||
85 | - # OR | ||
86 | - | ||
87 | - ActsAsFollower.setup do |c| | ||
88 | - c.custom_parent_classes = [...] | ||
89 | - end | ||
90 | - | ||
91 | --- | 79 | --- |
92 | 80 | ||
93 | === acts_as_follower methods | 81 | === acts_as_follower methods |
lib/acts_as_follower.rb
@@ -6,25 +6,5 @@ module ActsAsFollower | @@ -6,25 +6,5 @@ module ActsAsFollower | ||
6 | autoload :FollowerLib, 'acts_as_follower/follower_lib' | 6 | autoload :FollowerLib, 'acts_as_follower/follower_lib' |
7 | autoload :FollowScopes, 'acts_as_follower/follow_scopes' | 7 | autoload :FollowScopes, 'acts_as_follower/follow_scopes' |
8 | 8 | ||
9 | - def self.setup | ||
10 | - @configuration ||= Configuration.new | ||
11 | - yield @configuration if block_given? | ||
12 | - end | ||
13 | - | ||
14 | - def self.method_missing(method_name, *args, &block) | ||
15 | - @configuration.respond_to?(method_name) ? | ||
16 | - @configuration.send(method_name, *args, &block) : super | ||
17 | - end | ||
18 | - | ||
19 | - class Configuration | ||
20 | - attr_accessor :custom_parent_classes | ||
21 | - | ||
22 | - def initialize | ||
23 | - @custom_parent_classes = [] | ||
24 | - end | ||
25 | - end | ||
26 | - | ||
27 | - setup | ||
28 | - | ||
29 | require 'acts_as_follower/railtie' if defined?(Rails) && Rails::VERSION::MAJOR >= 3 | 9 | require 'acts_as_follower/railtie' if defined?(Rails) && Rails::VERSION::MAJOR >= 3 |
30 | end | 10 | end |
lib/acts_as_follower/follower_lib.rb
@@ -3,14 +3,9 @@ module ActsAsFollower | @@ -3,14 +3,9 @@ module ActsAsFollower | ||
3 | 3 | ||
4 | private | 4 | private |
5 | 5 | ||
6 | - DEFAULT_PARENTS = [ApplicationRecord, ActiveRecord::Base] | ||
7 | - | ||
8 | # Retrieves the parent class name if using STI. | 6 | # Retrieves the parent class name if using STI. |
9 | def parent_class_name(obj) | 7 | def parent_class_name(obj) |
10 | - unless parent_classes.include?(obj.class.superclass) | ||
11 | - return obj.class.base_class.name | ||
12 | - end | ||
13 | - obj.class.name | 8 | + obj.class.base_class.name |
14 | end | 9 | end |
15 | 10 | ||
16 | def apply_options_to_scope(scope, options = {}) | 11 | def apply_options_to_scope(scope, options = {}) |
@@ -32,10 +27,5 @@ module ActsAsFollower | @@ -32,10 +27,5 @@ module ActsAsFollower | ||
32 | scope | 27 | scope |
33 | end | 28 | end |
34 | 29 | ||
35 | - def parent_classes | ||
36 | - return DEFAULT_PARENTS unless ActsAsFollower.custom_parent_classes | ||
37 | - | ||
38 | - ActsAsFollower.custom_parent_classes + DEFAULT_PARENTS | ||
39 | - end | ||
40 | end | 30 | end |
41 | end | 31 | end |
test/follow_test.rb
@@ -7,55 +7,4 @@ class FollowTest < ActiveSupport::TestCase | @@ -7,55 +7,4 @@ class FollowTest < ActiveSupport::TestCase | ||
7 | assert true | 7 | assert true |
8 | end | 8 | end |
9 | 9 | ||
10 | - context "configuration with setters" do | ||
11 | - should "contain custom parents" do | ||
12 | - ActsAsFollower.custom_parent_classes = [CustomRecord] | ||
13 | - | ||
14 | - assert_equal [CustomRecord], ActsAsFollower.custom_parent_classes | ||
15 | - end | ||
16 | - end | ||
17 | - | ||
18 | - context "#setup" do | ||
19 | - should "contain custom parents via setup" do | ||
20 | - ActsAsFollower.setup do |c| | ||
21 | - c.custom_parent_classes = [CustomRecord] | ||
22 | - end | ||
23 | - | ||
24 | - assert_equal [CustomRecord], ActsAsFollower.custom_parent_classes | ||
25 | - end | ||
26 | - end | ||
27 | - | ||
28 | - context "with custom parents" do | ||
29 | - setup do | ||
30 | - @daddy = FactoryGirl.create(:daddy) | ||
31 | - @mommy = FactoryGirl.create(:mommy) | ||
32 | - @oasis = FactoryGirl.create(:oasis) | ||
33 | - @metallica = FactoryGirl.create(:metallica) | ||
34 | - end | ||
35 | - | ||
36 | - should "be followed" do | ||
37 | - ActsAsFollower.custom_parent_classes = [CustomRecord] | ||
38 | - | ||
39 | - @daddy.follow(@mommy) | ||
40 | - @daddy.follow(@metallica) | ||
41 | - @mommy.follow(@oasis) | ||
42 | - assert_equal true, @daddy.following?(@mommy) | ||
43 | - assert_equal false, @mommy.following?(@daddy) | ||
44 | - assert_equal true, @mommy.followed_by?(@daddy) | ||
45 | - assert_equal false, @daddy.followed_by?(@mommy) | ||
46 | - assert_equal true, @metallica.followed_by?(@daddy) | ||
47 | - assert_equal true, @oasis.followed_by?(@mommy) | ||
48 | - assert_equal true, @daddy.following?(@metallica) | ||
49 | - assert_equal true, @mommy.following?(@oasis) | ||
50 | - end | ||
51 | - | ||
52 | - should "be not followed" do | ||
53 | - ActsAsFollower.custom_parent_classes = [] | ||
54 | - | ||
55 | - @daddy.follow(@mommy) | ||
56 | - @mommy.follow(@oasis) | ||
57 | - assert_equal false, @daddy.following?(@mommy) | ||
58 | - assert_equal false, @mommy.following?(@oasis) | ||
59 | - end | ||
60 | - end | ||
61 | end | 10 | end |