public
Rubygem
Fork of sam/dm-more
Description: Extras for DataMapper, including bridges to DataObjects::Migrations and Merb::DataMapper
Homepage: http://datamapper.org
Clone URL: git://github.com/dysinger/dm-more.git
Search Repo:
Moved the table_exists? and recreate_database methods from the 
dm-migrations gem to the adapters in dm-core.
Mark Bates (author)
Fri May 02 19:26:37 -0700 2008
commit  92269d3b1eeda6e01c82b62fe0b85e74ffcd9310
tree    657d51b925f120abcf650e0eef7eb53d4ac307e3
parent  9b0c1a427e1acf9c92b759c1826c2e0ced7335aa
...
14
15
16
 
...
14
15
16
17
0
@@ -14,4 +14,5 @@
0
 *.db
0
 nbproject
0
 .DS_Store
0
+rspec_report.html
...
126
127
128
 
 
 
 
 
 
129
130
131
132
133
...
149
150
151
152
153
154
155
156
157
158
159
160
161
162
 
 
 
 
 
 
 
 
 
 
 
 
 
163
164
165
166
167
168
169
170
 
 
 
 
 
 
171
172
173
...
126
127
128
129
130
131
132
133
134
135
136
137
138
139
...
155
156
157
 
 
 
 
 
 
 
 
 
 
 
158
159
160
161
162
163
164
165
166
167
168
169
170
171
 
172
 
 
 
 
 
173
174
175
176
177
178
179
180
181
0
@@ -126,6 +126,12 @@
0
   end
0
 
0
   task :run_all => [:spec, :install, :doc, :publish]
0
+
0
+ task :spec_all => :define_tasks do
0
+ gems.each do |gem_name|
0
+ Rake::Task["#{gem_name}:spec"].invoke
0
+ end
0
+ end
0
 
0
   task :spec => :define_tasks do
0
     Rake::Task["#{ENV['gem_name']}:spec"].invoke
0
0
0
@@ -149,25 +155,27 @@
0
   end
0
 
0
   task :define_tasks do
0
- gem_name = ENV['gem_name']
0
-
0
- Spec::Rake::SpecTask.new("#{gem_name}:spec") do |t|
0
- t.spec_opts = ["--format", "specdoc", "--format", "html:rspec_report.html", "--diff"]
0
- t.spec_files = Pathname.glob(ENV['FILES'] || DIR + "/#{gem_name}/spec/**/*_spec.rb")
0
- unless ENV['NO_RCOV']
0
- t.rcov = true
0
- t.rcov_opts << '--exclude' << "spec,gems,#{(gems - [gem_name]).join(',')}"
0
- t.rcov_opts << '--text-summary'
0
- t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
0
- t.rcov_opts << '--only-uncovered'
0
+ gem_names = [(ENV['gem_name'] || gems)].flatten
0
+ gem_names.each do |gem_name|
0
+ Spec::Rake::SpecTask.new("#{gem_name}:spec") do |t|
0
+ puts "#{gem_name}:spec"
0
+ t.spec_opts = ["--format", "specdoc", "--format", "html:rspec_report.html", "--diff"]
0
+ t.spec_files = Pathname.glob(ENV['FILES'] || DIR + "/#{gem_name}/spec/**/*_spec.rb")
0
+ unless ENV['NO_RCOV']
0
+ t.rcov = true
0
+ t.rcov_opts << '--exclude' << "spec,gems,#{(gems - [gem_name]).join(',')}"
0
+ t.rcov_opts << '--text-summary'
0
+ t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
0
+ t.rcov_opts << '--only-uncovered'
0
+ end
0
       end
0
- end
0
 
0
- Rake::RDocTask.new("#{gem_name}:doc") do |t|
0
- t.rdoc_dir = 'rdoc'
0
- t.title = gem_name
0
- t.options = ['--line-numbers', '--inline-source', '--all']
0
- t.rdoc_files.include("#{gem_name}/lib/**/*.rb", "#{gem_name}/ext/**/*.c")
0
+ Rake::RDocTask.new("#{gem_name}:doc") do |t|
0
+ t.rdoc_dir = 'rdoc'
0
+ t.title = gem_name
0
+ t.options = ['--line-numbers', '--inline-source', '--all']
0
+ t.rdoc_files.include("#{gem_name}/lib/**/*.rb", "#{gem_name}/ext/**/*.c")
0
+ end
0
     end
0
   end
0
 end
...
1
 
2
3
4
...
156
157
158
159
 
160
161
162
...
1
2
3
4
5
...
157
158
159
 
160
161
162
163
0
@@ -1,4 +1,5 @@
0
 require 'rubygems'
0
+gem 'dm-core', '=0.9.0'
0
 require 'data_mapper'
0
 require 'benchmark'
0
 require File.dirname(__FILE__) + '/sql'
0
@@ -156,7 +157,7 @@
0
     end
0
 
0
     def migration_info_table_exists?
0
- adapter.table_exists?('migration_info')
0
+ adapter.exists?('migration_info')
0
     end
0
 
0
     # Fetch the record for this migration out of the migration_info table
...
28
29
30
31
 
32
33
34
...
28
29
30
 
31
32
33
34
0
@@ -28,7 +28,7 @@
0
         end
0
 
0
         def matches?(repository)
