database_rewinder 0.8.3 → 0.9.0
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.
- 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
|