composite_primary_keys 11.0.0.rc2 → 11.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. checksums.yaml +4 -4
  2. data/History.rdoc +774 -763
  3. data/Rakefile +37 -37
  4. data/lib/composite_primary_keys.rb +120 -122
  5. data/lib/composite_primary_keys/arel/sqlserver.rb +37 -37
  6. data/lib/composite_primary_keys/arel/to_sql.rb +32 -32
  7. data/lib/composite_primary_keys/associations/association.rb +23 -23
  8. data/lib/composite_primary_keys/associations/association_scope.rb +68 -68
  9. data/lib/composite_primary_keys/associations/collection_association.rb +31 -31
  10. data/lib/composite_primary_keys/associations/foreign_association.rb +15 -15
  11. data/lib/composite_primary_keys/associations/has_many_association.rb +34 -34
  12. data/lib/composite_primary_keys/associations/join_dependency.rb +102 -102
  13. data/lib/composite_primary_keys/associations/preloader/association.rb +117 -117
  14. data/lib/composite_primary_keys/attribute_methods.rb +9 -9
  15. data/lib/composite_primary_keys/attribute_methods/read.rb +27 -27
  16. data/lib/composite_primary_keys/attribute_methods/write.rb +44 -44
  17. data/lib/composite_primary_keys/autosave_association.rb +32 -32
  18. data/lib/composite_primary_keys/base.rb +130 -130
  19. data/lib/composite_primary_keys/composite_arrays.rb +51 -51
  20. data/lib/composite_primary_keys/composite_predicates.rb +69 -69
  21. data/lib/composite_primary_keys/composite_relation.rb +29 -29
  22. data/lib/composite_primary_keys/connection_adapters/abstract_adapter.rb +10 -10
  23. data/lib/composite_primary_keys/connection_adapters/abstract_mysql_adapter.rb +29 -29
  24. data/lib/composite_primary_keys/connection_adapters/postgresql/database_statements.rb +26 -26
  25. data/lib/composite_primary_keys/connection_adapters/sqlite3_adapter.rb +22 -22
  26. data/lib/composite_primary_keys/core.rb +54 -54
  27. data/lib/composite_primary_keys/counter_cache.rb +28 -28
  28. data/lib/composite_primary_keys/fixtures.rb +26 -26
  29. data/lib/composite_primary_keys/persistence.rb +120 -112
  30. data/lib/composite_primary_keys/reflection.rb +20 -20
  31. data/lib/composite_primary_keys/relation.rb +88 -88
  32. data/lib/composite_primary_keys/relation/calculations.rb +79 -79
  33. data/lib/composite_primary_keys/relation/finder_methods.rb +229 -229
  34. data/lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb +20 -20
  35. data/lib/composite_primary_keys/relation/query_methods.rb +42 -42
  36. data/lib/composite_primary_keys/relation/where_clause.rb +24 -24
  37. data/lib/composite_primary_keys/sanitization.rb +42 -42
  38. data/lib/composite_primary_keys/validations/uniqueness.rb +32 -32
  39. data/lib/composite_primary_keys/version.rb +8 -8
  40. data/scripts/console.rb +48 -48
  41. data/scripts/txt2html +76 -76
  42. data/scripts/txt2js +65 -65
  43. data/tasks/databases/mysql.rake +40 -40
  44. data/tasks/databases/oracle.rake +41 -41
  45. data/tasks/databases/postgresql.rake +38 -38
  46. data/tasks/databases/sqlite.rake +25 -25
  47. data/tasks/databases/sqlserver.rake +43 -43
  48. data/tasks/website.rake +18 -18
  49. data/test/README_tests.rdoc +56 -56
  50. data/test/abstract_unit.rb +120 -120
  51. data/test/connections/connection_spec.rb +27 -27
  52. data/test/connections/databases.ci.yml +16 -16
  53. data/test/connections/databases.example.yml +40 -40
  54. data/test/connections/databases.yml +40 -40
  55. data/test/db_test.rb +52 -52
  56. data/test/fixtures/article.rb +6 -6
  57. data/test/fixtures/articles.yml +6 -6
  58. data/test/fixtures/capitol.rb +3 -3
  59. data/test/fixtures/capitols.yml +16 -16
  60. data/test/fixtures/comment.rb +7 -7
  61. data/test/fixtures/comments.yml +15 -15
  62. data/test/fixtures/db_definitions/db2-create-tables.sql +126 -126
  63. data/test/fixtures/db_definitions/db2-drop-tables.sql +18 -18
  64. data/test/fixtures/db_definitions/mysql.sql +226 -226
  65. data/test/fixtures/db_definitions/oracle.drop.sql +49 -49
  66. data/test/fixtures/db_definitions/oracle.sql +246 -246
  67. data/test/fixtures/db_definitions/postgresql.sql +229 -229
  68. data/test/fixtures/db_definitions/sqlite.sql +214 -214
  69. data/test/fixtures/db_definitions/sqlserver.sql +211 -211
  70. data/test/fixtures/department.rb +5 -5
  71. data/test/fixtures/departments.yml +15 -15
  72. data/test/fixtures/dorm.rb +2 -2
  73. data/test/fixtures/dorms.yml +4 -4
  74. data/test/fixtures/employee.rb +10 -10
  75. data/test/fixtures/employees.yml +18 -18
  76. data/test/fixtures/group.rb +2 -2
  77. data/test/fixtures/groups.yml +6 -6
  78. data/test/fixtures/hack.rb +4 -4
  79. data/test/fixtures/hacks.yml +2 -2
  80. data/test/fixtures/membership.rb +6 -6
  81. data/test/fixtures/membership_status.rb +2 -2
  82. data/test/fixtures/membership_statuses.yml +16 -16
  83. data/test/fixtures/memberships.yml +10 -10
  84. data/test/fixtures/pk_called_id.rb +5 -5
  85. data/test/fixtures/pk_called_ids.yml +11 -11
  86. data/test/fixtures/product.rb +9 -9
  87. data/test/fixtures/product_tariff.rb +5 -5
  88. data/test/fixtures/product_tariffs.yml +14 -14
  89. data/test/fixtures/products.yml +11 -11
  90. data/test/fixtures/reading.rb +4 -4
  91. data/test/fixtures/readings.yml +10 -10
  92. data/test/fixtures/reference_code.rb +7 -7
  93. data/test/fixtures/reference_code_using_composite_key_alias.rb +8 -8
  94. data/test/fixtures/reference_code_using_simple_key_alias.rb +8 -8
  95. data/test/fixtures/reference_codes.yml +28 -28
  96. data/test/fixtures/reference_type.rb +12 -12
  97. data/test/fixtures/reference_types.yml +9 -9
  98. data/test/fixtures/restaurant.rb +9 -9
  99. data/test/fixtures/restaurants.yml +14 -14
  100. data/test/fixtures/restaurants_suburb.rb +2 -2
  101. data/test/fixtures/restaurants_suburbs.yml +10 -10
  102. data/test/fixtures/room.rb +11 -11
  103. data/test/fixtures/room_assignment.rb +13 -13
  104. data/test/fixtures/room_assignments.yml +24 -24
  105. data/test/fixtures/room_attribute.rb +2 -2
  106. data/test/fixtures/room_attribute_assignment.rb +4 -4
  107. data/test/fixtures/room_attribute_assignments.yml +4 -4
  108. data/test/fixtures/room_attributes.yml +2 -2
  109. data/test/fixtures/rooms.yml +12 -12
  110. data/test/fixtures/salary.rb +5 -5
  111. data/test/fixtures/seat.rb +5 -5
  112. data/test/fixtures/seats.yml +8 -8
  113. data/test/fixtures/street.rb +2 -2
  114. data/test/fixtures/streets.yml +16 -16
  115. data/test/fixtures/student.rb +3 -3
  116. data/test/fixtures/students.yml +15 -15
  117. data/test/fixtures/suburb.rb +5 -5
  118. data/test/fixtures/suburbs.yml +14 -14
  119. data/test/fixtures/tariff.rb +5 -5
  120. data/test/fixtures/tariffs.yml +14 -14
  121. data/test/fixtures/topic.rb +5 -5
  122. data/test/fixtures/topic_source.rb +6 -6
  123. data/test/fixtures/topic_sources.yml +3 -3
  124. data/test/fixtures/topics.yml +8 -8
  125. data/test/fixtures/user.rb +10 -10
  126. data/test/fixtures/users.yml +10 -10
  127. data/test/plugins/pagination.rb +405 -405
  128. data/test/plugins/pagination_helper.rb +135 -135
  129. data/test/setup.rb +50 -50
  130. data/test/test_aliases.rb +18 -18
  131. data/test/test_associations.rb +345 -345
  132. data/test/test_attribute_methods.rb +63 -63
  133. data/test/test_attributes.rb +60 -60
  134. data/test/test_calculations.rb +42 -42
  135. data/test/test_callbacks.rb +99 -99
  136. data/test/test_composite_arrays.rb +24 -24
  137. data/test/test_counter_cache.rb +30 -30
  138. data/test/test_create.rb +164 -164
  139. data/test/test_delete.rb +167 -167
  140. data/test/test_dumpable.rb +15 -15
  141. data/test/test_dup.rb +37 -37
  142. data/test/test_enum.rb +21 -21
  143. data/test/test_equal.rb +26 -26
  144. data/test/test_exists.rb +39 -39
  145. data/test/test_find.rb +137 -137
  146. data/test/test_habtm.rb +141 -141
  147. data/test/test_ids.rb +113 -113
  148. data/test/test_miscellaneous.rb +32 -32
  149. data/test/test_nested_attributes.rb +124 -124
  150. data/test/test_optimistic.rb +18 -18
  151. data/test/test_pagination.rb +35 -35
  152. data/test/test_polymorphic.rb +27 -27
  153. data/test/test_predicates.rb +59 -59
  154. data/test/test_preload.rb +94 -94
  155. data/test/test_santiago.rb +23 -23
  156. data/test/test_suite.rb +34 -34
  157. data/test/test_touch.rb +23 -23
  158. data/test/test_tutorial_example.rb +25 -25
  159. data/test/test_update.rb +76 -76
  160. data/test/test_validations.rb +13 -13
  161. metadata +32 -33
  162. data/lib/composite_primary_keys/locking/optimistic.rb +0 -56
