sql_tagger 0.0.4 → 0.1.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 +4 -4
- data/VERSION +1 -1
- data/lib/sql_tagger.rb +18 -1
- data/spec/sql_tagger_spec.rb +22 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ba8b3d9228f6bc5892be02416589662b169071b
|
4
|
+
data.tar.gz: 8a27f05d376164274050b2ba2a773841cbf2b04d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a14276e6e2746a2b685bc8d8ecfcf7096f12fbc6361d75663dba32d4dd790e448eaba61fbdbb73562435867caa4567be4e8193e32c3c8095c2a0632c11dd1a6c
|
7
|
+
data.tar.gz: 0a622ae346fc79fd05e147859e9dc4b4231f2cf7b986c888973dc84b83b847461f252f556a5f1241aa8e13d44023ed4200583a1e33d2333f282cd12f4d210ec5
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/lib/sql_tagger.rb
CHANGED
@@ -7,6 +7,10 @@ class SqlTagger
|
|
7
7
|
File.join(File.dirname(__FILE__), '..', 'VERSION')
|
8
8
|
).chomp.freeze
|
9
9
|
|
10
|
+
# @return [String, #call] a string or a proc which resolves to a string
|
11
|
+
# to prefix the call trace tag
|
12
|
+
attr_accessor :custom_tag_prefix
|
13
|
+
|
10
14
|
# @return [Regexp]
|
11
15
|
# regular expression used to match stack strings we should skip (usually
|
12
16
|
# because such stack strings aren't specific enough, like stack strings
|
@@ -33,7 +37,7 @@ class SqlTagger
|
|
33
37
|
caller(2).each do |string|
|
34
38
|
next if @exclusion_cache.member?(string)
|
35
39
|
if string !~ @exclusion_pattern
|
36
|
-
return "/* #{string} */ #{sql}"
|
40
|
+
return "/* #{custom_tag_prefix_string} #{string} */ #{sql}"
|
37
41
|
else
|
38
42
|
@exclusion_cache.add(string)
|
39
43
|
end
|
@@ -101,4 +105,17 @@ class SqlTagger
|
|
101
105
|
end
|
102
106
|
end
|
103
107
|
end
|
108
|
+
|
109
|
+
private
|
110
|
+
|
111
|
+
# Returns a freshly resolved custom tag prefix string
|
112
|
+
#
|
113
|
+
# @return [String] string to prefix the call trace tag
|
114
|
+
def custom_tag_prefix_string
|
115
|
+
if @custom_tag_prefix.respond_to?(:call)
|
116
|
+
@custom_tag_prefix.call
|
117
|
+
else
|
118
|
+
@custom_tag_prefix
|
119
|
+
end
|
120
|
+
end
|
104
121
|
end
|
data/spec/sql_tagger_spec.rb
CHANGED
@@ -21,7 +21,7 @@ RSpec.describe SqlTagger do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'skips stack strings that match @exclusion_pattern' do
|
24
|
-
expect(sql_tagger.tag(sql)).to eq("/*
|
24
|
+
expect(sql_tagger.tag(sql)).to eq("/* #{valid_stack_string} */ #{sql}")
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'returns the 1st stack string that does not match @exclusion_pattern' do
|
@@ -29,7 +29,7 @@ RSpec.describe SqlTagger do
|
|
29
29
|
'/home/app/myapp/lib/document.rb:788',
|
30
30
|
'/home/app/myapp/runner.rb:29'
|
31
31
|
)
|
32
|
-
expect(sql_tagger.tag(sql)).to eq("/*
|
32
|
+
expect(sql_tagger.tag(sql)).to eq("/* #{valid_stack_string} */ #{sql}")
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'adds skipped stack strings into @exclusion_cache' do
|
@@ -45,7 +45,26 @@ RSpec.describe SqlTagger do
|
|
45
45
|
correct_string = '/home/myapp/i.rb:2890'
|
46
46
|
caller_result.push(correct_string)
|
47
47
|
sql_tagger.exclusion_cache.add(valid_stack_string)
|
48
|
-
expect(sql_tagger.tag(sql)).to eq("/*
|
48
|
+
expect(sql_tagger.tag(sql)).to eq("/* #{correct_string} */ #{sql}")
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'when @custom_tag_prefix is set as a proc' do
|
52
|
+
it 'prefixes the tag with a freshly resolved @custom_tag_prefix proc' do
|
53
|
+
string_stack = ['a', 'b']
|
54
|
+
sql_tagger.custom_tag_prefix = proc { string_stack.pop }
|
55
|
+
expect(sql_tagger.tag(sql)).
|
56
|
+
to eq("/* b #{valid_stack_string} */ #{sql}")
|
57
|
+
expect(sql_tagger.tag(sql)).
|
58
|
+
to eq("/* a #{valid_stack_string} */ #{sql}")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context 'when @custom_tag_prefix is set as a string' do
|
63
|
+
it 'prefixes the tag with the set @custom_tag_prefix' do
|
64
|
+
sql_tagger.custom_tag_prefix = 'a'
|
65
|
+
expect(sql_tagger.tag(sql)).
|
66
|
+
to eq("/* a #{valid_stack_string} */ #{sql}")
|
67
|
+
end
|
49
68
|
end
|
50
69
|
end
|
51
70
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sql_tagger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toby Hsieh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|