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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 261c5aa051e63968deb877640c812121e3898cccdd71a60aebed350f7cbc2cd2
4
- data.tar.gz: e15cae8c9e0616deafc9d0ccefd5e4414c2653e673722d1995d7b27c24ad114c
3
+ metadata.gz: 140f30630a7230c26d92685df9096e1ca6580b5b7e912abc67f9080ae059d548
4
+ data.tar.gz: 5ab346dacef176ca728d6443ce76d91cdd8c924e2b72489312d4bf8fb61efe77
5
5
  SHA512:
6
- metadata.gz: 508119aff4af84168665d355bbc154232a4a98d713728adcd18495435fdc39fdb8868cde5cbccb2e570fc7c587f92e295d137f04b3c765aa99945974723c516f
7
- data.tar.gz: 3888919f8554c94e596f567ac085ecde9316b32244781b30600a1c6d1a4d0bd47cc6e824bbbf110b084fe4ed392fdf552d2f587f9075938a1881bc2ea623a049
6
+ metadata.gz: 0bcb94444e554501b9e926ff95149e749c62728bc2b6fed26012405d87b358ea93ea14a275b570c5d673f4d2a038b92fc0081ec0bef7e43253d760f352471f37
7
+ data.tar.gz: 83f4f5aa3d64ecc5cddbd33346b2cbd8d81376ca4efdfa895d928f5fe9abfa759718d97c5700566ad45a06ebd653dd31937f32acee0390ced841e082e40ae0fa
@@ -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 FROM].include? first and last != "DELETE"
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 #{where_parts[0]}"
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.3
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-27 00:00:00.000000000 Z
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