acts_as_commentable_more 1.2.3 → 1.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6df043ba166bd6129581d78d8496c2cfad6f9996
4
- data.tar.gz: 5b0b4733b0ee6e62b275ca293bf6f5ca649320a5
3
+ metadata.gz: c9736b0e7b9575da0563d0c9270c9664f12b690a
4
+ data.tar.gz: ec95b639976e07f8896b843efd00002594e6429c
5
5
  SHA512:
6
- metadata.gz: 02e3d613250fbce7d82a5d99379a856bf14d96198ae5822e8d4f5ddd4695adb432c04714dd52626a2b9924b07d76a9f0708611e83472a62079b40d15bda47498
7
- data.tar.gz: 2383cccaa8de0f02b745d1a0e53199d5af0afe180304bc311c6388d7997e91c980c4032fb2afb7727131f0a0f18d4a1a160b1ca22dc17ad32a69b4c480186834
6
+ metadata.gz: 0dc3fe37c039fc9bfc26afbcfa43f152d75c4899ec61812d10680e5f06db725b4fbc6010e541d25e6007a7c8ed47be0c9d8695b3986a67a5c15bda12815a89f5
7
+ data.tar.gz: c6a5f4e1cd057593dc88b278bb17fa245efe65100e7e2346f3c4d83e77f9f5fa11cd74eea425598259e4ca3c1e3d3d9ba4a810b5e59f147452d342c1c066ef3d
@@ -7,7 +7,7 @@ module ActsAsCommentableMore
7
7
  include Helpers::Post::AssociationsHelper
8
8
  include Helpers::Post::MethodsHelper
9
9
  include Helpers::Post::ScopesHelper
10
- include Helpers::Comment::CallbacksHelper
10
+ include Helpers::Comment::CacheCounterHelper
11
11
  include Helpers::Comment::MethodsHelper
12
12
 
13
13
  def acts_as_commentable(types: [], options: {}, as: nil, counter_cache: true)
@@ -1,7 +1,7 @@
1
1
  module ActsAsCommentableMore
2
2
  module Helpers
3
3
  module Comment
4
- module CallbacksHelper
4
+ module CacheCounterHelper
5
5
 
6
6
  private
7
7
 
@@ -12,6 +12,7 @@ module ActsAsCommentableMore
12
12
  comment_model.class_eval do
13
13
  after_create :acts_as_commentable_more_increment!
14
14
  before_destroy :acts_as_commentable_more_decrement!
15
+ after_update :acts_as_commentable_more_adjust_counter!, if: :role_changed?
15
16
  end
16
17
 
17
18
  comment_model.redefine_method("acts_as_commentable_more_increment!") do
@@ -42,7 +43,23 @@ module ActsAsCommentableMore
42
43
  post_id = self.send("#{commentable_name}_id")
43
44
  post_model.update_counters(post_id, counter_fields) if counter_fields.present?
44
45
  end
45
- comment_model.send(:private, "acts_as_commentable_more_decrement!".to_sym)
46
+ comment_model.send(:private, "acts_as_commentable_more_decrement!".to_sym)
47
+
48
+ comment_model.redefine_method("acts_as_commentable_more_adjust_counter!") do
49
+ all_counter_field = "#{association_comment_name}_count"
50
+ old_role_counter_filed = "#{self.changes[:role][0]}_#{all_counter_field}"
51
+ new_role_counter_filed = "#{self.changes[:role][1]}_#{all_counter_field}"
52
+ post_model = self.send("#{commentable_name}_type").classify.constantize
53
+ attributes_post = post_model.column_names
54
+
55
+ counter_fields = {}
56
+ counter_fields.merge!(old_role_counter_filed.to_sym => -1) if attributes_post.include?(old_role_counter_filed)
57
+ counter_fields.merge!(new_role_counter_filed.to_sym => 1) if attributes_post.include?(new_role_counter_filed)
58
+
59
+ post_id = self.send("#{commentable_name}_id")
60
+ post_model.update_counters(post_id, counter_fields) if counter_fields.present?
61
+ end
62
+ comment_model.send(:private, "acts_as_commentable_more_adjust_counter!".to_sym)
46
63
  end
47
64
 
48
65
  # setting attributes for read only
@@ -1,3 +1,3 @@
1
1
  module ActsAsCommentableMore
2
- VERSION = "1.2.3"
2
+ VERSION = "1.2.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_commentable_more
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - piya23300
8
8
  autorequire: acts_as_commentable_more
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-21 00:00:00.000000000 Z
11
+ date: 2015-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -78,7 +78,7 @@ files:
78
78
  - lib/acts_as_commentable_more.rb
79
79
  - lib/acts_as_commentable_more/comment_methods.rb
80
80
  - lib/acts_as_commentable_more/commentable_methods.rb
81
- - lib/acts_as_commentable_more/helpers/comment/callbacks_helper.rb
81
+ - lib/acts_as_commentable_more/helpers/comment/cache_counter_helper.rb
82
82
  - lib/acts_as_commentable_more/helpers/comment/methods_helper.rb
83
83
  - lib/acts_as_commentable_more/helpers/post/associations_helper.rb
84
84
  - lib/acts_as_commentable_more/helpers/post/methods_helper.rb
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
121
  version: '0'
122
122
  requirements: []
123
123
  rubyforge_project:
124
- rubygems_version: 2.2.2
124
+ rubygems_version: 2.4.5
125
125
  signing_key:
126
126
  specification_version: 4
127
127
  summary: gem that provides comment functionality.