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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 68f7e55817b3442c32f74c7575d83dec47b44ee73c8e0dd10686869ffca8f720
4
- data.tar.gz: 3f5e43c24343437bd8d69f3ee00015c96f3578092785d9bf166d1f3ddf72e21f
3
+ metadata.gz: f3f3971ab455c27723cb88e96a001ad2971638b6f05d28d53893faaaeb287ddf
4
+ data.tar.gz: a57feb32a0f17562fc512703bafc7706c6863a03adafda705f7ee9831b94225a
5
5
  SHA512:
6
- metadata.gz: 1de60041450d9fb332c53a96c36fa20414e39dfb8952834188e0885f2e99d0230b34d3e10fe3c7bd5a8147784aa38136e5f4c3e7af2636e3e6f3a156918f16d4
7
- data.tar.gz: d0b8b8c867fb7149fd0a374a49bcae26330ebc5329b208987dc5f416224e996769b897dc7752205a7ea40f5e05a156fa1e98d1098516d8bfd5b3d3b71608299a
6
+ metadata.gz: a806f31a61677df1f79e664dcbdd21ca99814220c5d442d94b81dd6aa676c3cb1cab8b9639e0c1ced053131a276d207dfad3dbc374d091c0f6e31253da1e467f
7
+ data.tar.gz: debe586e77d5ec3931497406202d85f9feae447e78ee868b745a84f762b2a19f6ac02340a843ad91184da8ba02a7b943e050a1d9bd8ea28b0cb04e59800ccc22
@@ -12,25 +12,28 @@ env:
12
12
  - DB=postgresql
13
13
 
14
14
  rvm:
15
- - 2.5.0
16
- - 2.4.3
17
- - 2.3.6
18
- - 2.2.9
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.3.6
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.6
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
@@ -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.3'
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"
@@ -2,6 +2,7 @@ source 'https://rubygems.org'
2
2
 
3
3
  gem 'rails', '~> 4.2.0'
4
4
  gem 'pg', '~> 0.21'
5
+ gem 'mysql2', '~> 0.4.0'
5
6
  gem 'nokogiri', RUBY_VERSION < '2.1' ? '~> 1.6.0' : '>= 1.7'
6
7
 
7
8
  gemspec path: '../'
@@ -2,5 +2,7 @@ source 'https://rubygems.org'
2
2
 
3
3
  gem 'rails', '~> 5.1.0'
4
4
  gem 'pg', '~> 0.21'
5
+ gem 'capybara', '~> 2.13'
6
+ gem 'puma'
5
7
 
6
8
  gemspec path: '../'
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '~> 5.2.0'
4
+ gem 'pg', '~> 0.21'
5
+
6
+ gemspec path: '../'
@@ -5,6 +5,5 @@ git_source(:github) do |repo_name|
5
5
  end
6
6
 
7
7
  gem 'rails', github: 'rails/rails'
8
- gem 'arel', github: 'rails/arel'
9
8
 
10
9
  gemspec path: '../'
@@ -48,13 +48,15 @@ module DatabaseRewinder
48
48
  end
49
49
  end or return
50
50
 
51
- match = sql.match(/\A\s*INSERT(?:\s+IGNORE)?(?:\s+INTO)?\s+(?:\.*[`"]?([^.\s`"]+)[`"]?)*/i)
52
- return unless match
53
-
54
- table = match[1]
55
- if table
56
- cleaner.inserted_tables << table unless cleaner.inserted_tables.include? table
57
- cleaner.pool ||= connection.pool
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
@@ -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.8.3
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-01-30 00:00:00.000000000 Z
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.4
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