tsql_parser 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/parsing/formatter.rb +6 -9
- data/lib/parsing/text_formatter.rb +1 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 140f30630a7230c26d92685df9096e1ca6580b5b7e912abc67f9080ae059d548
|
4
|
+
data.tar.gz: 5ab346dacef176ca728d6443ce76d91cdd8c924e2b72489312d4bf8fb61efe77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0bcb94444e554501b9e926ff95149e749c62728bc2b6fed26012405d87b358ea93ea14a275b570c5d673f4d2a038b92fc0081ec0bef7e43253d760f352471f37
|
7
|
+
data.tar.gz: 83f4f5aa3d64ecc5cddbd33346b2cbd8d81376ca4efdfa895d928f5fe9abfa759718d97c5700566ad45a06ebd653dd31937f32acee0390ced841e082e40ae0fa
|
data/lib/parsing/formatter.rb
CHANGED
@@ -36,6 +36,7 @@ module TSqlParser::Parsing
|
|
36
36
|
text = TextFormatter.format_selects(text, tab)
|
37
37
|
text = TextFormatter.format_sets(text, tab)
|
38
38
|
text
|
39
|
+
puts text
|
39
40
|
end
|
40
41
|
|
41
42
|
private
|
@@ -65,29 +66,25 @@ module TSqlParser::Parsing
|
|
65
66
|
sub_one = false
|
66
67
|
work_lines = work_lines.flatten
|
67
68
|
last = ""
|
69
|
+
in_if_exists = false
|
68
70
|
work_lines.each_with_index do |line, index|
|
69
71
|
first = line.strip.split(" ").first
|
72
|
+
next_line = work_lines[index + 1] unless index + 1 > work_lines.size
|
73
|
+
next_line_first = next_line.strip.split(" ").first unless next_line.nil?
|
70
74
|
|
71
75
|
if %w[CASE BEGIN SELECT].include? first or line.strip.start_with? "CREATE PROCEDURE"
|
72
76
|
indented_lines << "#{tab * tab_count}#{line}"
|
73
77
|
tab_count += 1
|
74
|
-
elsif %w[END GO
|
78
|
+
elsif %w[FROM END GO].include? first and not %w[DELETE UPDATE INSERT].include? last
|
75
79
|
tab_count -= 1 if tab_count > 0
|
76
80
|
indented_lines << "#{tab * tab_count}#{line}"
|
77
|
-
elsif %w[IF].include? first
|
78
|
-
indented_lines << "#{tab * tab_count}#{line}"
|
79
|
-
next_line = work_lines[index + 1] unless index + 1 > work_lines.size
|
80
|
-
sub_one = true unless next_line.start_with? "BEGIN"
|
81
|
-
tab_count += 1 if sub_one
|
82
|
-
last = first
|
83
|
-
next
|
84
81
|
else
|
85
82
|
indented_lines << "#{tab * tab_count}#{line}"
|
86
83
|
end
|
87
84
|
|
88
85
|
if sub_one
|
89
86
|
sub_one = false
|
90
|
-
tab_count -= 1
|
87
|
+
tab_count -= 1 if tab_count > 0
|
91
88
|
end
|
92
89
|
last = first
|
93
90
|
end
|
@@ -184,10 +184,8 @@ module TSqlParser::Parsing
|
|
184
184
|
formatted = []
|
185
185
|
parts = s.split(" SET ")
|
186
186
|
table = parts[0]
|
187
|
-
where_parts = parts[1].split(" WHERE ")
|
188
187
|
formatted << "\n#{tab * (tab_count + 1)}#{table}"
|
189
|
-
formatted << "#{tab * tab_count}SET #{
|
190
|
-
formatted << "#{tab * tab_count}WHERE #{where_parts[1]}" if where_parts.size > 0
|
188
|
+
formatted << "#{tab * tab_count}SET #{parts[1]}"
|
191
189
|
formatted.join("\n")
|
192
190
|
end
|
193
191
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tsql_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Stauffer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-03-
|
11
|
+
date: 2023-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A very light-weight and opinionated T-SQL parser and formatter.
|
14
14
|
email: scott@fuseraft.com
|