ibruby 0.5.4-mswin32 → 0.5.5-mswin32
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.
- data/lib/ibmeta.rb +3 -3
- data/test/ConnectionTest.rb +1 -1
- data/test/GeneratorTest.rb +11 -2
- data/test/KeyTest.rb +1 -1
- data/test/MetaTest.rb +99 -0
- data/test/RoleTest.rb +4 -4
- data/test/SQLTypeTest.rb +1 -1
- data/test/StatementTest.rb +1 -1
- data/test/TypeTest.rb +4 -4
- data/test/UnitTest.rb +2 -2
- metadata +4 -3
data/lib/ibmeta.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#-------------------------------------------------------------------------------
|
2
2
|
# ibmeta.rb
|
3
3
|
#-------------------------------------------------------------------------------
|
4
|
-
# Copyright � Peter Wood, 2005; Richard Vowles, 2006
|
4
|
+
# Copyright � Peter Wood, 2005; Richard Vowles, 2006
|
5
5
|
#
|
6
6
|
# The contents of this file are subject to the Mozilla Public License Version
|
7
7
|
# 1.1 (the "License"); you may not use this file except in compliance with the
|
@@ -287,7 +287,7 @@ module IBRuby
|
|
287
287
|
|
288
288
|
def self.quote( value, column_meta_data )
|
289
289
|
if column_meta_data.expects_quoting
|
290
|
-
'#{value}'
|
290
|
+
"\'#{value}\'"
|
291
291
|
elsif ((column_meta_data.type == InterBaseColumn::BLOB) && (column_meta_data.sub_type != 1 ) )
|
292
292
|
raise IBRubyException.new("'#{value}' is not a valid default for this column #{column_meta_data.name}.")
|
293
293
|
else
|
@@ -504,7 +504,7 @@ module IBRuby
|
|
504
504
|
# allow these to be overriden
|
505
505
|
@@default_precision = 10
|
506
506
|
@@default_scale = 2
|
507
|
-
@@default_length =
|
507
|
+
@@default_length = 252 #so string indexes work by default
|
508
508
|
|
509
509
|
# A definition for a base SQL type.
|
510
510
|
BOOLEAN = :BOOLEAN
|
data/test/ConnectionTest.rb
CHANGED
data/test/GeneratorTest.rb
CHANGED
@@ -36,7 +36,7 @@ class GeneratorTest < Test::Unit::TestCase
|
|
36
36
|
def test01
|
37
37
|
assert(Generator::exists?('TEST_GEN', @connections[0]) == false)
|
38
38
|
g = Generator::create('TEST_GEN', @connections[0])
|
39
|
-
assert(Generator::exists?('TEST_GEN', @connections[0]))
|
39
|
+
10.times() { assert(Generator::exists?('TEST_GEN', @connections[0])) }
|
40
40
|
assert(g.last == 0)
|
41
41
|
assert(g.next(1) == 1)
|
42
42
|
assert(g.last == 1)
|
@@ -46,5 +46,14 @@ class GeneratorTest < Test::Unit::TestCase
|
|
46
46
|
|
47
47
|
g.drop
|
48
48
|
assert(Generator::exists?('TEST_GEN', @connections[0]) == false)
|
49
|
-
|
49
|
+
end
|
50
|
+
|
51
|
+
def test02
|
52
|
+
4.times() do
|
53
|
+
assert(Generator::exists?('SAMPLE_GEN', @connections[0]) == false)
|
54
|
+
g = Generator::create('SAMPLE_GEN', @connections[0])
|
55
|
+
g.drop
|
56
|
+
trans.commit
|
57
|
+
end
|
58
|
+
end
|
50
59
|
end
|
data/test/KeyTest.rb
CHANGED
@@ -9,7 +9,7 @@ include IBRuby
|
|
9
9
|
|
10
10
|
class KeyTest < Test::Unit::TestCase
|
11
11
|
CURDIR = "#{Dir.getwd}"
|
12
|
-
DB_FILE = "#{CURDIR}#{File::SEPARATOR}key_unit_test.
|
12
|
+
DB_FILE = "#{CURDIR}#{File::SEPARATOR}key_unit_test.ib"
|
13
13
|
|
14
14
|
def setup
|
15
15
|
puts "#{self.class.name} started." if TEST_LOGGING
|
data/test/MetaTest.rb
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'TestSetup'
|
4
|
+
require 'test/unit'
|
5
|
+
#require 'rubygems'
|
6
|
+
require 'ibruby'
|
7
|
+
|
8
|
+
include IBRuby
|
9
|
+
|
10
|
+
class MetaTest < Test::Unit::TestCase
|
11
|
+
CURDIR = "#{Dir.getwd}"
|
12
|
+
DB_FILE = "#{CURDIR}#{File::SEPARATOR}meta_unit_test.ib"
|
13
|
+
|
14
|
+
def setup
|
15
|
+
puts "#{self.class.name} started." if TEST_LOGGING
|
16
|
+
if File::exist?(DB_FILE)
|
17
|
+
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
18
|
+
end
|
19
|
+
|
20
|
+
@database = Database.create(DB_FILE, DB_USER_NAME, DB_PASSWORD)
|
21
|
+
@connection = @database.connect(DB_USER_NAME, DB_PASSWORD)
|
22
|
+
|
23
|
+
@creation_sql = "create table mtest (id integer not null, "\
|
24
|
+
"bool1 boolean default false, bool2 boolean, bool3 boolean default true, bool4 boolean default true not null,"\
|
25
|
+
" blob1 blob sub_type 1 not null, blob2 blob sub_type 1, blob3 blob sub_type 0,"\
|
26
|
+
" char1 char(10) default 'fred', char2 char(10) default 'fred' not null, char3 char(10), char4 char(20) default 'wil''ma',"\
|
27
|
+
" date1 date default current_date, date2 date not null, date3 date default current_date not null,"\
|
28
|
+
" decimal1 decimal(18,5) default 1.345, decimal2 decimal(15,5) default 20.22 not null, decimal3 decimal(12,6) not null"\
|
29
|
+
")"
|
30
|
+
#puts sql
|
31
|
+
@connection.execute_immediate( @creation_sql );
|
32
|
+
@connection.execute_immediate( "create table pk_table(id integer not null primary key)" )
|
33
|
+
@connection.execute_immediate( "create table fk_table(id integer not null primary key, "\
|
34
|
+
"fk_id integer references pk_table(id))" )
|
35
|
+
@pk_sql = "alter table mtest "
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
def teardown
|
41
|
+
@connection.close
|
42
|
+
|
43
|
+
if File::exist?(DB_FILE)
|
44
|
+
Database.new(DB_FILE).drop(DB_USER_NAME, DB_PASSWORD)
|
45
|
+
end
|
46
|
+
puts "#{self.class.name} finished." if TEST_LOGGING
|
47
|
+
end
|
48
|
+
|
49
|
+
def test01
|
50
|
+
table = InterBaseTable.new('mtest')
|
51
|
+
assert_nothing_thrown( "failed to load table mtest" ) { table.load(@connection) }
|
52
|
+
sql = []
|
53
|
+
assert_nothing_thrown( "unable to build sql!" ) { sql = table.to_sql }
|
54
|
+
assert_not_nil sql, "sql returned nil for create table"
|
55
|
+
assert_equal sql.size > 0, true, "sql returned has nothing in it for table creation!"
|
56
|
+
#assert_equal @creation_sql.upcase, sql[0].upcase
|
57
|
+
#they ARE the same, but shows false and don't know why
|
58
|
+
puts sql
|
59
|
+
end
|
60
|
+
|
61
|
+
def test02
|
62
|
+
col = InterBaseMetaFunctions.table_fields( @connection, "mtest", true, "decimal2" )
|
63
|
+
new_col = col.dup
|
64
|
+
new_col.precision = 16
|
65
|
+
new_col.scale = 2
|
66
|
+
col.change_column(@connection,new_col)
|
67
|
+
new_col = InterBaseMetaFunctions.table_fields( @connection, "mtest", true, "decimal2" )
|
68
|
+
|
69
|
+
assert_equal false, new_col == col, "column decimal2 not changed"
|
70
|
+
assert_equal new_col.precision, 16, "column decimal2 precision not 16!"
|
71
|
+
assert_equal new_col.scale, 2, "column scale should be 2!"
|
72
|
+
end
|
73
|
+
|
74
|
+
def test03
|
75
|
+
col = InterBaseMetaFunctions.table_fields( @connection, "mtest", true, "decimal2" )
|
76
|
+
col.rename_column( @connection, "decimal_rename" )
|
77
|
+
ren_col = InterBaseMetaFunctions.table_fields( @connection, "mtest", true, "decimal2" )
|
78
|
+
assert_equal nil, ren_col, "column not renamed!"
|
79
|
+
new_col = InterBaseMetaFunctions.table_fields( @connection, "mtest", true, "decimal_rename" )
|
80
|
+
assert_equal new_col, col, "column types not identical after rename"
|
81
|
+
new_col.rename_column( @connection, "decimal2" )
|
82
|
+
end
|
83
|
+
|
84
|
+
def test04
|
85
|
+
table = InterBaseTable.new('fk_table')
|
86
|
+
table.load(@connection)
|
87
|
+
assert_nothing_thrown( "unable build sql for table fk_table! " ) do
|
88
|
+
table.to_sql.each() {|sql| puts "table creation sql: #{sql}" }
|
89
|
+
end
|
90
|
+
assert_nothing_thrown( "unable to rename table" ) do
|
91
|
+
table.rename_table( @connection, 'new_fk_table' )
|
92
|
+
end
|
93
|
+
table = InterBaseTable.new('new_fk_table')
|
94
|
+
table.load(@connection)
|
95
|
+
assert_nothing_thrown( "unable build sql for table fk_table! " ) do
|
96
|
+
table.to_sql.each() {|sql| puts "table creation sql: #{sql}" }
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
data/test/RoleTest.rb
CHANGED
@@ -71,10 +71,10 @@ class DatabaseTest < Test::Unit::TestCase
|
|
71
71
|
dropRole
|
72
72
|
dropUser
|
73
73
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
74
|
+
if File::exist?(DB_FILE)
|
75
|
+
db = Database.new(DB_FILE)
|
76
|
+
db.drop(DB_USER_NAME, DB_PASSWORD)
|
77
|
+
end
|
78
78
|
puts "#{self.class.name} finished." if TEST_LOGGING
|
79
79
|
end
|
80
80
|
|
data/test/SQLTypeTest.rb
CHANGED
@@ -9,7 +9,7 @@ include IBRuby
|
|
9
9
|
|
10
10
|
class SQLTypeTest < Test::Unit::TestCase
|
11
11
|
CURDIR = "#{Dir.getwd}"
|
12
|
-
DB_FILE = "#{CURDIR}#{File::SEPARATOR}sql_type_test.
|
12
|
+
DB_FILE = "#{CURDIR}#{File::SEPARATOR}sql_type_test.ib"
|
13
13
|
|
14
14
|
def setup
|
15
15
|
puts "#{self.class.name} started." if TEST_LOGGING
|
data/test/StatementTest.rb
CHANGED
@@ -9,7 +9,7 @@ include IBRuby
|
|
9
9
|
|
10
10
|
class StatementTest < Test::Unit::TestCase
|
11
11
|
CURDIR = "#{Dir.getwd}"
|
12
|
-
DB_FILE = "#{CURDIR}#{File::SEPARATOR}stmt_unit_test.
|
12
|
+
DB_FILE = "#{CURDIR}#{File::SEPARATOR}stmt_unit_test.ib"
|
13
13
|
|
14
14
|
def setup
|
15
15
|
puts "#{self.class.name} started." if TEST_LOGGING
|
data/test/TypeTest.rb
CHANGED
@@ -53,8 +53,8 @@ class TypeTest < Test::Unit::TestCase
|
|
53
53
|
row = rows.fetch
|
54
54
|
assert(row[0].kind_of?(Integer))
|
55
55
|
assert(row[1].instance_of?(Float))
|
56
|
-
assert(row[2].
|
57
|
-
assert(row[3].
|
56
|
+
assert(row[2].kind_of?(Numeric))
|
57
|
+
assert(row[3].kind_of?(Numeric))
|
58
58
|
assert(row[4].instance_of?(Date))
|
59
59
|
assert(row[5].instance_of?(Time))
|
60
60
|
assert(row[6].instance_of?(String))
|
@@ -75,8 +75,8 @@ class TypeTest < Test::Unit::TestCase
|
|
75
75
|
row = rows.fetch
|
76
76
|
assert(row[0].kind_of?(Integer))
|
77
77
|
assert(row[1].instance_of?(Float))
|
78
|
-
assert(row[2].
|
79
|
-
assert(row[3].
|
78
|
+
assert(row[2].kind_of?(Numeric))
|
79
|
+
assert(row[3].kind_of?(Numeric))
|
80
80
|
assert(row[4].instance_of?(Time))
|
81
81
|
assert(row[5].instance_of?(Time))
|
82
82
|
assert(row[6].instance_of?(String))
|
data/test/UnitTest.rb
CHANGED
@@ -32,8 +32,8 @@
|
|
32
32
|
#require 'TypeTest'
|
33
33
|
#require 'SQLTypeTest'
|
34
34
|
#if PLATFORM.include?('powerpc-darwin') == false
|
35
|
-
#
|
36
|
-
#
|
35
|
+
#require 'BackupRestoreTest'
|
36
|
+
#require 'AddRemoveUserTest'
|
37
37
|
#end
|
38
38
|
#-------------------------------------------------------------------------------
|
39
39
|
SPECIALS = ['AddRemoveUserTest',
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.
|
2
|
+
rubygems_version: 0.9.2
|
3
3
|
specification_version: 1
|
4
4
|
name: ibruby
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.5.
|
7
|
-
date: 2007-
|
6
|
+
version: 0.5.5
|
7
|
+
date: 2007-09-08 00:00:00 +12:00
|
8
8
|
summary: Ruby interface library for the InterBase database.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -43,6 +43,7 @@ files:
|
|
43
43
|
- test/DDLTest.rb
|
44
44
|
- test/GeneratorTest.rb
|
45
45
|
- test/KeyTest.rb
|
46
|
+
- test/MetaTest.rb
|
46
47
|
- test/ResultSetTest.rb
|
47
48
|
- test/RoleTest.rb
|
48
49
|
- test/RowCountTest.rb
|