initial-test-data 0.4.3 → 0.4.4

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