acts_as_commentable_more 1.2.5 → 1.2.6

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: 037f9f38c5c7fd1a25f744df3f3a0c49e78f2e69
4
- data.tar.gz: e061ee04950bd58ac4eda48e24d6514a51ab1c36
3
+ metadata.gz: 765add18f643c88f9c310c82fbe8a4a147759bfb
4
+ data.tar.gz: c9e2e38774735fd8563836a5bb9bd8fc60e54e39
5
5
  SHA512:
6
- metadata.gz: a0563be11b18e542f091c016c10797d378f675677cb18128fd7b086f33c6863e80af39b03cbfa473da6524660529247d421215af1ef1728555b66c7139a4a28d
7
- data.tar.gz: 258925f06bee0b39f901e1b5db50fad0c4ffa670e517124143363221c550084aaf05f9ea979c4982f7e3a2b6da5f8277e44b99c5d2f555d8192bfde1aeb10aa0
6
+ metadata.gz: 9b0b142c6e0e69ea986d08c06d127cf50429229cfa5092e16e319e3f07f8d4a8d55726ed943c2440e3a163b8423efdcb63130924ddc0c2329386347e9380e8d2
7
+ data.tar.gz: 7f8a5dc85e78b00e3fd418c148452437b20020255750707f96087a327f6a25da3bd042f283e7a6719af145c38d39de86777eba7be2612dec8ac9ea2b2fea1ce6
@@ -1,4 +1,4 @@
1
- Dir[File.dirname(__FILE__) + "/helpers/**/*.rb"].each {|file| require file }
1
+ Dir[File.dirname(__FILE__) + "/helpers/**/*.rb"].each {|file| require_relative file }
2
2
 
3
3
  module ActsAsCommentableMore
4
4
  extend ActiveSupport::Concern
@@ -8,7 +8,7 @@ module ActsAsCommentableMore
8
8
  include Helpers::Post::MethodsHelper
9
9
  include Helpers::Post::ScopesHelper
10
10
  include Helpers::Comment::CacheCounterHelper
11
- include Helpers::Comment::MethodsHelper
11
+ include Helpers::Comment::InstanceMethodsHelper
12
12
 
13
13
  def acts_as_commentable(types: [], options: {}, as: nil, counter_cache: true)
14
14
  mattr_accessor :comment_model
@@ -28,32 +28,35 @@ module ActsAsCommentableMore
28
28
  ###########################
29
29
  ### basic comment ###
30
30
  ###########################
31
- define_role_based_inflection(comment_roles.first, association_comment_name, association_options)
32
- define_create_role_comments(association_comment_name)
31
+ post_define_role_based_inflection(comment_roles.first, association_comment_name, association_options)
32
+ post_define_create_role(association_comment_name)
33
33
  else
34
34
  ###########################
35
35
  ### many roles comment ###
36
36
  ###########################
37
37
  # scope method for post model
38
- define_all_comments_scope(association_comment_name, association_options[:as])
38
+ post_define_all_scope(association_comment_name, association_options[:as])
39
39
 
40
40
  comment_roles.each do |role|
41
41
  # association for post model
42
42
  association_name = "#{role.to_s}_#{association_comment_name.to_s}"
43
- define_role_based_inflection(role, association_name, association_options)
43
+ post_define_role_based_inflection(role, association_name, association_options)
44
44
  # support method for comment model
45
- define_create_role_comments(association_name)
46
- define_is_role?(role)
47
- define_to_role(role)
48
- define_to_role!(role)
45
+ post_define_create_role(association_name)
46
+ comment_define_is_role?(role)
47
+ comment_define_to_role(role)
48
+ comment_define_to_role!(role)
49
49
  end
50
50
  # helpper method for comment model
51
- define_can_change_role_of(association_options[:as])
51
+ comment_define_can_change_role_of(association_options[:as])
52
52
  end
53
53
 
54
54
  # counter cache for comment model
55
- define_counter_cache_role_comment_callback(association_comment_name, association_options[:as]) if enable_counter_cache
55
+ comment_define_counter_cache_role(association_comment_name, association_options[:as]) if enable_counter_cache
56
56
 
57
+ # instance method for comment
58
+ comment_define_instance_method
59
+ comment_define_class_method
57
60
  end
58
61
 
59
62
  end
@@ -5,7 +5,7 @@ module ActsAsCommentableMore
5
5
 
6
6
  private
7
7
 
8
- def define_counter_cache_role_comment_callback association_comment_name, commentable_name
8
+ def comment_define_counter_cache_role association_comment_name, commentable_name
9
9
  never_has_counter_cache = !comment_model._create_callbacks.select {|cb| cb.kind == :after }.collect(&:filter).include?(:acts_as_commentable_more_increment!)
10
10
 
11
11
  if never_has_counter_cache
@@ -1,11 +1,38 @@
1
1
  module ActsAsCommentableMore
2
2
  module Helpers
3
3
  module Comment
4
- module MethodsHelper
4
+ module InstanceMethodsHelper
5
5
 
6
6
  private
7
7
 
8
- def define_can_change_role_of(commentable_name)
8
+ def comment_define_instance_method
9
+
10
+ comment_model.class_eval do
11
+ def related_attributes
12
+ read_attribute(:related_attributes).symbolize_keys
13
+ end
14
+ end
15
+
16
+ end
17
+
18
+ def comment_define_class_method
19
+
20
+ comment_model.class_eval do
21
+
22
+ class << self
23
+
24
+ def find_comments_by_user(user, role = nil)
25
+ attr_finder = { user: user }
26
+ attr_finder.merge!(role: role.to_s) if role.present?
27
+ where(attr_finder).order(created_at: :desc)
28
+ end
29
+
30
+ end
31
+ end
32
+
33
+ end
34
+
35
+ def comment_define_can_change_role_of(commentable_name)
9
36
  comment_model.redefine_method("can_change_role?") do |role|
