composite_primary_keys 13.0.1 → 14.0.1
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 +4 -4
- data/History.rdoc +8 -2
- data/README.rdoc +1 -0
- data/Rakefile +37 -37
- data/lib/composite_primary_keys/arel/sqlserver.rb +37 -37
- data/lib/composite_primary_keys/arel/to_sql.rb +18 -18
- data/lib/composite_primary_keys/associations/association.rb +23 -23
- data/lib/composite_primary_keys/associations/collection_association.rb +31 -31
- data/lib/composite_primary_keys/associations/foreign_association.rb +15 -15
- data/lib/composite_primary_keys/associations/has_many_association.rb +35 -35
- data/lib/composite_primary_keys/associations/preloader/association.rb +68 -53
- data/lib/composite_primary_keys/associations/through_association.rb +25 -25
- data/lib/composite_primary_keys/autosave_association.rb +60 -60
- data/lib/composite_primary_keys/composite_arrays.rb +86 -86
- data/lib/composite_primary_keys/composite_predicates.rb +71 -70
- data/lib/composite_primary_keys/composite_relation.rb +29 -29
- data/lib/composite_primary_keys/connection_adapters/abstract_adapter.rb +10 -10
- data/lib/composite_primary_keys/connection_adapters/postgresql/database_statements.rb +26 -26
- data/lib/composite_primary_keys/counter_cache.rb +15 -15
- data/lib/composite_primary_keys/fixtures.rb +21 -21
- data/lib/composite_primary_keys/persistence.rb +21 -7
- data/lib/composite_primary_keys/relation/calculations.rb +7 -1
- data/lib/composite_primary_keys/sanitization.rb +42 -42
- data/lib/composite_primary_keys/transactions.rb +34 -34
- data/lib/composite_primary_keys/validations/uniqueness.rb +31 -31
- data/lib/composite_primary_keys/version.rb +1 -1
- data/lib/composite_primary_keys.rb +1 -1
- data/scripts/console.rb +48 -48
- data/scripts/txt2html +76 -76
- data/scripts/txt2js +65 -65
- data/tasks/databases/mysql.rake +40 -40
- data/tasks/databases/oracle.rake +41 -41
- data/tasks/databases/postgresql.rake +38 -38
- data/tasks/databases/sqlite.rake +25 -25
- data/tasks/databases/sqlserver.rake +43 -43
- data/tasks/website.rake +18 -18
- data/test/README_tests.rdoc +56 -56
- data/test/abstract_unit.rb +5 -1
- data/test/connections/connection_spec.rb +27 -27
- data/test/connections/databases.example.yml +40 -40
- data/test/connections/databases.yml +40 -39
- data/test/fixtures/article.rb +10 -10
- data/test/fixtures/articles.yml +7 -7
- data/test/fixtures/capitol.rb +3 -3
- data/test/fixtures/capitols.yml +16 -16
- data/test/fixtures/comment.rb +5 -5
- data/test/fixtures/comments.yml +17 -17
- data/test/fixtures/dorm.rb +2 -2
- data/test/fixtures/dorms.yml +4 -4
- data/test/fixtures/employee.rb +5 -5
- data/test/fixtures/group.rb +2 -2
- data/test/fixtures/groups.yml +6 -6
- data/test/fixtures/membership_status.rb +2 -2
- data/test/fixtures/membership_statuses.yml +16 -16
- data/test/fixtures/memberships.yml +10 -10
- data/test/fixtures/product.rb +9 -9
- data/test/fixtures/product_tariff.rb +5 -5
- data/test/fixtures/product_tariffs.yml +14 -14
- data/test/fixtures/products.yml +11 -11
- data/test/fixtures/reading.rb +4 -4
- data/test/fixtures/readings.yml +10 -10
- data/test/fixtures/reference_code.rb +7 -7
- data/test/fixtures/reference_codes.yml +28 -28
- data/test/fixtures/reference_type.rb +12 -12
- data/test/fixtures/reference_types.yml +9 -9
- data/test/fixtures/restaurant.rb +9 -9
- data/test/fixtures/restaurants.yml +14 -14
- data/test/fixtures/restaurants_suburb.rb +2 -2
- data/test/fixtures/room.rb +11 -11
- data/test/fixtures/room_assignment.rb +13 -13
- data/test/fixtures/room_assignments.yml +24 -24
- data/test/fixtures/room_attribute.rb +2 -2
- data/test/fixtures/room_attribute_assignment.rb +4 -4
- data/test/fixtures/room_attribute_assignments.yml +4 -4
- data/test/fixtures/room_attributes.yml +2 -2
- data/test/fixtures/rooms.yml +12 -12
- data/test/fixtures/street.rb +2 -2
- data/test/fixtures/student.rb +3 -3
- data/test/fixtures/students.yml +15 -15
- data/test/fixtures/suburb.rb +5 -5
- data/test/fixtures/tariff.rb +5 -5
- data/test/fixtures/tariffs.yml +14 -14
- data/test/fixtures/topic_sources.yml +3 -3
- data/test/fixtures/topics.yml +8 -8
- data/test/fixtures/users.yml +10 -10
- data/test/plugins/pagination.rb +405 -405
- data/test/plugins/pagination_helper.rb +135 -135
- data/test/test_attribute_methods.rb +63 -63
- data/test/test_callbacks.rb +99 -99
- data/test/test_composite_arrays.rb +38 -38
- data/test/test_counter_cache.rb +30 -30
- data/test/test_dumpable.rb +15 -15
- data/test/test_dup.rb +37 -37
- data/test/test_equal.rb +26 -26
- data/test/test_habtm.rb +141 -141
- data/test/test_miscellaneous.rb +32 -32
- data/test/test_optimistic.rb +18 -18
- data/test/test_pagination.rb +35 -35
- data/test/test_polymorphic.rb +43 -43
- data/test/test_predicates.rb +59 -59
- data/test/test_preload.rb +102 -102
- data/test/test_santiago.rb +23 -23
- data/test/test_touch.rb +23 -23
- data/test/test_tutorial_example.rb +25 -25
- data/test/test_validations.rb +13 -13
- metadata +6 -6
data/scripts/txt2js
CHANGED
@@ -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)
|
data/tasks/databases/mysql.rake
CHANGED
@@ -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'], charset: spec['charset'] || 'utf8mb4')
|
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'], charset: spec['charset'] || 'utf8mb4')
|
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
|
data/tasks/databases/oracle.rake
CHANGED
@@ -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
|
data/tasks/databases/sqlite.rake
CHANGED
@@ -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
|
data/tasks/website.rake
CHANGED
@@ -1,18 +1,18 @@
|
|
1
|
-
desc 'Generate website files'
|
2
|
-
task :website_generate do
|
3
|
-
sh %{ ruby scripts/txt2html website/index.txt > website/index.html }
|
4
|
-
sh %{ ruby scripts/txt2js website/version.txt > website/version.js }
|
5
|
-
sh %{ ruby scripts/txt2js website/version-raw.txt > website/version-raw.js }
|
6
|
-
end
|
7
|
-
|
8
|
-
desc 'Upload website files to rubyforge'
|
9
|
-
task :website_upload do
|
10
|
-
config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml")))
|
11
|
-
host = "#{config["username"]}@rubyforge.org"
|
12
|
-
remote_dir = "/var/www/gforge-projects/compositekeys/"
|
13
|
-
local_dir = 'website'
|
14
|
-
sh %{scp -r #{local_dir}/* #{host}:#{remote_dir}}
|
15
|
-
end
|
16
|
-
|
17
|
-
desc 'Generate and upload website files'
|
18
|
-
task :website => [:website_generate, :website_upload]
|
1
|
+
desc 'Generate website files'
|
2
|
+
task :website_generate do
|
3
|
+
sh %{ ruby scripts/txt2html website/index.txt > website/index.html }
|
4
|
+
sh %{ ruby scripts/txt2js website/version.txt > website/version.js }
|
5
|
+
sh %{ ruby scripts/txt2js website/version-raw.txt > website/version-raw.js }
|
6
|
+
end
|
7
|
+
|
8
|
+
desc 'Upload website files to rubyforge'
|
9
|
+
task :website_upload do
|
10
|
+
config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml")))
|
11
|
+
host = "#{config["username"]}@rubyforge.org"
|
12
|
+
remote_dir = "/var/www/gforge-projects/compositekeys/"
|
13
|
+
local_dir = 'website'
|
14
|
+
sh %{scp -r #{local_dir}/* #{host}:#{remote_dir}}
|
15
|
+
end
|
16
|
+
|
17
|
+
desc 'Generate and upload website files'
|
18
|
+
task :website => [:website_generate, :website_upload]
|
data/test/README_tests.rdoc
CHANGED
@@ -1,56 +1,56 @@
|
|
1
|
-
= Composite Primary Keys - Testing Readme
|
2
|
-
|
3
|
-
== Testing an adapter
|
4
|
-
|
5
|
-
There are tests available for the following adapters:
|
6
|
-
|
7
|
-
* ibmdb
|
8
|
-
* mysql
|
9
|
-
* oracle
|
10
|
-
* oracle_enhanced
|
11
|
-
* postgresql
|
12
|
-
* sqlite3
|
13
|
-
|
14
|
-
To run the tests for one of the adapters follow these steps (using mysql in the example):
|
15
|
-
|
16
|
-
* You will need the following gems:
|
17
|
-
- rake
|
18
|
-
- activerecord (3.1.0.rc5 or later)
|
19
|
-
- mysql (or the adapter of your choice)
|
20
|
-
|
21
|
-
* Put your database connection settings in test/connections/databases.yml.
|
22
|
-
Look at databases.example.yml for examples.
|
23
|
-
|
24
|
-
mysql:
|
25
|
-
adapter: mysql
|
26
|
-
username: root
|
27
|
-
database: composite_primary_keys_unittest
|
28
|
-
|
29
|
-
* rake -T mysql
|
30
|
-
|
31
|
-
rake mysql:build_database # Build the MySQL test databases
|
32
|
-
rake mysql:drop_database # Drop the MySQL test databases
|
33
|
-
rake mysql:rebuild_database # Rebuild the MySQL test databases
|
34
|
-
rake mysql:test # Run tests using the mysql adapter
|
35
|
-
|
36
|
-
* rake mysql:build_database
|
37
|
-
* rake mysql:test
|
38
|
-
|
39
|
-
== Running tests individually
|
40
|
-
|
41
|
-
You can specify which test you'd like to run on the command line:
|
42
|
-
|
43
|
-
* rake mysql:test TEST=test/test_equal.rb
|
44
|
-
|
45
|
-
If you want to run closer to the metal you can cd into the test/
|
46
|
-
directory and run the tests like so:
|
47
|
-
|
48
|
-
* ADAPTER=mysql ruby test_equal.rb
|
49
|
-
|
50
|
-
== Logging
|
51
|
-
|
52
|
-
By default, ActiveRecord's log messages are sent to standard out when
|
53
|
-
running the tests. If you would prefer to send them to a file, specify
|
54
|
-
it as the environment variable CPK_LOGFILE:
|
55
|
-
|
56
|
-
* CPK_LOGFILE=cpk_test.log rake mysql:test
|
1
|
+
= Composite Primary Keys - Testing Readme
|
2
|
+
|
3
|
+
== Testing an adapter
|
4
|
+
|
5
|
+
There are tests available for the following adapters:
|
6
|
+
|
7
|
+
* ibmdb
|
8
|
+
* mysql
|
9
|
+
* oracle
|
10
|
+
* oracle_enhanced
|
11
|
+
* postgresql
|
12
|
+
* sqlite3
|
13
|
+
|
14
|
+
To run the tests for one of the adapters follow these steps (using mysql in the example):
|
15
|
+
|
16
|
+
* You will need the following gems:
|
17
|
+
- rake
|
18
|
+
- activerecord (3.1.0.rc5 or later)
|
19
|
+
- mysql (or the adapter of your choice)
|
20
|
+
|
21
|
+
* Put your database connection settings in test/connections/databases.yml.
|
22
|
+
Look at databases.example.yml for examples.
|
23
|
+
|
24
|
+
mysql:
|
25
|
+
adapter: mysql
|
26
|
+
username: root
|
27
|
+
database: composite_primary_keys_unittest
|
28
|
+
|
29
|
+
* rake -T mysql
|
30
|
+
|
31
|
+
rake mysql:build_database # Build the MySQL test databases
|
32
|
+
rake mysql:drop_database # Drop the MySQL test databases
|
33
|
+
rake mysql:rebuild_database # Rebuild the MySQL test databases
|
34
|
+
rake mysql:test # Run tests using the mysql adapter
|
35
|
+
|
36
|
+
* rake mysql:build_database
|
37
|
+
* rake mysql:test
|
38
|
+
|
39
|
+
== Running tests individually
|
40
|
+
|
41
|
+
You can specify which test you'd like to run on the command line:
|
42
|
+
|
43
|
+
* rake mysql:test TEST=test/test_equal.rb
|
44
|
+
|
45
|
+
If you want to run closer to the metal you can cd into the test/
|
46
|
+
directory and run the tests like so:
|
47
|
+
|
48
|
+
* ADAPTER=mysql ruby test_equal.rb
|
49
|
+
|
50
|
+
== Logging
|
51
|
+
|
52
|
+
By default, ActiveRecord's log messages are sent to standard out when
|
53
|
+
running the tests. If you would prefer to send them to a file, specify
|
54
|
+
it as the environment variable CPK_LOGFILE:
|
55
|
+
|
56
|
+
* CPK_LOGFILE=cpk_test.log rake mysql:test
|