@@ -1,65 +1,65 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rubygems'
4
- require 'redcloth'
5
- require 'syntax/convertors/html'
6
- require 'erb'
7
- require 'active_support'
8
-
9
- version_path = File.join(File.dirname(__FILE__), '..', 'lib', 'composite_primary_keys', 'version.rb')
10
- require File.expand_path(version_path)
11
-
12
- version = CompositePrimaryKeys::VERSION::STRING
13
- download = 'http://rubygems.org/gems/composite_primary_keys'
14
-
15
- class Fixnum
16
- def ordinal
17
- # teens
18
- return 'th' if (10..19).include?(self % 100)
19
- # others
20
- case self % 10
21
- when 1
22
- return 'st'
23
- when 2
24
- return 'nd'
25
- when 3
26
- return 'rd'
27
- else
28
- return 'th'
29
- end
30
- end
31
- end
32
-
33
- class Time
34
- def pretty
35
- return "#{mday}#{mday.ordinal} #{strftime('%B')} #{year}"
36
- end
37
- end
38
-
39
- def convert_syntax(syntax, source)
40
- return Syntax::Convertors::HTML.for_syntax(syntax).convert(source).gsub(%r!^<pre>|</pre>$!,'')
41
- end
42
-
43
- if ARGV.length >= 1
44
- src, template = ARGV
45
- template ||= File.dirname(__FILE__) + '/../website/template.js'
46
- else
47
- puts("Usage: #{File.split($0).last} source.txt [template.js] > output.html")
48
- exit!
49
- end
50
-
51
- template = ERB.new(File.open(template).read)
52
-
53
- title = nil
54
- body = nil
55
- File.open(src) do |fsrc|
56
- title_text = fsrc.readline
57
- body_text = fsrc.read
58
- title = RedCloth.new(title_text).to_html.gsub(%r!<.*?>!,'').strip
59
- body = RedCloth.new(body_text)
60
- end
61
- stat = File.stat(src)
62
- created = stat.ctime
63
- modified = stat.mtime
64
-
65
- $stdout << template.result(binding)
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'redcloth'
5
+ require 'syntax/convertors/html'
6
+ require 'erb'
7
+ require 'active_support'
8
+
9
+ version_path = File.join(File.dirname(__FILE__), '..', 'lib', 'composite_primary_keys', 'version.rb')
10
+ require File.expand_path(version_path)
11
+
12
+ version = CompositePrimaryKeys::VERSION::STRING
13
+ download = 'http://rubygems.org/gems/composite_primary_keys'
14
+
15
+ class Fixnum
16
+ def ordinal
17
+ # teens
18
+ return 'th' if (10..19).include?(self % 100)
19
+ # others
20
+ case self % 10
21
+ when 1
22
+ return 'st'
23
+ when 2
24
+ return 'nd'
25
+ when 3
26
+ return 'rd'
27
+ else
28
+ return 'th'
29
+ end
30
+ end
31
+ end
32
+
33
+ class Time
34
+ def pretty
35
+ return "#{mday}#{mday.ordinal} #{strftime('%B')} #{year}"
36
+ end
37
+ end
38
+
39
+ def convert_syntax(syntax, source)
40
+ return Syntax::Convertors::HTML.for_syntax(syntax).convert(source).gsub(%r!^<pre>|</pre>$!,'')
41
+ end
42
+
43
+ if ARGV.length >= 1
44
+ src, template = ARGV
45
+ template ||= File.dirname(__FILE__) + '/../website/template.js'
46
+ else
47
+ puts("Usage: #{File.split($0).last} source.txt [template.js] > output.html")
48
+ exit!
49
+ end
50
+
51
+ template = ERB.new(File.open(template).read)
52
+
53
+ title = nil
54
+ body = nil
55
+ File.open(src) do |fsrc|
56
+ title_text = fsrc.readline
57
+ body_text = fsrc.read
58
+ title = RedCloth.new(title_text).to_html.gsub(%r!<.*?>!,'').strip
59
+ body = RedCloth.new(body_text)
60
+ end
61
+ stat = File.stat(src)
62
+ created = stat.ctime
63
+ modified = stat.mtime
64
+
65
+ $stdout << template.result(binding)
@@ -1,40 +1,40 @@
1
- namespace :mysql do
2
- task :setup do
3
- require 'bundler'
4
- Bundler.require(:default, :mysql)
5
- end
6
-
7
- task :create_database => :setup do
8
- spec = CompositePrimaryKeys::ConnectionSpec['mysql']
9
- ActiveRecord::Base.clear_all_connections!
10
- new_spec = spec.dup
11
- new_spec.delete('database')
12
- connection = ActiveRecord::Base.establish_connection(new_spec)
13
- ActiveRecord::Base.connection.create_database(spec['database'])
14
- ActiveRecord::Base.clear_all_connections!
15
- end
16
-
17
- desc 'Build the MySQL test database'
18
- task :build_database => [:create_database] do
19
- path = File.join(PROJECT_ROOT, 'test', 'fixtures', 'db_definitions', 'mysql.sql')
20
- sql = File.open(path, 'rb') do |file|
21
- file.read
22
- end
23
-
24
- spec = CompositePrimaryKeys::ConnectionSpec['mysql']
25
- connection = ActiveRecord::Base.establish_connection(spec)
26
- sql.split(";").each do |statement|
27
- ActiveRecord::Base.connection.execute(statement) unless statement.strip.length == 0
28
- end
29
- end
30
-
31
- desc 'Drop the MySQL test database'
32
- task :drop_database => :setup do
33
- spec = CompositePrimaryKeys::ConnectionSpec['mysql']
34
- connection = ActiveRecord::Base.establish_connection(spec)
35
- ActiveRecord::Base.connection.drop_database(spec['database'])
36
- end
37
-
38
- desc 'Rebuild the MySQL test database'
39
- task :rebuild_database => [:drop_database, :build_database]
40
- end
1
+ namespace :mysql do
2
+ task :setup do
3
+ require 'bundler'
4
+ Bundler.require(:default, :mysql)
5
+ end
6
+
7
+ task :create_database => :setup do
8
+ spec = CompositePrimaryKeys::ConnectionSpec['mysql']
9
+ ActiveRecord::Base.clear_all_connections!
10
+ new_spec = spec.dup
11
+ new_spec.delete('database')
12
+ connection = ActiveRecord::Base.establish_connection(new_spec)
13
+ ActiveRecord::Base.connection.create_database(spec['database'])
14
+ ActiveRecord::Base.clear_all_connections!
15
+ end
16
+
17
+ desc 'Build the MySQL test database'
18
+ task :build_database => [:create_database] do
19
+ path = File.join(PROJECT_ROOT, 'test', 'fixtures', 'db_definitions', 'mysql.sql')
20
+ sql = File.open(path, 'rb') do |file|
21
+ file.read
22
+ end
23
+
24
+ spec = CompositePrimaryKeys::ConnectionSpec['mysql']
25
+ connection = ActiveRecord::Base.establish_connection(spec)
26
+ sql.split(";").each do |statement|
27
+ ActiveRecord::Base.connection.execute(statement) unless statement.strip.length == 0
28
+ end
29
+ end
30
+
31
+ desc 'Drop the MySQL test database'
32
+ task :drop_database => :setup do
33
+ spec = CompositePrimaryKeys::ConnectionSpec['mysql']
34
+ connection = ActiveRecord::Base.establish_connection(spec)
35
+ ActiveRecord::Base.connection.drop_database(spec['database'])
36
+ end
37
+
38
+ desc 'Rebuild the MySQL test database'
39
+ task :rebuild_database => [:drop_database, :build_database]
40
+ end
@@ -1,41 +1,41 @@
1
- namespace :oracle do
2
- task :setup do
3
- require 'bundler'
4
- Bundler.require(:default, :oracle)
5
- end
6
-
7
- desc 'Build the Oracle test database'
8
- task :build_database => :setup do
9
- spec = CompositePrimaryKeys::ConnectionSpec['oracle']
10
- ActiveRecord::Base.clear_all_connections!
11
- ActiveRecord::Base.establish_connection(spec)
12
-
13
- schema = File.join(PROJECT_ROOT, 'test', 'fixtures', 'db_definitions', 'oracle.sql')
14
- sql = File.read(schema)
15
-
16
- sql.split(';').each do |command|
17
- ActiveRecord::Base.connection.execute(command) unless command.blank?
18
- end
19
-
20
- ActiveRecord::Base.clear_all_connections!
21
- end
22
-
23
- desc 'Drop the Oracle test database'
24
- task :drop_database => :setup do
25
- spec = CompositePrimaryKeys::ConnectionSpec['oracle']
26
- ActiveRecord::Base.clear_all_connections!
27
- ActiveRecord::Base.establish_connection(spec)
28
-
29
- schema = File.join(PROJECT_ROOT, 'test', 'fixtures', 'db_definitions', 'oracle.drop.sql')
30
- sql = File.read(schema)
31
-
32
- sql.split(';').each do |command|
33
- ActiveRecord::Base.connection.execute(command)
34
- end
35
-
36
- ActiveRecord::Base.clear_all_connections!
37
- end
38
-
39
- desc 'Rebuild the Oracle test database'
40
- task :rebuild_database => [:drop_database, :build_database]
41
- end
1
+ namespace :oracle do
2
+ task :setup do
3
+ require 'bundler'
4
+ Bundler.require(:default, :oracle)
5
+ end
6
+
7
+ desc 'Build the Oracle test database'
8
+ task :build_database => :setup do
9
+ spec = CompositePrimaryKeys::ConnectionSpec['oracle']
10
+ ActiveRecord::Base.clear_all_connections!
11
+ ActiveRecord::Base.establish_connection(spec)
12
+
13
+ schema = File.join(PROJECT_ROOT, 'test', 'fixtures', 'db_definitions', 'oracle.sql')
14
+ sql = File.read(schema)
15
+
16
+ sql.split(';').each do |command|
17
+ ActiveRecord::Base.connection.execute(command) unless command.blank?
18
+ end
19
+
20
+ ActiveRecord::Base.clear_all_connections!
21
+ end
22
+
23
+ desc 'Drop the Oracle test database'
24
+ task :drop_database => :setup do
25
+ spec = CompositePrimaryKeys::ConnectionSpec['oracle']
26
+ ActiveRecord::Base.clear_all_connections!
27
+ ActiveRecord::Base.establish_connection(spec)
28
+
29
+ schema = File.join(PROJECT_ROOT, 'test', 'fixtures', 'db_definitions', 'oracle.drop.sql')
30
+ sql = File.read(schema)
31
+
32
+ sql.split(';').each do |command|
33
+ ActiveRecord::Base.connection.execute(command)
34
+ end
35
+
36
+ ActiveRecord::Base.clear_all_connections!
37
+ end
38
+
39
+ desc 'Rebuild the Oracle test database'
40
+ task :rebuild_database => [:drop_database, :build_database]
41
+ end
@@ -1,39 +1,39 @@
1
- namespace :postgresql do
2
- task :setup do
3
- require 'bundler'
4
- Bundler.require(:default, :postgresql)
5
- end
6
-
7
- task :create_database => :setup do
8
- spec = CompositePrimaryKeys::ConnectionSpec['postgresql']
9
- ActiveRecord::Base.clear_all_connections!
10
- ActiveRecord::Base.establish_connection(spec.dup.merge('database' => 'postgres'))
11
- ActiveRecord::Base.connection.create_database(spec['database'])
12
- ActiveRecord::Base.clear_all_connections!
13
- end
14
-
15
- desc 'Build the Postgresql test database'
16
- task :build_database => :create_database do
17
- spec = CompositePrimaryKeys::ConnectionSpec['postgresql']
18
- ActiveRecord::Base.clear_all_connections!
19
- connection = ActiveRecord::Base.establish_connection(spec)
20
-
21
- schema = File.join(PROJECT_ROOT, 'test', 'fixtures', 'db_definitions', 'postgresql.sql')
22
- sql = File.read(schema)
23
-
24
- ActiveRecord::Base.connection.execute(sql)
25
- ActiveRecord::Base.clear_all_connections!
26
- end
27
-
28
- desc 'Drop the Postgresql test database'
29
- task :drop_database => :setup do
30
- spec = CompositePrimaryKeys::ConnectionSpec['postgresql']
31
- ActiveRecord::Base.clear_all_connections!
32
- connection = ActiveRecord::Base.establish_connection(spec.merge('database' => 'postgres'))
33
- ActiveRecord::Base.connection.drop_database(spec['database'])
34
- ActiveRecord::Base.clear_all_connections!
35
- end
36
-
37
- desc 'Rebuild the PostgreSQL test database'
38
- task :rebuild_database => [:drop_database, :build_database]
1
+ namespace :postgresql do
2
+ task :setup do
3
+ require 'bundler'
4
+ Bundler.require(:default, :postgresql)
5
+ end
6
+
7
+ task :create_database => :setup do
8
+ spec = CompositePrimaryKeys::ConnectionSpec['postgresql']
9
+ ActiveRecord::Base.clear_all_connections!
10
+ ActiveRecord::Base.establish_connection(spec.dup.merge('database' => 'postgres'))
11
+ ActiveRecord::Base.connection.create_database(spec['database'])
12
+ ActiveRecord::Base.clear_all_connections!
13
+ end
14
+
15
+ desc 'Build the Postgresql test database'
16
+ task :build_database => :create_database do
17
+ spec = CompositePrimaryKeys::ConnectionSpec['postgresql']
18
+ ActiveRecord::Base.clear_all_connections!
19
+ connection = ActiveRecord::Base.establish_connection(spec)
20
+
21
+ schema = File.join(PROJECT_ROOT, 'test', 'fixtures', 'db_definitions', 'postgresql.sql')
22
+ sql = File.read(schema)
23
+
24
+ ActiveRecord::Base.connection.execute(sql)
25
+ ActiveRecord::Base.clear_all_connections!
26
+ end
27
+
28
+ desc 'Drop the Postgresql test database'
29
+ task :drop_database => :setup do
30
+ spec = CompositePrimaryKeys::ConnectionSpec['postgresql']
31
+ ActiveRecord::Base.clear_all_connections!
32
+ connection = ActiveRecord::Base.establish_connection(spec.merge('database' => 'postgres'))
33
+ ActiveRecord::Base.connection.drop_database(spec['database'])
34
+ ActiveRecord::Base.clear_all_connections!
35
+ end
36
+
37
+ desc 'Rebuild the PostgreSQL test database'
38
+ task :rebuild_database => [:drop_database, :build_database]
39
39
  end
