each_sql 0.2.2 → 0.2.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.
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,6 @@
1
+ === 0.2.3 / 2011/07/08
2
+ * Bug fix: Two Oracle PL/SQL parsing errors fixed
3
+
1
4
  === 0.2.2 / 2011/06/21
2
5
  * Bug fix: Error on nil/empty input
3
6
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.2.3
@@ -38,12 +38,13 @@ class EachSQL
38
38
 
39
39
  # Process callbacks
40
40
  @options[:callbacks].each do |pattern, callback|
41
- md = statement.match pattern
41
+ #md = statement.match pattern
42
+ md = zero_out(statement).strip.match pattern
42
43
  callback.call self, statement, md if md
43
44
  end
44
45
 
45
46
  # Ignore
46
- if (@options[:ignore] || []).all? { |ipat| statement !~ ipat }
47
+ if (@options[:ignore] || []).all? { |ipat| statement !~ ipat } && statement.empty? == false
47
48
  yield statement
48
49
  @prev_statement = statement
49
50
  end
data/lib/each_sql.rb CHANGED
@@ -95,7 +95,7 @@ class EachSQL
95
95
  }
96
96
  },
97
97
  :nesting_context => [
98
- /\A\s*(begin|declare|create\b[^;]+?\b(procedure|function|trigger|package))\b/im
98
+ /\A\s*(\/\s*)*(begin|declare|create\b[^;]+?\b(procedure|function|trigger|package))\b/im
99
99
  ],
