acts_as_commentable_more 1.2.3 → 1.2.4

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: 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.