database_cleaner 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,5 +1,12 @@
1
1
  == 0.6.2 (in git)
2
2
 
3
+ === New Features
4
+ * Support IBM_DB Adapter for table truncation. This is for DB2 >= 9.7 (GH-39 Samer Abukhait)
5
+
6
+ === Bugfixes
7
+ * Reversed GH-41 after larger community discussion. Mongo indexes are no longer dropped. (Ben Mabey)
8
+ * Truncation strategy works on SqlServer tables with FKs. (GH-33, Hugo Freire)
9
+
3
10
  == 0.6.1 2011-01-27
4
11
 
5
12
  === New Features
data/Rakefile CHANGED
@@ -48,3 +48,18 @@ rescue LoadError
48
48
  end
49
49
 
50
50
  task :default => [:spec, :features]
51
+
52
+
53
+ desc "Cleans the project of any tmp file that should not be included in the gemspec."
54
+ task :clean do
55
+ ["examples/config/database.yml", "examples/db/activerecord_one.db", "examples/db/activerecord_two.db", "examples/db/datamapper_default.db",
56
+ "examples/db/datamapper_one.db", "examples/db/datamapper_two.db"].each do |f|
57
+ FileUtils.rm_f(f)
58
+ end
59
+ %w[*.sqlite3 *.log].each do |pattern|
60
+ `find . -name "#{pattern}" -delete`
61
+ end
62
+ end
63
+
64
+ desc "Cleans the dir and builds the gem"
65
+ task :prep => [:clean, :gemspec, :build]
data/VERSION.yml CHANGED
@@ -1,6 +1,5 @@
1
- ---
1
+ ---
2
2
  :minor: 6
3
- :patch: 1
4
- :build:
3
+ :build:
4
+ :patch: 2
5
5
  :major: 0
6
-
data/examples/Gemfile CHANGED
@@ -32,6 +32,7 @@ group :development do
32
32
  gem "tzinfo", "0.3.22"
33
33
  gem "mongo_mapper", "0.8.2"
34
34
  gem "couch_potato", "0.3.0"
35
+ #gem "ibm_db" # I don't want to add this dependency, even as a dev one since it requires DB2 to be installed
35
36
  end
36
37
 
37
38
  group :test do
@@ -34,6 +34,12 @@ module ActiveRecord
34
34
  end
35
35
  end
36
36
 
37
+ class IBM_DBAdapter < AbstractAdapter
38
+ def truncate_table(table_name)
39
+ execute("TRUNCATE #{quote_table_name(table_name)} IMMEDIATE")
40
+ end
41
+ end
42
+
37
43
  class SQLite3Adapter < SQLITE_ADAPTER_PARENT
38
44
  def delete_table(table_name)
39
45
  execute("DELETE FROM #{quote_table_name(table_name)};")
@@ -72,7 +78,11 @@ module ActiveRecord
72
78
 
73
79
  class SQLServerAdapter < AbstractAdapter
74
80
  def truncate_table(table_name)
75
- execute("TRUNCATE TABLE #{quote_table_name(table_name)};")
81
+ begin
82
+ execute("TRUNCATE TABLE #{quote_table_name(table_name)};")
83
+ rescue ActiveRecord::StatementInvalid
84
+ execute("DELETE FROM #{quote_table_name(table_name)};")
85
+ end
76
86
  end
77
87
  end
78
88
 
@@ -1,22 +1,17 @@
1
1
  module DatabaseCleaner
2
2
  module Mongo
3
3
  module Truncation
4
-
4
+
5
5
  def clean
6
6
  if @only
7
- collections.each { |c| remove(c) if @only.include?(c.name) }
7
+ collections.each { |c| c.remove if @only.include?(c.name) }
8
8
  else
9
- collections.each { |c| remove(c) unless @tables_to_exclude.include?(c.name) }
9
+ collections.each { |c| c.remove unless @tables_to_exclude.include?(c.name) }
10
10
  end
11
11
  true
12
12
  end
13
13
 
14
14
  private
15
-
16
- def remove(collection)
17
- collection.drop_indexes
18
- collection.remove
19
- end
20
15
 
21
16
  def collections
22
17
  database.collections.select { |c| c.name !~ /^system/ }
@@ -5,8 +5,11 @@ require 'database_cleaner/active_record/truncation'
5
5
 
6
6
  module ActiveRecord
7
7
  module ConnectionAdapters
8
- [MysqlAdapter, Mysql2Adapter, SQLite3Adapter, JdbcAdapter, PostgreSQLAdapter].each do |adapter|
8
+ [MysqlAdapter, Mysql2Adapter, SQLite3Adapter, JdbcAdapter, PostgreSQLAdapter, IBM_DBAdapter].each do |adapter|
9
9
  describe adapter, "#truncate_table" do
10
+ it "responds" do
11
+ adapter.new("foo").should respond_to(:truncate_table)
12
+ end
10
13
  it "should truncate the table"
11
14
  end
12
15
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: database_cleaner
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 3
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 1
10
- version: 0.6.1
9
+ - 2
10
+ version: 0.6.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ben Mabey
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-27 00:00:00 -07:00
18
+ date: 2011-02-04 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -38,13 +38,7 @@ files:
38
38
  - cucumber.yml
39
39
  - examples/Gemfile
40
40
  - examples/Gemfile.lock
41
- - examples/config/database.yml
42
41
  - examples/config/database.yml.example
43
- - examples/db/activerecord_one.db
44
- - examples/db/activerecord_two.db
45
- - examples/db/datamapper_default.db
46
- - examples/db/datamapper_one.db
47
- - examples/db/datamapper_two.db
48
42
  - examples/db/sqlite_databases_go_here
49
43
  - examples/features/example.feature
50
44
  - examples/features/example_multiple_db.feature
@@ -1,7 +0,0 @@
1
- ---
2
- two:
3
- adapter: sqlite3
4
- database: /Users/bmabey/Programming/ruby/database_cleaner/examples/features/support/../../db/activerecord_two.db
5
- one:
6
- adapter: sqlite3
7
- database: /Users/bmabey/Programming/ruby/database_cleaner/examples/features/support/../../db/activerecord_one.db
Binary file
Binary file
Binary file
Binary file
Binary file