0
- repository.adapter.table_exists?(table_name)
0
+ repository.adapter.exists?(table_name)
0
         end
0
 
0
         def failure_message
...
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
...
2
3
4
 
 
 
5
6
7
8
9
 
 
 
 
 
 
10
11
 
 
 
 
 
 
 
 
12
13
14
0
@@ -2,30 +2,13 @@
0
 
0
 module SQL
0
   module Mysql
0
- def table_exists?(table_name)
0
- query_table(table_name).size > 0
0
- end
0
 
0
     def supports_schema_transactions?
0
       false
0
     end
0
 
0
- def recreate_database
0
- execute "DROP DATABASE #{db_name}"
0
- execute "CREATE DATABASE #{db_name}"
0
- execute "USE #{db_name}"
0
- end
0
-
0
     def table(table_name)
0
       SQL::Mysql::Table.new(self, table_name)
0
- end
0
-
0
- def db_name
0
- @uri.path.split('/').last
0
- end
0
-
0
- def query_table(table_name)
0
- query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='#{db_name}' AND TABLE_NAME='#{table_name}'")
0
     end
0
 
0
     class Table
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
...
1
2
 
 
 
3
4
5
6
7
 
 
 
 
 
 
 
 
 
8
9
 
 
 
 
10
11
12
0
@@ -1,28 +1,12 @@
0
 module SQL
0
   module Postgresql
0
- def table_exists?(table_name)
0
- query_table(table_name).size > 0
0
- end
0
 
0
     def supports_schema_transactions?
0
       true
0
     end
0
 
0
- def drop_database
0
- end
0
-
0
- def recreate_database
0
- execute "DROP SCHEMA IF EXISTS test CASCADE"
0
- execute "CREATE SCHEMA test"
0
- execute "SET search_path TO test"
0
- end
0
-
0
     def table(table_name)
0
       SQL::Postgresql::Table.new(self, table_name)
0
- end
0
-
0
- def query_table(table_name)
0
- query("SELECT * FROM information_schema.columns WHERE table_name='#{table_name}' AND table_schema=current_schema()")
0
     end
0
 
0
     class Table < SQL::Table
...
2
3
4
5
6
7
8
 
9
10
11
12
13
14
15
16
17
18
 
19
20
21
22
23
24
25
26
27
...
2
3
4
 
 
 
 
5
6
7
8
 
 
 
 
 
 
 
9
10
11
 
 
 
 
12
13
14
0
@@ -2,26 +2,13 @@
0
 
0
 module SQL
0
   module Sqlite3
0
- def table_exists?(table_name)
0
- query_table(table_name).size > 0
0
- end
0
-
0
+
0
     def supports_schema_transactions?
0
       true
0
     end
0
-
0
- def recreate_database
0
- DataMapper.logger.info "Dropping #{@uri.path}"
0
- system "rm #{@uri.path}"
0
- # do nothing, sqlite will automatically create the database file
0
- end
0
-
0
+
0
     def table(table_name)
0
       SQL::Table.new(self, table_name)
0
- end
0
-
0
- def query_table(table_name)
0
- query("PRAGMA table_info('#{table_name}')")
0
     end
0
 
0
     class Table < SQL::Table
...
1
2
 
3
4
5
...
1
2
3
4
5
6
0
@@ -1,5 +1,6 @@
0
 require 'rubygems'
0
 require 'pathname'
0
+gem 'dm-core', '=0.9.0'
0
 require 'data_mapper'
0
 
0
 require Pathname(__FILE__).dirname.parent.expand_path + 'lib/dm-serializer'
...
1
 
2
3
4
...
1
2
3
4
5
0
@@ -1,4 +1,5 @@
0
 require 'rubygems'
0
+gem 'dm-core', '=0.9.0'
0
 require 'data_mapper'
0
 
0
 module DataMapper
...
1
 
2
3
4
...
1
2
3
4
5
0
@@ -1,4 +1,5 @@
0
 require 'rubygems'
0
+gem 'dm-core', '=0.9.0'
0
 require 'data_mapper'
0
 
0
 require File.join(File.dirname(__FILE__),'dm-types','csv')
...
1
2
 
3
4
5
...
1
2
3
4
5
6
0
@@ -1,5 +1,6 @@
0
 require 'rubygems'
0
 require 'pathname'
0
+gem 'dm-core', '=0.9.0'
0
 require 'data_mapper'
0
 
0
 require Pathname(__FILE__).dirname.parent.expand_path + 'lib/dm-types'
...
1
 
2
3
4
...
1
2
3
4
5
0
@@ -1,4 +1,5 @@
0
 require 'rubygems'
0
+gem 'dm-core', '=0.9.0'
0
 require 'data_mapper'
0
 
0
 require File.join(File.dirname(__FILE__),'dm-validations','validation_errors')
...
108
109
110
111
 
112
113
114
...
108
109
110
 
111
112
113
114
0
@@ -108,7 +108,7 @@
0
   end
0
 
0
 
0
- # unless DataMapper.database.table_exists?(table_name)
0
+ # unless DataMapper.database.exists?(table_name)
0
   # puts "Warning: The database did not contain a '#{table_name}' table for sessions."
0
   # DataMapperSession.auto_migrate!
0
   # puts "Created sessions table."

Comments

    No one has commented yet.