sql_tracer 0.0.4 → 0.0.6

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: c0d9bf98671c6c623630532110d4242d328b3f77
4
- data.tar.gz: 531e42a3591f3c0897e9c954e67d494f4ce9a532
3
+ metadata.gz: 554687b0e5ff1f0aeabbffa232513722309d2b5c
4
+ data.tar.gz: 4e1b7e5d40d3e4462bdb70087620b5501feff05b
5
5
  SHA512:
6
- metadata.gz: aed0a73f6142f6d6aac3f112c2339f64c35c2698c7516182109d2329bb8ebc57e612a69bc2e4e19967869bd473c89d054dbbcd8ad810f8de024aa30985c62881
7
- data.tar.gz: 83b3818eef10ad8c3fed8efb4348ca0856e22d398f0c9f212cec8a1565fbb5ac3b1bc89834a713dcc8968d7546441343b8018dded8b14d7a58bec5b2fd6ce00e
6
+ metadata.gz: a3363dd4e9e43ee0369036b2b4938b82eba73a18fffb88104375008c110c63a16a797eb5fda2b8d37d05ab1d13bd002bcb669bcf071a33c1780ad19b3a2efe21
7
+ data.tar.gz: d961a3be4e1842306e17eb9c48dc1e706bde60a3f339586da03a5feb9fc9374f6b3e8591634ff28dd04c87209973d207306faab702a3c94aa57308f193c58f86
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sql_tracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - xiaoye
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-20 00:00:00.000000000 Z
11
+ date: 2017-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: anbt-sql-formatter
@@ -26,15 +26,11 @@ dependencies:
26
26
  version: 0.0.5
27
27
  description: log backtrace when sql is executed
28
28
  email:
29
- - eng-ui@freewheel.tv
29
+ - qzhang@freewheel.tv
30
30
  executables: []
31
31
  extensions: []
32
32
  extra_rdoc_files: []
33
- files:
34
- - lib/sql_tracer.rb
35
- - lib/sql_tracer/formatter.rb
36
- - lib/sql_tracer/helper.rb
37
- - lib/sql_tracer/sql_logger.rb
33
+ files: []
38
34
  homepage: https://git.dev.fwmrm.net/qzhang/sql_tracer
39
35
  licenses: []
40
36
  metadata: {}
@@ -1,15 +0,0 @@
1
- module SqlTracer
2
- autoload :SqlLogger, 'sql_tracer/sql_logger'
3
- autoload :Helper, 'sql_tracer/helper'
4
- autoload :Formatter, 'sql_tracer/formatter'
5
- end
6
-
7
- # why does not work when wrapped in block ActiveSupport.on_load(:active_record) do
8
- begin
9
- require 'active_record/connection_adapters/mysql2_adapter'
10
- ActiveRecord::ConnectionAdapters::Mysql2Adapter.send(:include, SqlTracer::SqlLogger)
11
- SqlTracer::Formatter.print_tips
12
- rescue LoadError, NameError => e
13
-
14
- Rails.logger.error('Failed to injuect SqlTracer to ActiveRecord due to :' + e.message)
15
- end
@@ -1,69 +0,0 @@
1
- require 'anbt-sql-formatter/formatter'
2
-
3
- module SqlTracer
4
- class Formatter
5
- HEADER_PROMPT= '='*10 << '>'
6
- FOOTER_PROMPT= '<' << '='*10
7
- FORMATTER_CONFIG_TIP =
8
- <<-TIP
9
- You can add config to ui_config.yml to acquire advanced features
10
- SQL_TRACER_FORMAT_SQL_ENABLED: true # show formatted and colored sql, default false
11
- SQL_TRACER_FORMAT_STACK_ENABLED: true # show colored stack, default fasle
12
- SQL_TRACER_SKIP_LIB: false # show all paths including the files in ruby gems, default true
13
- TIP
14
-
15
- def self.start_print
16
- puts HEADER_PROMPT
17
- end
18
-
19
- def self.end_print
20
- puts FOOTER_PROMPT
21
- end
22
-
23
- def self.print_tips
24
- puts 'SqlTracer is watching and will capture backtrace when sql is executed.'
25
- puts FORMATTER_CONFIG_TIP
26
- end
27
-
28
- def self.print_sql(sql)
29
- puts 'SQL:'
30
- return sql if sql.blank?
31
- formatted_sql = ' ' << (Helper.format_sql_enabled? ? colorize(sql_formatter.format(sql.squeeze(' ')), 32) : sql)
32
- puts formatted_sql
33
- end
34
-
35
- def self.print_backtrace(backtrace)
36
- puts Helper.should_skip_lib? ? 'Backtrace: note that paths in ruby libs have been hidden' : 'Backtrace:'
37
-
38
- stacktrace = backtrace.map do |call|
39
- line = (call.include?('/.rvm/gems/') && Helper.should_skip_lib?) ? nil : call
40
- line = format_line(line) if (line && Helper.format_stack_enabled?)
41
- line
42
- end
43
- stacktrace.compact.each { |line| puts ' ' << line }
44
- end
45
-
46
- def self.sql_formatter
47
- return @formatter if @formatter
48
- rule = AnbtSql::Rule.new
49
- rule.keyword = AnbtSql::Rule::KEYWORD_UPPER_CASE
50
- rule.function_names += %w(count sum)
51
- rule.indent_string = ' '
52
- @formatter = AnbtSql::Formatter.new(rule)
53
- end
54
-
55
- def self.format_line(line)
56
- parts = line.match(/^(?<file>.+):(?<line>\d+):in `(?<code>.*)'$/)
57
- if parts
58
- "#{colorize(parts[:file], 32)}:#{colorize(parts[:line], 36)}:#{colorize(parts[:code], 31)}"
59
- else
60
- "#{colorize(line, 32)}"
61
- end
62
- end
63
-
64
- def self.colorize(text, color_code)
65
- "\e[#{color_code}m#{text}\e[0m"
66
- end
67
-
68
- end
69
- end
@@ -1,17 +0,0 @@
1
- require 'anbt-sql-formatter/formatter'
2
-
3
- module SqlTracer
4
- class Helper
5
- def self.format_sql_enabled?
6
- @format_sql_enabled ||= (UIConfig && UIConfig.get(:SQL_TRACER_FORMAT_SQL_ENABLED))
7
- end
8
-
9
- def self.format_stack_enabled?
10
- @format_stack_enabled ||= (UIConfig && UIConfig.get(:SQL_TRACER_FORMAT_STACK_ENABLED))
11
- end
12
-
13
- def self.should_skip_lib?
14
- @should_skip_lib ||= (UIConfig && UIConfig.get(:SQL_TRACER_SKIP_LIB)!=true)
15
- end
16
- end
17
- end
@@ -1,26 +0,0 @@
1
- require 'anbt-sql-formatter/formatter'
2
-
3
- module SqlTracer
4
- module SqlLogger
5
- extend ActiveSupport::Concern
6
- included do
7
- alias_method :execute_without_sql_tracer, :execute
8
-
9
- def execute(*args)
10
- begin
11
- sql = args.first
12
- if sql =~ /^\s*(insert|update|delete)\s/i
13
- Formatter.start_print
14
- Formatter.print_sql(sql)
15
- Formatter.print_backtrace(Thread.current.backtrace)
16
- Formatter.end_print
17
- end
18
- rescue => e
19
- Rails.logger.error "Failed to log sql in SqlTracer. Error: #{e.message}"
20
- Rails.logger.error e.backtrace.join("\n")
21
- end
22
- execute_without_sql_tracer(*args)
23
- end
24
- end
25
- end
26
- end