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 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