initial-test-data 0.4.3 → 0.4.4

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
  SHA1:
3
- metadata.gz: 63d7bb3ac1046f6b45bdd774eb0677433736fc2e
4
- data.tar.gz: b7843fbc63df469dbe826377388e21c802846244
3
+ metadata.gz: 8e419710d34d05db8e20228b1c73755fe77e027e
4
+ data.tar.gz: d5f51ac550b95a1febb1ea3d517850a416801cfd
5
5
  SHA512:
6
- metadata.gz: 4f3d285309fd7ee221d083ef000c12949e0f4a28a2b7679ebe8d36293383da326e679df5d3c0dcafa74aca9689dc2be607947077dabf47478bb030958b520688
7
- data.tar.gz: 938e1cb4559e7803ddf191782d1856e979c94a636f39d8f641397dc315711e5d17dc2899e47e01429564484282f76495ce96acd38fbc5da4371ee910399e9515
6
+ metadata.gz: 55453a847fb2169969607861fabbd89e6ec2de4faeb8a89ed28e7d72e217cd0c0c38519b3077914f6752422e80f7652bbde4c4db1f3b25c9a911d176df80934a
7
+ data.tar.gz: 253a652c13cd309a1e5daa48f5d81415c37aba4d9676fc06801f8f6034f6f4f4d5719e8f1ad8ab0904929837c1a8ca6a66e8cb7f555a76c5b404d5e8a0c27055
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG - initial-test-data
2
2
 
3
+ ## 0.4.4 (February 2, 2016)
4
+
5
+ * Truncate only non-empty tables (optimization).
6
+
3
7
  ## 0.4.3 (February 2, 2016)
4
8
 
5
9
  * Covert RECORD_IDS to a regular hash before save.
@@ -77,15 +77,15 @@ module InitialTestData
77
77
  end
78
78
 
79
79
  def initialize_data
80
- strategy_options = @options.slice(:only, :except)
81
- unless strategy_options.has_key?(:only)
82
- strategy_options[:except] ||= []
83
- unless strategy_options[:except].include?(DIGEST_TABLE_NAME)
84
- strategy_options[:except] << DIGEST_TABLE_NAME
85
- end
80
+ tables = non_empty_tables
81
+
82
+ if @options[:only].kind_of?(Array)
83
+ tables = tables & @options[:only]
84
+ elsif @options[:except].kind_of?(Array)
85
+ tables = tables - @options[:except]
86
86
  end
87
87
 
88
- DatabaseCleaner.strategy = :truncation, strategy_options
88
+ DatabaseCleaner.strategy = :truncation, { only: tables }
89
89
  DatabaseCleaner.clean
90
90
 
91
91
  yaml_path = Rails.root.join(@dir, 'initial_data', '_index.yml')
@@ -106,5 +106,19 @@ module InitialTestData
106
106
  end
107
107
  end
108
108
  end
109
+
110
+ def non_empty_tables
111
+ tables = []
112
+
113
+ conn = ActiveRecord::Base.connection
114
+ conn.tables.each do |table|
115
+ next if table.in?([ DIGEST_TABLE_NAME, 'schema_migrations' ])
116
+ if conn.select_one("select * from #{table}")
117
+ tables << table
118
+ end
119
+ end
120
+
121
+ tables
122
+ end
109
123
  end
110
124
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: initial-test-data
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tsutomu KURODA
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '6.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,6 +27,29 @@ dependencies:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '3.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '6.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: activerecord
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '3.0'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '6.0'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '3.0'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '6.0'
27
53
  - !ruby/object:Gem::Dependency
28
54
  name: database_cleaner
29
55
  requirement: !ruby/object:Gem::Requirement