active_record-comments 0.1.0 → 0.2.0

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
- SHA1:
3
- metadata.gz: 3479f24b30ad73efbf9937f33c94c3f722e8dac7
4
- data.tar.gz: 4f399eabfb49d657ffb82dcd702eb66ee20a54bb
2
+ SHA256:
3
+ metadata.gz: 8059c748ce80a85b6afe8229401296ec82288357acd47119b289d3b5a31d50f9
4
+ data.tar.gz: 742ab1f77aa2ff09e4bdb96994549db0690781c070ae1b202a2478331614e5e9
5
5
  SHA512:
6
- metadata.gz: 19a92d96e8c9faebeb5b9a0d34287e9abd150f3fd98f9296fd01e286178f8c4f95687cca52db24976a33b8dde38dd291c10c980f8fae7b71d7eec46c574a492e
7
- data.tar.gz: bd39c3c075ec5a66b1a2db8566abd48675fd3a64af43c6bd12d1e1b62a088c70f04da3f64fdac96f5104b40c83f951cab192f1e14c25bd7cf4e599027bc0f96b
6
+ metadata.gz: c0012f4cb152f560e43135435ae1c7be7c2d4b05d6540780fd983aa8fa236518ecbe6d0b81c90157977c1decda1ce17da0e49c1abaae8c3aa2241d08e8037206
7
+ data.tar.gz: 6ca97bd722121bf43fea68b98b58d215ed3af35d2c75ce8dc03a427d3158c3d3a9049b5746e391cdd463e8eed66dd507a4d6d74a2382c31ee4e4c8dc4c49d03f
@@ -1,14 +1,15 @@
1
+ require "active_record/comments/execute_with_comments"
2
+ require "active_record/comments/version"
1
3
  require "active_record"
2
4
 
3
5
  module ActiveRecord
4
6
  module Comments
5
7
  class << self
6
8
  def comment(comment)
7
- @comment ||= []
8
- @comment << comment
9
+ current_comments << comment
9
10
  yield
10
11
  ensure
11
- @comment.pop
12
+ current_comments.pop
12
13
  end
13
14
 
14
15
  def with_comment_sql(sql)
@@ -17,19 +18,15 @@ module ActiveRecord
17
18
  end
18
19
 
19
20
  private
21
+ def current_comments
22
+ Thread.current[:ar_comments] ||= []
23
+ end
20
24
 
21
25
  def current_comment
22
- @comment.join(" ") if @comment.present?
26
+ current_comments.join(" ") if current_comments.present?
23
27
  end
24
28
  end
25
29
  end
26
30
  end
27
31
 
28
- # log is called by execute in all db adapters
29
- ActiveRecord::ConnectionAdapters::AbstractAdapter.class_eval do
30
- def log_with_comment_injection(query, *args, &block)
31
- query = ActiveRecord::Comments.with_comment_sql(query)
32
- log_without_comment_injection(query, *args, &block)
33
- end
34
- alias_method_chain :log, :comment_injection
35
- end
32
+ ActiveRecord::Comments::ExecuteWithComments.install!
@@ -0,0 +1,52 @@
1
+ module ActiveRecord
2
+ module Comments
3
+ module ExecuteWithComments
4
+ class << self
5
+ def included(base)
6
+ base.class_eval do
7
+ # ActiveRecord 3.2 vs sqlite, maybe others ...
8
+ if base.method_defined?(:exec_query)
9
+ alias_method :exec_query_without_comment, :exec_query
10
+ def exec_query(query, *args, &block)
11
+ query = ActiveRecord::Comments.with_comment_sql(query)
12
+ exec_query_without_comment(query, *args, &block)
13
+ end
14
+
15
+ # 99% case
16
+ elsif base.method_defined?(:execute)
17
+ alias_method :execute_without_comment, :execute
18
+ def execute(query, *args, &block)
19
+ query = ActiveRecord::Comments.with_comment_sql(query)
20
+ execute_without_comment(query, *args, &block)
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ def install!
27
+ if defined? ActiveRecord::ConnectionAdapters::SQLite3Adapter
28
+ install ActiveRecord::ConnectionAdapters::SQLite3Adapter
29
+ end
30
+
31
+ if defined? ActiveRecord::ConnectionAdapters::MysqlAdapter
32
+ install ActiveRecord::ConnectionAdapters::MysqlAdapter
33
+ end
34
+
35
+ if defined? ActiveRecord::ConnectionAdapters::Mysql2Adapter
36
+ install ActiveRecord::ConnectionAdapters::Mysql2Adapter
37
+ end
38
+
39
+ if defined? ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
40
+ install ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
41
+ end
42
+ end
43
+
44
+ private
45
+
46
+ def install(adapter)
47
+ adapter.send(:include, ::ActiveRecord::Comments::ExecuteWithComments)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,5 @@
1
+ module ActiveRecord
2
+ module Comments
3
+ VERSION = "0.2.0"
4
+ end
5
+ end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record-comments
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-02 00:00:00.000000000 Z
11
+ date: 2021-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '4'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '6.2'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - '>='
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '4'
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: '0'
32
+ version: '6.2'
27
33
  description:
28
34
  email: michael@grosser.it
29
35
  executables: []
@@ -32,6 +38,8 @@ extra_rdoc_files: []
32
38
  files:
33
39
  - MIT-LICENSE
34
40
  - lib/active_record/comments.rb
41
+ - lib/active_record/comments/execute_with_comments.rb
42
+ - lib/active_record/comments/version.rb
35
43
  homepage: https://github.com/grosser/active_record-comments
36
44
  licenses:
37
45
  - MIT
@@ -42,17 +50,16 @@ require_paths:
42
50
  - lib
43
51
  required_ruby_version: !ruby/object:Gem::Requirement
44
52
  requirements:
45
- - - '>='
53
+ - - ">="
46
54
  - !ruby/object:Gem::Version
47
- version: '0'
55
+ version: '2.5'
48
56
  required_rubygems_version: !ruby/object:Gem::Requirement
49
57
  requirements:
50
- - - '>='
58
+ - - ">="
51
59
  - !ruby/object:Gem::Version
52
60
  version: '0'
53
61
  requirements: []
54
- rubyforge_project:
55
- rubygems_version: 2.0.3
62
+ rubygems_version: 3.1.3
56
63
  signing_key:
57
64
  specification_version: 4
58
65
  summary: Comments for activerecord