@@ -1,25 +1,25 @@
1
- namespace :sqlite do
2
- task :setup do
3
- require 'bundler'
4
- Bundler.require(:default, :sqlite)
5
- end
6
-
7
- desc 'Build the sqlite test database'
8
- task :build_database => :setup do
9
- spec = CompositePrimaryKeys::ConnectionSpec['sqlite']
10
- schema = File.join(PROJECT_ROOT, 'test', 'fixtures', 'db_definitions', 'sqlite.sql')
11
- FileUtils.mkdir_p(File.dirname(spec['database']))
12
- cmd = "sqlite3 #{spec['database']} < #{schema}"
13
- puts cmd
14
- sh %{ #{cmd} }
15
- end
16
-
17
- desc 'Drop the sqlite test database'
18
- task :drop_database => :setup do
19
- spec = CompositePrimaryKeys::ConnectionSpec['sqlite']
20
- sh %{ rm -f #{spec['database']} }
21
- end
22
-
23
- desc 'Rebuild the sqlite test database'
24
- task :rebuild_database => [:drop_database, :build_database]
25
- end
1
+ namespace :sqlite do
2
+ task :setup do
3
+ require 'bundler'
4
+ Bundler.require(:default, :sqlite)
5
+ end
6
+
7
+ desc 'Build the sqlite test database'
8
+ task :build_database => :setup do
9
+ spec = CompositePrimaryKeys::ConnectionSpec['sqlite']
10
+ schema = File.join(PROJECT_ROOT, 'test', 'fixtures', 'db_definitions', 'sqlite.sql')
11
+ FileUtils.mkdir_p(File.dirname(spec['database']))
12
+ cmd = "sqlite3 #{spec['database']} < #{schema}"
13
+ puts cmd
14
+ sh %{ #{cmd} }
15
+ end
16
+
17
+ desc 'Drop the sqlite test database'
18
+ task :drop_database => :setup do
19
+ spec = CompositePrimaryKeys::ConnectionSpec['sqlite']
20
+ sh %{ rm -f #{spec['database']} }
21
+ end
22
+
23
+ desc 'Rebuild the sqlite test database'
24
+ task :rebuild_database => [:drop_database, :build_database]
25
+ end
@@ -1,43 +1,43 @@
1
- namespace :sqlserver do
2
- task :setup do
3
- require 'bundler'
4
- Bundler.require(:default, :sqlserver)
5
- end
6
-
7
- task :create_database => :setup do
8
- spec = CompositePrimaryKeys::ConnectionSpec['sqlserver']
9
- database = spec.delete('database')
10
- ActiveRecord::Base.clear_all_connections!
11
-
12
- ActiveRecord::Base.establish_connection(spec)
13
- ActiveRecord::Base.connection.execute("CREATE DATABASE [#{database}]")
14
- ActiveRecord::Base.clear_all_connections!
15
- end
16
-
17
- task :build_database => :create_database do
18
- spec = CompositePrimaryKeys::ConnectionSpec['sqlserver']
19
- ActiveRecord::Base.establish_connection(spec)
20
-
21
- schema = File.join(PROJECT_ROOT, 'test', 'fixtures', 'db_definitions', 'sqlserver.sql')
22
- sql = File.read(schema)
23
- ActiveRecord::Base.connection.execute(sql)
24
- ActiveRecord::Base.clear_all_connections!
25
- end
26
-
27
- desc 'Drop the SQL Server test database'
28
- task :drop_database => :setup do
29
- spec = CompositePrimaryKeys::ConnectionSpec['sqlserver']
30
- ActiveRecord::Base.clear_all_connections!
31
- ActiveRecord::Base.establish_connection(spec)
32
- database = spec.delete('database')
33
- ActiveRecord::Base.connection.execute(<<-SQL)
34
- USE master;
35
- ALTER DATABASE [#{database}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
36
- DROP DATABASE [#{database}];
37
- SQL
38
- ActiveRecord::Base.clear_all_connections!
39
- end
40
-
41
- desc 'Rebuild the SQL Server test database'
42
- task :rebuild_database => [:drop_database, :build_database]
43
- end
1
+ namespace :sqlserver do
2
+ task :setup do
3
+ require 'bundler'
4
+ Bundler.require(:default, :sqlserver)
5
+ end
6
+
7
+ task :create_database => :setup do
8
+ spec = CompositePrimaryKeys::ConnectionSpec['sqlserver']
9
+ database = spec.delete('database')
10
+ ActiveRecord::Base.clear_all_connections!
11
+
12
+ ActiveRecord::Base.establish_connection(spec)
13
+ ActiveRecord::Base.connection.execute("CREATE DATABASE [#{database}]")
14
+ ActiveRecord::Base.clear_all_connections!
15
+ end
16
+
17
+ task :build_database => :create_database do
18
+ spec = CompositePrimaryKeys::ConnectionSpec['sqlserver']
19
+ ActiveRecord::Base.establish_connection(spec)
20
+
21
+ schema = File.join(PROJECT_ROOT, 'test', 'fixtures', 'db_definitions', 'sqlserver.sql')
22
+ sql = File.read(schema)
23
+ ActiveRecord::Base.connection.execute(sql)
24
+ ActiveRecord::Base.clear_all_connections!
25
+ end
26
+
27
+ desc 'Drop the SQL Server test database'
28
+ task :drop_database => :setup do
29
+ spec = CompositePrimaryKeys::ConnectionSpec['sqlserver']
30
+ ActiveRecord::Base.clear_all_connections!
31
+ ActiveRecord::Base.establish_connection(spec)
32
+ database = spec.delete('database')
33
+ ActiveRecord::Base.connection.execute(<<-SQL)
34
+ USE master;
35
+ ALTER DATABASE [#{database}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
36
+ DROP DATABASE [#{database}];
37
+ SQL
38
+ ActiveRecord::Base.clear_all_connections!
39
+ end
40
+
41
+ desc 'Rebuild the SQL Server test database'
42
+ task :rebuild_database => [:drop_database, :build_database]
43
+ end