each_sql 0.4.0 → 0.4.1
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/.gitignore +17 -0
- data/Gemfile +3 -13
- data/LICENSE.txt +3 -1
- data/Rakefile +1 -39
- data/each_sql.gemspec +21 -51
- data/lib/each_sql/parser/sql.citrus.erb +15 -11
- data/test/helper.rb +2 -13
- data/test/test_each_sql.rb +13 -19
- data/test/yml/default.yml +10 -3
- metadata +27 -19
- data/.document +0 -5
- data/Gemfile.lock +0 -23
- data/VERSION +0 -1
data/.gitignore
ADDED
data/Gemfile
CHANGED
@@ -1,14 +1,4 @@
|
|
1
|
-
source
|
2
|
-
# Add dependencies required to use your gem here.
|
3
|
-
# Example:
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
5
|
-
gem 'citrus', '~> 2.4.1'
|
6
|
-
gem 'erubis', '~> 2.7.0'
|
7
|
-
gem 'quote_unquote', '~> 0.1.1'
|
1
|
+
source 'https://rubygems.org'
|
8
2
|
|
9
|
-
#
|
10
|
-
|
11
|
-
group :development do
|
12
|
-
gem "bundler", "~> 1.0.0"
|
13
|
-
gem "jeweler", "~> 1.6.2"
|
14
|
-
end
|
3
|
+
# Specify your gem's dependencies in each_sql.gemspec
|
4
|
+
gemspec
|
data/LICENSE.txt
CHANGED
data/Rakefile
CHANGED
@@ -1,45 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
require 'bundler'
|
5
|
-
begin
|
6
|
-
Bundler.setup(:default, :development)
|
7
|
-
rescue Bundler::BundlerError => e
|
8
|
-
$stderr.puts e.message
|
9
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
-
exit e.status_code
|
11
|
-
end
|
12
|
-
require 'rake'
|
13
|
-
|
14
|
-
require 'jeweler'
|
15
|
-
Jeweler::Tasks.new do |gem|
|
16
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
-
gem.name = "each_sql"
|
18
|
-
gem.homepage = "http://github.com/junegunn/each_sql"
|
19
|
-
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{Enumerate each SQL statement in SQL scripts.}
|
21
|
-
gem.description = %Q{Enumerate each SQL statement in SQL scripts.}
|
22
|
-
gem.email = "junegunn.c@gmail.com"
|
23
|
-
gem.authors = ["Junegunn Choi"]
|
24
|
-
# dependencies defined in Gemfile
|
25
|
-
end
|
26
|
-
Jeweler::RubygemsDotOrgTasks.new
|
27
|
-
|
1
|
+
require "bundler/gem_tasks"
|
28
2
|
require 'rake/testtask'
|
29
3
|
Rake::TestTask.new(:test) do |test|
|
30
4
|
test.libs << 'lib' << 'test'
|
31
5
|
test.pattern = 'test/**/test_*.rb'
|
32
6
|
test.verbose = true
|
33
7
|
end
|
34
|
-
|
35
|
-
task :default => :test
|
36
|
-
|
37
|
-
require 'rake/rdoctask'
|
38
|
-
Rake::RDocTask.new do |rdoc|
|
39
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
40
|
-
|
41
|
-
rdoc.rdoc_dir = 'rdoc'
|
42
|
-
rdoc.title = "each_sql #{version}"
|
43
|
-
rdoc.rdoc_files.include('README*')
|
44
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
45
|
-
end
|
data/each_sql.gemspec
CHANGED
@@ -1,55 +1,25 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
# -*- encoding: utf-8 -*-
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
4
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "each_sql"
|
7
|
+
spec.version = "0.4.1"
|
8
|
+
spec.authors = ["Junegunn Choi"]
|
9
|
+
spec.email = ["junegunn.c@gmail.com"]
|
10
|
+
spec.description = %q{Enumerate each SQL statement in SQL scripts.}
|
11
|
+
spec.summary = %q{Enumerate each SQL statement in SQL scripts.}
|
12
|
+
spec.homepage = "https://github.com/junegunn/each_sql"
|
13
|
+
spec.license = "MIT"
|
9
14
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
s.email = %q{junegunn.c@gmail.com}
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"LICENSE.txt",
|
17
|
-
"README.rdoc"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
"CHANGELOG.rdoc",
|
22
|
-
"Gemfile",
|
23
|
-
"Gemfile.lock",
|
24
|
-
"LICENSE.txt",
|
25
|
-
"README.rdoc",
|
26
|
-
"Rakefile",
|
27
|
-
"VERSION",
|
28
|
-
"lib/each_sql.rb",
|
29
|
-
"lib/each_sql/each_sql.rb",
|
30
|
-
"test/helper.rb",
|
31
|
-
"test/postgres.sql",
|
32
|
-
"test/test_each_sql.rb"
|
33
|
-
]
|
34
|
-
s.homepage = %q{http://github.com/junegunn/each_sql}
|
35
|
-
s.licenses = ["MIT"]
|
36
|
-
s.require_paths = ["lib"]
|
37
|
-
s.rubygems_version = %q{1.7.2}
|
38
|
-
s.summary = %q{Enumerate each SQL statement in SQL scripts.}
|
15
|
+
spec.files = `git ls-files`.split($/)
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
+
spec.require_paths = ["lib"]
|
39
19
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.6.2"])
|
46
|
-
else
|
47
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
48
|
-
s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
|
49
|
-
end
|
50
|
-
else
|
51
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
52
|
-
s.add_dependency(%q<jeweler>, ["~> 1.6.2"])
|
53
|
-
end
|
20
|
+
spec.add_runtime_dependency 'citrus', '~> 2.4.1'
|
21
|
+
spec.add_runtime_dependency 'erubis', '~> 2.7.0'
|
22
|
+
spec.add_runtime_dependency 'quote_unquote', '~> 0.1.1'
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
24
|
+
spec.add_development_dependency "rake"
|
54
25
|
end
|
55
|
-
|
@@ -13,7 +13,7 @@ grammar EachSQL::Parser::Default<%= suffix %>
|
|
13
13
|
|
14
14
|
rule begin_end_block
|
15
15
|
begin_block
|
16
|
-
(begin_end_block | sql_statement | empty)+
|
16
|
+
(begin_end_block | sql_statement | empty)+
|
17
17
|
end_block
|
18
18
|
delimiters
|
19
19
|
end
|
@@ -36,12 +36,12 @@ grammar EachSQL::Parser::Default<%= suffix %>
|
|
36
36
|
|
37
37
|
!(begin_block | end_block) chunk
|
38
38
|
|
39
|
-
(chunk | empty)*
|
39
|
+
(chunk | empty)*
|
40
40
|
delimiters
|
41
41
|
end
|
42
42
|
|
43
43
|
rule delimiters
|
44
|
-
empty* delimiter
|
44
|
+
empty* delimiter
|
45
45
|
(empty | delimiter)*
|
46
46
|
end
|
47
47
|
|
@@ -70,7 +70,11 @@ grammar EachSQL::Parser::Default<%= suffix %>
|
|
70
70
|
end
|
71
71
|
|
72
72
|
rule c_comment
|
73
|
-
'/*' (!'*/' .)* '*/'
|
73
|
+
'/*' (hint | !'*/' .)* '*/'
|
74
|
+
end
|
75
|
+
|
76
|
+
rule hint
|
77
|
+
'/*+' (!'*/' .)* '*/'
|
74
78
|
end
|
75
79
|
|
76
80
|
rule l_comment
|
@@ -112,7 +116,7 @@ grammar EachSQL::Parser::MySQL<%= suffix %>
|
|
112
116
|
|
113
117
|
rule begin_end_block
|
114
118
|
begin_block
|
115
|
-
(begin_end_block | sql_statement | empty)+
|
119
|
+
(begin_end_block | sql_statement | empty)+
|
116
120
|
end_block
|
117
121
|
delimiters
|
118
122
|
end
|
@@ -127,7 +131,7 @@ grammar EachSQL::Parser::MySQL<%= suffix %>
|
|
127
131
|
|
128
132
|
!(begin_block | end_block) chunk
|
129
133
|
|
130
|
-
(chunk | empty)*
|
134
|
+
(chunk | empty)*
|
131
135
|
delimiters
|
132
136
|
end
|
133
137
|
|
@@ -156,7 +160,7 @@ grammar EachSQL::Parser::PostgreSQL<%= suffix %>
|
|
156
160
|
|
157
161
|
rule begin_end_block
|
158
162
|
begin_block
|
159
|
-
(begin_end_block | sql_statement | empty)+
|
163
|
+
(begin_end_block | sql_statement | empty)+
|
160
164
|
end_block
|
161
165
|
delimiters
|
162
166
|
end
|
@@ -171,7 +175,7 @@ grammar EachSQL::Parser::PostgreSQL<%= suffix %>
|
|
171
175
|
|
172
176
|
!(begin_block | end_block) chunk
|
173
177
|
|
174
|
-
(chunk | empty)*
|
178
|
+
(chunk | empty)*
|
175
179
|
delimiters
|
176
180
|
end
|
177
181
|
|
@@ -201,7 +205,7 @@ grammar EachSQL::Parser::Oracle<%= suffix %>
|
|
201
205
|
|
202
206
|
rule execution_block
|
203
207
|
(
|
204
|
-
creation |
|
208
|
+
creation |
|
205
209
|
declare_begin_end_block |
|
206
210
|
begin_end_block |
|
207
211
|
sql_statement
|
@@ -209,7 +213,7 @@ grammar EachSQL::Parser::Oracle<%= suffix %>
|
|
209
213
|
end
|
210
214
|
|
211
215
|
rule declare_begin_end_block
|
212
|
-
declare
|
216
|
+
declare
|
213
217
|
sql_statement+
|
214
218
|
begin_end_block
|
215
219
|
end
|
@@ -219,7 +223,7 @@ grammar EachSQL::Parser::Oracle<%= suffix %>
|
|
219
223
|
|
220
224
|
!('/' | create | declare | begin_block | end_block) chunk
|
221
225
|
|
222
|
-
(chunk | empty)*
|
226
|
+
(chunk | empty)*
|
223
227
|
delimiters
|
224
228
|
end
|
225
229
|
|
data/test/helper.rb
CHANGED
@@ -1,17 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require 'bundler'
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
2
|
+
require 'bundler/setup'
|
10
3
|
require 'test/unit'
|
11
4
|
|
12
|
-
$LOAD_PATH.unshift
|
13
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
5
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
14
6
|
require 'each_sql'
|
15
|
-
|
16
|
-
class Test::Unit::TestCase
|
17
|
-
end
|
data/test/test_each_sql.rb
CHANGED
@@ -27,17 +27,17 @@ class TestEachSql < Test::Unit::TestCase
|
|
27
27
|
# Acceptance tests
|
28
28
|
# ================
|
29
29
|
def test_empty
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
[nil, "", " \n" * 10].each do |input|
|
31
|
+
EachSQL(input).each do |sql|
|
32
|
+
assert false, 'Should not enumerate'
|
33
|
+
end
|
34
34
|
|
35
35
|
# Directly pass block
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
36
|
+
EachSQL(input) do |sql|
|
37
|
+
assert false, 'Should not enumerate'
|
38
|
+
end
|
39
|
+
assert true, 'No error expected'
|
40
|
+
end
|
41
41
|
end
|
42
42
|
|
43
43
|
def test_parser_cache
|
@@ -55,16 +55,10 @@ class TestEachSql < Test::Unit::TestCase
|
|
55
55
|
|
56
56
|
end
|
57
57
|
|
58
|
-
|
59
|
-
common = YAML.
|
60
|
-
File.read(
|
61
|
-
File.join(
|
62
|
-
File.dirname(__FILE__), "yml/common.yml")))
|
58
|
+
def test_sql
|
59
|
+
common = YAML.load_file(File.expand_path("../yml/common.yml", __FILE__))
|
63
60
|
[:default, :mysql, :oracle, :postgres].each do |typ|
|
64
|
-
data = YAML.
|
65
|
-
File.read(
|
66
|
-
File.join(
|
67
|
-
File.dirname(__FILE__), "yml/#{typ}.yml")))
|
61
|
+
data = YAML.load_file(File.expand_path("../yml/#{typ}.yml", __FILE__))
|
68
62
|
|
69
63
|
script = nil
|
70
64
|
[common, data].each do |d|
|
@@ -91,5 +85,5 @@ class TestEachSql < Test::Unit::TestCase
|
|
91
85
|
assert_equal EachSQL(script, typ).to_a,
|
92
86
|
EachSQL(script, typ).each.each.take_while { true }.map { |e| e }
|
93
87
|
end
|
94
|
-
|
88
|
+
end
|
95
89
|
end
|
data/test/yml/default.yml
CHANGED
@@ -2,9 +2,12 @@
|
|
2
2
|
all: |
|
3
3
|
select * from dual;
|
4
4
|
DECLARE UDF1CUR CURSOR FOR SELECT UDF2();
|
5
|
-
select
|
5
|
+
select
|
6
6
|
begin , begin.* from begin;
|
7
7
|
select b `begin` from dual;
|
8
|
+
/*
|
9
|
+
select /*+ hint */ 1 from dual;
|
10
|
+
*/
|
8
11
|
commit;
|
9
12
|
rollback;
|
10
13
|
select b "begin" from dual
|
@@ -13,9 +16,13 @@ each:
|
|
13
16
|
- select * from dual
|
14
17
|
- DECLARE UDF1CUR CURSOR FOR SELECT UDF2()
|
15
18
|
- |
|
16
|
-
select
|
19
|
+
select
|
17
20
|
begin , begin.* from begin
|
18
21
|
- select b `begin` from dual
|
19
|
-
-
|
22
|
+
- |
|
23
|
+
/*
|
24
|
+
select /*+ hint */ 1 from dual;
|
25
|
+
*/
|
26
|
+
commit
|
20
27
|
- rollback
|
21
28
|
- select b "begin" from dual
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: each_sql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-09-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: citrus
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
requirements:
|
67
67
|
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 1.
|
69
|
+
version: '1.3'
|
70
70
|
type: :development
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -74,39 +74,36 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 1.
|
77
|
+
version: '1.3'
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
79
|
+
name: rake
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
81
|
none: false
|
82
82
|
requirements:
|
83
|
-
- -
|
83
|
+
- - ! '>='
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
85
|
+
version: '0'
|
86
86
|
type: :development
|
87
87
|
prerelease: false
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
89
|
none: false
|
90
90
|
requirements:
|
91
|
-
- -
|
91
|
+
- - ! '>='
|
92
92
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
93
|
+
version: '0'
|
94
94
|
description: Enumerate each SQL statement in SQL scripts.
|
95
|
-
email:
|
95
|
+
email:
|
96
|
+
- junegunn.c@gmail.com
|
96
97
|
executables: []
|
97
98
|
extensions: []
|
98
|
-
extra_rdoc_files:
|
99
|
-
- LICENSE.txt
|
100
|
-
- README.markdown
|
99
|
+
extra_rdoc_files: []
|
101
100
|
files:
|
102
|
-
- .
|
101
|
+
- .gitignore
|
103
102
|
- CHANGELOG.markdown
|
104
103
|
- Gemfile
|
105
|
-
- Gemfile.lock
|
106
104
|
- LICENSE.txt
|
107
105
|
- README.markdown
|
108
106
|
- Rakefile
|
109
|
-
- VERSION
|
110
107
|
- each_sql.gemspec
|
111
108
|
- lib/each_sql.rb
|
112
109
|
- lib/each_sql/each_sql.rb
|
@@ -120,7 +117,7 @@ files:
|
|
120
117
|
- test/yml/mysql.yml
|
121
118
|
- test/yml/oracle.yml
|
122
119
|
- test/yml/postgres.yml
|
123
|
-
homepage:
|
120
|
+
homepage: https://github.com/junegunn/each_sql
|
124
121
|
licenses:
|
125
122
|
- MIT
|
126
123
|
post_install_message:
|
@@ -135,17 +132,28 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
135
132
|
version: '0'
|
136
133
|
segments:
|
137
134
|
- 0
|
138
|
-
hash:
|
135
|
+
hash: 3688803514110298241
|
139
136
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
137
|
none: false
|
141
138
|
requirements:
|
142
139
|
- - ! '>='
|
143
140
|
- !ruby/object:Gem::Version
|
144
141
|
version: '0'
|
142
|
+
segments:
|
143
|
+
- 0
|
144
|
+
hash: 3688803514110298241
|
145
145
|
requirements: []
|
146
146
|
rubyforge_project:
|
147
147
|
rubygems_version: 1.8.25
|
148
148
|
signing_key:
|
149
149
|
specification_version: 3
|
150
150
|
summary: Enumerate each SQL statement in SQL scripts.
|
151
|
-
test_files:
|
151
|
+
test_files:
|
152
|
+
- test/helper.rb
|
153
|
+
- test/postgres.sql
|
154
|
+
- test/test_each_sql.rb
|
155
|
+
- test/yml/common.yml
|
156
|
+
- test/yml/default.yml
|
157
|
+
- test/yml/mysql.yml
|
158
|
+
- test/yml/oracle.yml
|
159
|
+
- test/yml/postgres.yml
|
data/.document
DELETED
data/Gemfile.lock
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
citrus (2.4.1)
|
5
|
-
erubis (2.7.0)
|
6
|
-
git (1.2.5)
|
7
|
-
jeweler (1.6.4)
|
8
|
-
bundler (~> 1.0)
|
9
|
-
git (>= 1.2.5)
|
10
|
-
rake
|
11
|
-
quote_unquote (0.1.1)
|
12
|
-
rake (0.9.2.2)
|
13
|
-
|
14
|
-
PLATFORMS
|
15
|
-
java
|
16
|
-
ruby
|
17
|
-
|
18
|
-
DEPENDENCIES
|
19
|
-
bundler (~> 1.0.0)
|
20
|
-
citrus (~> 2.4.1)
|
21
|
-
erubis (~> 2.7.0)
|
22
|
-
jeweler (~> 1.6.2)
|
23
|
-
quote_unquote (~> 0.1.1)
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.4.0
|