10
37
  commentable_class = send(commentable_name).class
11
38
  limit_role = commentable_class.comment_roles
@@ -14,14 +41,14 @@ module ActsAsCommentableMore
14
41
  comment_model.send(:private, "can_change_role?".to_sym)
15
42
  end
16
43
 
17
- def define_is_role?(role)
44
+ def comment_define_is_role?(role)
18
45
  comment_model.redefine_method("is_#{role}?") do
19
46
  raise(NoMethodError, "undefined method 'is_" + role.to_s + "?'") unless can_change_role?(role.to_s)
20
47
  self.role == role.to_s
21
48
  end
22
49
  end
23
50
 
24
- def define_to_role(role)
51
+ def comment_define_to_role(role)
25
52
  comment_model.redefine_method("to_#{role}") do
26
53
  raise(NoMethodError, "undefined method 'is_" + role.to_s + "?'") unless can_change_role?(role.to_s)
27
54
  self.role = role.to_s
@@ -29,7 +56,7 @@ module ActsAsCommentableMore
29
56
  end
30
57
  end
31
58
 
32
- def define_to_role!(role)
59
+ def comment_define_to_role!(role)
33
60
  comment_model.redefine_method("to_#{role}!") do
34
61
  raise(NoMethodError, "undefined method 'is_" + role.to_s + "?'") unless can_change_role?(role.to_s)
35
62
  self.update(role: role.to_s)
@@ -5,7 +5,7 @@ module ActsAsCommentableMore
5
5
 
6
6
  private
7
7
 
8
- def define_role_based_inflection(role, association_comment_name, join_options)
8
+ def post_define_role_based_inflection(role, association_comment_name, join_options)
9
9
  send("define_role_based_inflection_#{Rails.version.first}", role, association_comment_name,join_options)
10
10
  end
11
11
 
@@ -5,7 +5,7 @@ module ActsAsCommentableMore
5
5
 
6
6
  private
7
7
 
8
- def define_create_role_comments(association_comment_name)
8
+ def post_define_create_role(association_comment_name)
9
9
  redefine_method("creates_#{association_comment_name.to_s.pluralize}") do |attributes = nil|
10
10
  send(association_comment_name).create(attributes)
11
11
  end
@@ -3,7 +3,7 @@ module ActsAsCommentableMore
3
3
  module Post
4
4
  module ScopesHelper
5
5
 
6
- def define_all_comments_scope comment_name, commentable
6
+ def post_define_all_scope comment_name, commentable
7
7
  redefine_method("all_#{comment_name.to_s}") do
8
8
  comment_model
9
9
  .includes(commentable.to_sym, :user)
@@ -1,3 +1,3 @@
1
1
  module ActsAsCommentableMore
2
- VERSION = "1.2.5"
2
+ VERSION = "1.2.6"
3
3
  end
@@ -1,7 +1,4 @@
1
1
  module ActsAsCommentableMore
2
- require 'acts_as_commentable_more/commentable_methods'
3
- require 'acts_as_commentable_more/comment_methods'
4
-
2
+ require_relative 'acts_as_commentable_more/commentable_methods'
5
3
  ActiveRecord::Base.send(:include, ActsAsCommentableMore)
6
-
7
4
  end
@@ -8,8 +8,6 @@ class <%= class_name %> < ActiveRecord::Base
8
8
  ### for example if you have public and private comment
9
9
  ### your types would be [:public, :private]
10
10
 
11
- include ActsAsCommentableMore::Finders
12
-
13
11
  belongs_to :<%= class_name.demodulize.underscore + "able" %>, :polymorphic => true
14
12
  belongs_to :user, polymorphic: true
15
13
 
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.5
4
+ version: 1.2.6
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-05-12 00:00:00.000000000 Z
11
+ date: 2015-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -76,10 +76,9 @@ files:
76
76
  - MIT-LICENSE
77
77
  - Rakefile
78
78
  - lib/acts_as_commentable_more.rb
79
- - lib/acts_as_commentable_more/comment_methods.rb
80
79
  - lib/acts_as_commentable_more/commentable_methods.rb
81
80
  - lib/acts_as_commentable_more/helpers/comment/cache_counter_helper.rb
82
- - lib/acts_as_commentable_more/helpers/comment/methods_helper.rb
81
+ - lib/acts_as_commentable_more/helpers/comment/instance_methods_helper.rb
83
82
  - lib/acts_as_commentable_more/helpers/post/associations_helper.rb
84
83
  - lib/acts_as_commentable_more/helpers/post/methods_helper.rb
85
84
  - lib/acts_as_commentable_more/helpers/post/scopes_helper.rb
@@ -121,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
120
  version: '0'
122
121
  requirements: []
123
122
  rubyforge_project:
124
- rubygems_version: 2.2.2
123
+ rubygems_version: 2.4.5
125
124
  signing_key:
126
125
  specification_version: 4
127
126
  summary: gem that provides comment functionality.
@@ -1,18 +0,0 @@
1
- module ActsAsCommentableMore::Finders
2
- extend ActiveSupport::Concern
3
-
4
- def related_attributes
5
- read_attribute(:related_attributes).symbolize_keys
6
- end
7
-
8
- module ClassMethods
9
-
10
- def find_comments_by_user(user, role = nil)
11
- attr_finder = { user: user }
12
- attr_finder.merge!(role: role.to_s) if role.present?
13
- where(attr_finder).order("created_at DESC")
14
- end
15
-
16
- end
17
-
18
- end