100
100
  :callbacks => {
101
101
  /\Abegin\b/ => lambda { |obj, stmt, md|
@@ -105,7 +105,7 @@ class EachSQL
105
105
  },
106
106
  :ignore => [],
107
107
  :replace => { %r[\A/] => '' },
108
- :strip_delimiter => lambda { |obj, stmt| obj
108
+ :strip_delimiter => lambda { |obj, stmt|
109
109
  stmt.gsub(/(#{stmt =~ /;\s*\// ? '/' : ';'})+\Z/, '')
110
110
  }
111
111
  }
@@ -95,7 +95,8 @@ exception
95
95
  when others then
96
96
  raise;
97
97
  end;",
98
- "declare
98
+ "-- declaration
99
+ declare
99
100
  a int;
100
101
  begin
101
102
  1 / 2;
@@ -110,9 +111,19 @@ end;",
110
111
  "begin
111
112
  null;
112
113
  end;",
114
+ "begin
115
+ null;
116
+ end;",
113
117
  "select * from dual",
114
118
  "select begin, end, create, procedure, end, from dual",
115
- "select * from dual"
119
+ "select * from dual",
120
+ "-- TMP_DB_TOOLS_CONV
121
+ begin
122
+ execute immediate 'DROP TABLE TMP_DB_TOOLS_CONV CASCADE CONSTRAINTS';
123
+ exception
124
+ when others then
125
+ null;
126
+ end;"
116
127
  ]
117
128
 
118
129
  @oracle_script = "
@@ -138,6 +149,7 @@ exception
138
149
  raise;
139
150
  end;
140
151
  /
152
+ -- declaration
141
153
  declare
142
154
  a int;
143
155
  begin
@@ -155,6 +167,10 @@ begin
155
167
  null;
156
168
  end;
157
169
  /
170
+ begin
171
+ null;
172
+ end;
173
+ /
158
174
  select * from dual;
159
175
  ;
160
176
  ;
@@ -166,6 +182,15 @@ select * from dual;
166
182
 
167
183
  select begin, end, create, procedure, end, from dual;
168
184
  select * from dual;
185
+
186
+ -- TMP_DB_TOOLS_CONV
187
+ begin
188
+ execute immediate 'DROP TABLE TMP_DB_TOOLS_CONV CASCADE CONSTRAINTS';
189
+ exception
190
+ when others then
191
+ null;
192
+ end;
193
+ /
169
194
  "
170
195
 
171
196
  @mysql = [
metadata CHANGED
@@ -1,104 +1,96 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: each_sql
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.3
4
5
  prerelease:
5
- version: 0.2.2
6
6
  platform: ruby
7
- authors:
8
- - Junegunn Choi
7
+ authors:
8
+ - Junegunn Choi
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-06-20 00:00:00 +09:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: bundler
18
- version_requirements: &id001 !ruby/object:Gem::Requirement
19
- none: false
20
- requirements:
21
- - - ~>
22
- - !ruby/object:Gem::Version
23
- version: 1.0.0
24
- requirement: *id001
25
- prerelease: false
26
- type: :development
27
- - !ruby/object:Gem::Dependency
28
- name: jeweler
29
- version_requirements: &id002 !ruby/object:Gem::Requirement
30
- none: false
31
- requirements:
32
- - - ~>
33
- - !ruby/object:Gem::Version
34
- version: 1.6.2
35
- requirement: *id002
36
- prerelease: false
37
- type: :development
38
- - !ruby/object:Gem::Dependency
39
- name: rcov
40
- version_requirements: &id003 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
46
- requirement: *id003
47
- prerelease: false
48
- type: :development
12
+ date: 2011-07-08 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: &2157020060 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.0.0
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *2157020060
25
+ - !ruby/object:Gem::Dependency
26
+ name: jeweler
27
+ requirement: &2157019580 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 1.6.2
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *2157019580
36
+ - !ruby/object:Gem::Dependency
37
+ name: rcov
38
+ requirement: &2157019100 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *2157019100
49
47
  description: Enumerate each SQL statement in SQL scripts.
50
48
  email: junegunn.c@gmail.com
51
49
  executables: []
52
-
53
50
  extensions: []
54
-
55
- extra_rdoc_files:
56
- - LICENSE.txt
57
- - README.rdoc
58
- files:
59
- - .document
60
- - CHANGELOG.rdoc
61
- - Gemfile
62
- - Gemfile.lock
63
- - LICENSE.txt
64
- - README.rdoc
65
- - Rakefile
66
- - VERSION
67
- - lib/each_sql.rb
68
- - lib/each_sql/each_sql.rb
69
- - test/helper.rb
70
- - test/postgres.sql
71
- - test/test_each_sql.rb
72
- has_rdoc: true
51
+ extra_rdoc_files:
52
+ - LICENSE.txt
53
+ - README.rdoc
54
+ files:
55
+ - .document
56
+ - CHANGELOG.rdoc
57
+ - Gemfile
58
+ - Gemfile.lock
59
+ - LICENSE.txt
60
+ - README.rdoc
61
+ - Rakefile
62
+ - VERSION
63
+ - lib/each_sql.rb
64
+ - lib/each_sql/each_sql.rb
65
+ - test/helper.rb
66
+ - test/postgres.sql
67
+ - test/test_each_sql.rb
73
68
  homepage: http://github.com/junegunn/each_sql
74
- licenses:
75
- - MIT
69
+ licenses:
70
+ - MIT
76
71
  post_install_message:
77
72
  rdoc_options: []
78
-
79
- require_paths:
80
- - lib
81
- required_ruby_version: !ruby/object:Gem::Requirement
73
+ require_paths:
74
+ - lib
75
+ required_ruby_version: !ruby/object:Gem::Requirement
82
76
  none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 2
87
- segments:
88
- - 0
89
- version: "0"
90
- required_rubygems_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ segments:
82
+ - 0
83
+ hash: -2366804221344298051
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
85
  none: false
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: "0"
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
96
90
  requirements: []
97
-
98
91
  rubyforge_project:
99
- rubygems_version: 1.5.1
92
+ rubygems_version: 1.7.2
100
93
  signing_key:
101
94
  specification_version: 3
102
95
  summary: Enumerate each SQL statement in SQL scripts.
103
96
  test_files: []
104
-