database_rewinder 0.8.3 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +13 -7
- data/database_rewinder.gemspec +1 -1
- data/gemfiles/rails_42.gemfile +1 -0
- data/gemfiles/rails_51.gemfile +2 -0
- data/gemfiles/rails_52.gemfile +6 -0
- data/gemfiles/rails_edge.gemfile +0 -1
- data/lib/database_rewinder.rb +9 -7
- data/test/database_rewinder_test.rb +8 -0
- data/test/fake_app.rb +2 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3f3971ab455c27723cb88e96a001ad2971638b6f05d28d53893faaaeb287ddf
|
4
|
+
data.tar.gz: a57feb32a0f17562fc512703bafc7706c6863a03adafda705f7ee9831b94225a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a806f31a61677df1f79e664dcbdd21ca99814220c5d442d94b81dd6aa676c3cb1cab8b9639e0c1ced053131a276d207dfad3dbc374d091c0f6e31253da1e467f
|
7
|
+
data.tar.gz: debe586e77d5ec3931497406202d85f9feae447e78ee868b745a84f762b2a19f6ac02340a843ad91184da8ba02a7b943e050a1d9bd8ea28b0cb04e59800ccc22
|
data/.travis.yml
CHANGED
@@ -12,25 +12,28 @@ env:
|
|
12
12
|
- DB=postgresql
|
13
13
|
|
14
14
|
rvm:
|
15
|
-
- 2.5.
|
16
|
-
- 2.4.
|
17
|
-
- 2.3.
|
18
|
-
- 2.2.
|
15
|
+
- 2.5.1
|
16
|
+
- 2.4.4
|
17
|
+
- 2.3.7
|
18
|
+
- 2.2.10
|
19
19
|
|
20
20
|
gemfile:
|
21
|
+
- gemfiles/rails_52.gemfile
|
21
22
|
- gemfiles/rails_51.gemfile
|
22
23
|
- gemfiles/rails_50.gemfile
|
23
24
|
- gemfiles/rails_42.gemfile
|
24
|
-
- gemfiles/rails_edge.gemfile
|
25
25
|
|
26
26
|
sudo: false
|
27
27
|
|
28
28
|
matrix:
|
29
29
|
include:
|
30
|
-
- rvm: 2.
|
30
|
+
- rvm: 2.5.1
|
31
|
+
gemfile: gemfiles/rails_edge.gemfile
|
32
|
+
env: DB=sqlite3
|
33
|
+
- rvm: 2.3.7
|
31
34
|
gemfile: gemfiles/rails_41.gemfile
|
32
35
|
env: DB=sqlite3
|
33
|
-
- rvm: 2.3.
|
36
|
+
- rvm: 2.3.7
|
34
37
|
gemfile: gemfiles/rails_40.gemfile
|
35
38
|
env: DB=sqlite3
|
36
39
|
- rvm: 2.1.10
|
@@ -39,3 +42,6 @@ matrix:
|
|
39
42
|
- rvm: 2.0.0
|
40
43
|
gemfile: gemfiles/rails_42.gemfile
|
41
44
|
env: DB=sqlite3
|
45
|
+
|
46
|
+
allow_failures:
|
47
|
+
- gemfile: gemfiles/rails_edge.gemfile
|
data/database_rewinder.gemspec
CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "database_rewinder"
|
8
|
-
spec.version = '0.
|
8
|
+
spec.version = '0.9.0'
|
9
9
|
spec.authors = ["Akira Matsuda"]
|
10
10
|
spec.email = ["ronnie@dio.jp"]
|
11
11
|
spec.description = "A minimalist's tiny and ultra-fast database cleaner"
|
data/gemfiles/rails_42.gemfile
CHANGED
data/gemfiles/rails_51.gemfile
CHANGED
data/gemfiles/rails_edge.gemfile
CHANGED
data/lib/database_rewinder.rb
CHANGED
@@ -48,13 +48,15 @@ module DatabaseRewinder
|
|
48
48
|
end
|
49
49
|
end or return
|
50
50
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
51
|
+
sql.split(';').each do |statement|
|
52
|
+
match = statement.match(/\A\s*INSERT(?:\s+IGNORE)?(?:\s+INTO)?\s+(?:\.*[`"]?([^.\s`"]+)[`"]?)*/i)
|
53
|
+
next unless match
|
54
|
+
|
55
|
+
table = match[1]
|
56
|
+
if table
|
57
|
+
cleaner.inserted_tables << table unless cleaner.inserted_tables.include? table
|
58
|
+
cleaner.pool ||= connection.pool
|
59
|
+
end
|
58
60
|
end
|
59
61
|
end
|
60
62
|
|
@@ -94,6 +94,14 @@ class DatabaseRewinder::DatabaseRewinderTest < ActiveSupport::TestCase
|
|
94
94
|
SQL
|
95
95
|
assert_equal ['foos'], @cleaner.inserted_tables
|
96
96
|
end
|
97
|
+
|
98
|
+
test 'with multi statement query' do
|
99
|
+
perform_insert <<-SQL
|
100
|
+
INSERT INTO "foos" ("name") VALUES (?);
|
101
|
+
INSERT INTO "bars" ("name") VALUES (?)
|
102
|
+
SQL
|
103
|
+
assert_equal ['foos', 'bars'], @cleaner.inserted_tables
|
104
|
+
end
|
97
105
|
end
|
98
106
|
|
99
107
|
sub_test_case 'Database accepts more than one dots in an object notation (e.g. SQLServer)' do
|
data/test/fake_app.rb
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
ENV['DB'] ||= 'sqlite3'
|
4
4
|
require 'active_record/railtie'
|
5
|
-
load 'active_record/railties/databases.rake'
|
6
5
|
|
7
6
|
module DatabaseRewinderTestApp
|
8
7
|
Application = Class.new(Rails::Application) do
|
@@ -14,6 +13,8 @@ module DatabaseRewinderTestApp
|
|
14
13
|
end.initialize!
|
15
14
|
end
|
16
15
|
|
16
|
+
load 'active_record/railties/databases.rake'
|
17
|
+
|
17
18
|
require 'active_record/base'
|
18
19
|
ActiveRecord::Tasks::DatabaseTasks.root ||= Rails.root
|
19
20
|
ActiveRecord::Tasks::DatabaseTasks.drop_current ENV['DB']
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: database_rewinder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Akira Matsuda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -127,6 +127,7 @@ files:
|
|
127
127
|
- gemfiles/rails_42.gemfile
|
128
128
|
- gemfiles/rails_50.gemfile
|
129
129
|
- gemfiles/rails_51.gemfile
|
130
|
+
- gemfiles/rails_52.gemfile
|
130
131
|
- gemfiles/rails_edge.gemfile
|
131
132
|
- lib/database_rewinder.rb
|
132
133
|
- lib/database_rewinder/active_record_monkey.rb
|
@@ -162,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
162
163
|
version: '0'
|
163
164
|
requirements: []
|
164
165
|
rubyforge_project:
|
165
|
-
rubygems_version: 2.7.
|
166
|
+
rubygems_version: 2.7.7
|
166
167
|
signing_key:
|
167
168
|
specification_version: 4
|
168
169
|
summary: A minimalist's tiny and ultra-fast database cleaner
|