db_log_tag 0.0.1 → 0.0.3

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
  SHA256:
3
- metadata.gz: bd902bdce242a671355a18146acde9967482666ad689a2ca51e961b08d0714de
4
- data.tar.gz: 4ee6cc7a5a096829d98a1cbdc40251aa8d5c411a02ec838e9e26160a4a5b04fc
3
+ metadata.gz: '09522886cdba1969ddf183893c9260bde1f09b4237086d458e121127865ae217'
4
+ data.tar.gz: b75b3c0fb9a2a6a5702fe5f39df208542f22f20040f3bc0bf3ba22f9a87f3e24
5
5
  SHA512:
6
- metadata.gz: 3f6c7db7eeffca09b74c4258e7c7f7fde486c835c124d8d63b4cf9f1b6e0c922669dbf63bce3c7d7b483c6f32568efcd49fbaae1289e18ac5f42fb08f7514928
7
- data.tar.gz: cb93a42802989964abeb42441699bd02b7109e1348825f71efcf671c666b6781ee4e33f9476e99c17439bce58fdd8852a64cb07babe9aed8999a57bb4b534d5c
6
+ metadata.gz: 5e6521dd4f4a71f8a7cd433fa28b4ce39a39920471e2b84a7fdb5fb8d665264139f90fce46851df104618825fc5960ded8d5a1c5612082d31d5914d9f9d17967
7
+ data.tar.gz: 4150536f87888ec00481cc73536e36a183041acffd711ab0e36cd828d10951f9f9a18ebff756fd81464748c7c5cc19354c80453c928178f2344ed31f2ebea388
@@ -11,22 +11,24 @@ module ActiveRecord
11
11
 
12
12
  attr_accessor :log_tags
13
13
 
14
- def log_tag(tag_name=nil, **options)
14
+ def log_tag(tag_name="", **options)
15
15
  return self unless DbLogTag.enable?
16
16
 
17
17
  if block_given?
18
- tag_name = yield(
18
+ tag_name += yield(
19
19
  klass.connection_pool.db_config.name,
20
20
  ActiveRecord::Base.current_shard,
21
21
  ActiveRecord::Base.current_role
22
22
  )
23
23
  end
24
24
 
25
- tag_color = options.dig(:color)
26
- tag_font = options.dig(:font) || :bold
27
- tag_name = DbLogTag::Colors.set_color(tag_name, tag_color, tag_font) unless tag_color.nil?
28
- self.annotate_values += [":tag:#{tag_name}:tag:"]
29
-
25
+ if tag_name.present?
26
+ tag_color = options.dig(:color)
27
+ tag_font = options.dig(:font) || :bold
28
+ tag_name = DbLogTag::Colors.set_color(tag_name, tag_color, tag_font) unless tag_color.nil?
29
+ self.annotate_values += [":tag:#{tag_name}:tag:"]
30
+ end
31
+
30
32
  self
31
33
  end
32
34
 
@@ -7,7 +7,7 @@ module DbLogTag
7
7
  def db_tags
8
8
  @@db_tags ||= {
9
9
  nil => {
10
- proc: lambda { |db, shard, role| "[#{db}|#{shard}|#{role}]" }
10
+ proc: lambda { |db, shard, role| "[shard:#{shard}|role:#{role}|db:#{db}]" }
11
11
  }
12
12
  }
13
13
  end
data/lib/db_log_tag.rb CHANGED
@@ -27,10 +27,11 @@ module DbLogTag
27
27
  included do
28
28
  alias_method :origin_sql, :sql
29
29
  def sql(event)
30
- if DbLogTag.enable?
30
+ if DbLogTag.enable? && !should_ignore_log?(event)
31
31
  begin
32
- db_log_tags(event)
33
- parse_annotations_as_dynamic_tags(event)
32
+ if tags = parse_annotations_as_dynamic_tags(event) || db_log_tags(event)
33
+ event.payload[:name] = "#{tags} #{event.payload[:name]}"
34
+ end
34
35
  rescue
35
36
  end
36
37
  end
@@ -42,14 +43,13 @@ module DbLogTag
42
43
 
43
44
  def parse_annotations_as_dynamic_tags(event)
44
45
  tags = event.payload[:sql].scan(ActiveRecord::Relation::Tags_Regex).map(&:first).join(" ")
45
-
46
- unless should_ignore_log?(event) || tags.nil?
47
- event.payload[:name] = "#{tags} #{event.payload[:name]}"
48
- end
46
+ return unless tags.present?
49
47
 
50
48
  event.payload[:sql] = event.payload[:sql].gsub(ActiveRecord::Relation::Tags_Regex, "")
51
49
  # still keep normal annotations
52
50
  event.payload[:sql] = event.payload[:sql].gsub(ActiveRecord::Relation::Empty_Annotation, "")
51
+
52
+ tags
53
53
  end
54
54
 
55
55
  def db_log_tags(event)
@@ -57,7 +57,6 @@ module DbLogTag
57
57
 
58
58
  clazz, _ = event.payload[:name].split(" ")
59
59
  _db_info = DbLogTag::MultipleDb.db_info(clazz)
60
- event.payload[:name] = "#{_db_info} #{event.payload[:name]}"
61
60
  end
62
61
 
63
62
  def should_ignore_log?(event)
@@ -3,11 +3,11 @@ DbLogTag.config do |config|
3
3
 
4
4
  # # default for all
5
5
  # config.db_tag do |db, shard, role|
6
- # "[#{db}|#{shard}|#{role}]"
6
+ # "[shard:#{shard}|role:#{role}|db:#{db}]"
7
7
  # end
8
8
 
9
- # # for only User
9
+ # # for only User queries
10
10
  # config.db_tag :user, color: :red do |db, shard, role|
11
- # "[#{db}|#{shard}|#{role}]"
11
+ # "[shard:#{shard}|role:#{role}|db:#{db}]"
12
12
  # end
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: db_log_tag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lam Phan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-01 00:00:00.000000000 Z
11
+ date: 2024-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -66,8 +66,8 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- description: Allow to prepend prefix tags before query logs to track name, shard and
70
- role of the database.
69
+ description: Allow to prepend prefix tags to the beginning of the query logs to track
70
+ name, shard and role of the database
71
71
  email: theforestvn88@gmail.com
72
72
  executables: []
73
73
  extensions: []
@@ -85,7 +85,10 @@ files:
85
85
  homepage: https://github.com/theforestvn88/rails_db_log_tag
86
86
  licenses:
87
87
  - MIT
88
- metadata: {}
88
+ metadata:
89
+ homepage_uri: https://github.com/theforestvn88/rails_db_log_tag
90
+ source_code_uri: https://github.com/theforestvn88/rails_db_log_tag.git
91
+ changelog_uri: https://github.com/theforestvn88/rails_db_log_tag.git
89
92
  post_install_message:
90
93
  rdoc_options: []
91
94
  require_paths: