ydbi 0.5.3 → 0.5.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/ChangeLog +339 -314
- data/lib/dbi.rb +13 -17
- data/lib/dbi/utils/date.rb +7 -3
- data/lib/dbi/version.rb +1 -1
- data/readme.md +16 -0
- data/test/dbi/tc_columninfo.rb +4 -9
- data/test/dbi/tc_date.rb +2 -9
- data/test/dbi/tc_dbi.rb +3 -9
- data/test/dbi/tc_row.rb +17 -23
- data/test/dbi/tc_sqlbind.rb +6 -7
- data/test/dbi/tc_statementhandle.rb +3 -4
- data/test/dbi/tc_time.rb +2 -8
- data/test/dbi/tc_timestamp.rb +2 -16
- data/test/dbi/tc_types.rb +5 -11
- metadata +5 -5
data/lib/dbi.rb
CHANGED
@@ -9,16 +9,16 @@ module DBI; end
|
|
9
9
|
#
|
10
10
|
# Copyright (c) 2001, 2002, 2003 Michael Neumann <mneumann@ntecs.de>
|
11
11
|
# Copyright (c) 2008 Erik Hollensbe <erik@hollensbe.org>
|
12
|
-
#
|
12
|
+
#
|
13
13
|
# All rights reserved.
|
14
14
|
#
|
15
|
-
# Redistribution and use in source and binary forms, with or without
|
16
|
-
# modification, are permitted provided that the following conditions
|
15
|
+
# Redistribution and use in source and binary forms, with or without
|
16
|
+
# modification, are permitted provided that the following conditions
|
17
17
|
# are met:
|
18
|
-
# 1. Redistributions of source code must retain the above copyright
|
18
|
+
# 1. Redistributions of source code must retain the above copyright
|
19
19
|
# notice, this list of conditions and the following disclaimer.
|
20
|
-
# 2. Redistributions in binary form must reproduce the above copyright
|
21
|
-
# notice, this list of conditions and the following disclaimer in the
|
20
|
+
# 2. Redistributions in binary form must reproduce the above copyright
|
21
|
+
# notice, this list of conditions and the following disclaimer in the
|
22
22
|
# documentation and/or other materials provided with the distribution.
|
23
23
|
# 3. The name of the author may not be used to endorse or promote products
|
24
24
|
# derived from this software without specific prior written permission.
|
@@ -128,7 +128,7 @@ module DBI
|
|
128
128
|
|
129
129
|
class << self
|
130
130
|
|
131
|
-
# Establish a database connection.
|
131
|
+
# Establish a database connection.
|
132
132
|
#
|
133
133
|
# Format goes as such: "dbi:Driver:database_conn_args"
|
134
134
|
#
|
@@ -179,7 +179,7 @@ module DBI
|
|
179
179
|
# Return a list (of String) of the available drivers.
|
180
180
|
#
|
181
181
|
# NOTE:: This is non-functional for gem installations, due to the
|
182
|
-
# nature of how it currently works. A better solution for
|
182
|
+
# nature of how it currently works. A better solution for
|
183
183
|
# this will be provided in DBI 0.6.0.
|
184
184
|
def collect_drivers
|
185
185
|
drivers = { }
|
@@ -204,7 +204,7 @@ module DBI
|
|
204
204
|
drivers = []
|
205
205
|
collect_drivers.each do |key, value|
|
206
206
|
drivers.push("dbi:#{key}:")
|
207
|
-
end
|
207
|
+
end
|
208
208
|
return drivers
|
209
209
|
end
|
210
210
|
|
@@ -252,7 +252,7 @@ module DBI
|
|
252
252
|
rescue LoadError => e1
|
253
253
|
# see if you can find it in the path
|
254
254
|
unless @@caseless_driver_name_map
|
255
|
-
@@caseless_driver_name_map = { }
|
255
|
+
@@caseless_driver_name_map = { }
|
256
256
|
collect_drivers.each do |key, value|
|
257
257
|
@@caseless_driver_name_map[key.downcase] = value
|
258
258
|
end
|
@@ -306,17 +306,13 @@ module DBI
|
|
306
306
|
# FIXME trace
|
307
307
|
# drh.trace(@@trace_mode, @@trace_output)
|
308
308
|
@@driver_map[driver_name] = [drh, dbd_dr]
|
309
|
-
return driver_name
|
309
|
+
return driver_name
|
310
310
|
else
|
311
311
|
return driver_name
|
312
312
|
end
|
313
313
|
end
|
314
314
|
rescue LoadError, NameError
|
315
|
-
|
316
|
-
raise InterfaceError, "Could not load driver (#{$!.message}). Note that in SAFE mode >= 1, driver URLs have to be case sensitive!"
|
317
|
-
else
|
318
|
-
raise InterfaceError, "Could not load driver (#{$!.message})"
|
319
|
-
end
|
315
|
+
raise InterfaceError, "Could not load driver (#{$!.message})"
|
320
316
|
end
|
321
317
|
|
322
318
|
# Splits a DBI URL into two components - the database driver name
|
@@ -327,7 +323,7 @@ module DBI
|
|
327
323
|
# the proper format for the URL. If it isn't correct, an Interface
|
328
324
|
# error is raised.
|
329
325
|
def parse_url(driver_url)
|
330
|
-
if driver_url =~ /^(DBI|dbi):([^:]+)(:(.*))$/
|
326
|
+
if driver_url =~ /^(DBI|dbi):([^:]+)(:(.*))$/
|
331
327
|
[$2, $4]
|
332
328
|
else
|
333
329
|
raise InterfaceError, "Invalid Data Source Name"
|
data/lib/dbi/utils/date.rb
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
require 'deprecated'
|
2
|
+
require 'dbi/types'
|
3
|
+
require 'dbi/binary'
|
4
|
+
require 'dbi/typeutil'
|
1
5
|
module DBI
|
2
6
|
#
|
3
7
|
# Represents a Date.
|
@@ -30,7 +34,7 @@ module DBI
|
|
30
34
|
sprintf("%04d-%02d-%02d", @year, @month, @day)
|
31
35
|
end
|
32
36
|
|
33
|
-
private
|
37
|
+
private
|
34
38
|
|
35
39
|
# DBI::Date.new(year = 0, month = 0, day = 0)
|
36
40
|
# DBI::Date.new(Date)
|
@@ -42,10 +46,10 @@ module DBI
|
|
42
46
|
def initialize(year=0, month=0, day=0)
|
43
47
|
case year
|
44
48
|
when ::Date
|
45
|
-
@year, @month, @day = year.year, year.month, year.day
|
49
|
+
@year, @month, @day = year.year, year.month, year.day
|
46
50
|
@original_date = year
|
47
51
|
when ::Time
|
48
|
-
@year, @month, @day = year.year, year.month, year.day
|
52
|
+
@year, @month, @day = year.year, year.month, year.day
|
49
53
|
@original_time = year
|
50
54
|
else
|
51
55
|
@year, @month, @day = year, month, day
|
data/lib/dbi/version.rb
CHANGED
data/readme.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
# Release a new ydbi gem
|
2
|
+
|
3
|
+
* bundle exec rake test test_dbd test_dbi
|
4
|
+
* rake ydbd-pg:clobber_package; rake ydbd-pg:clobber_package; rake ydbi:gem ydbd-pg:gem
|
5
|
+
* bundle exec gem push pkg/ydbd-*.gem
|
6
|
+
* bundle exec gem push pkg/ydbi-*.gem
|
7
|
+
|
1
8
|
# Description
|
2
9
|
The DBI package is a vendor independent interface for accessing databases.
|
3
10
|
It is similar, but not identical to, Perl's DBI module.
|
@@ -75,6 +82,15 @@
|
|
75
82
|
gem install dbd-sqlite3
|
76
83
|
gem install dbd-sqlite
|
77
84
|
|
85
|
+
If you have a non standard path of postgres use something like
|
86
|
+
|
87
|
+
gem install pg -- --with-pg-config=/usr/local/pgsql-10.1/bin/pg_config
|
88
|
+
|
89
|
+
Or if you are using bundler
|
90
|
+
|
91
|
+
bundle config build.pg --with-pg-config=/usr/local/pgsql-10.1/bin/pg_config
|
92
|
+
bundle install
|
93
|
+
|
78
94
|
## Without rubygems:
|
79
95
|
|
80
96
|
ruby setup.rb config
|
data/test/dbi/tc_columninfo.rb
CHANGED
@@ -3,17 +3,12 @@
|
|
3
3
|
#
|
4
4
|
# Test case for the DBI::ColumnInfo class.
|
5
5
|
############################################################
|
6
|
-
$LOAD_PATH.unshift(Dir.pwd)
|
7
|
-
$LOAD_PATH.unshift(File.dirname(Dir.pwd))
|
8
|
-
$LOAD_PATH.unshift("../../lib")
|
9
|
-
$LOAD_PATH.unshift("../../lib/dbi")
|
10
|
-
$LOAD_PATH.unshift("lib")
|
11
|
-
|
12
|
-
require "dbi/columninfo"
|
13
6
|
require "test/unit"
|
7
|
+
require_relative "../../lib/dbi/columninfo"
|
14
8
|
|
15
9
|
class TC_DBI_ColumnInfo < Test::Unit::TestCase
|
16
10
|
def setup
|
11
|
+
super
|
17
12
|
@colinfo = DBI::ColumnInfo.new(
|
18
13
|
"name" => "test",
|
19
14
|
"sql_type" => "numeric",
|
@@ -30,7 +25,7 @@ class TC_DBI_ColumnInfo < Test::Unit::TestCase
|
|
30
25
|
indexed primary unique
|
31
26
|
/
|
32
27
|
end
|
33
|
-
|
28
|
+
|
34
29
|
def test_constructor
|
35
30
|
assert_nothing_raised{ DBI::ColumnInfo.new }
|
36
31
|
|
@@ -81,7 +76,7 @@ class TC_DBI_ColumnInfo < Test::Unit::TestCase
|
|
81
76
|
assert_respond_to(@colinfo, :keys)
|
82
77
|
assert_equal(@keys.sort, @colinfo.keys.collect { |x| x.to_s }.sort)
|
83
78
|
end
|
84
|
-
|
79
|
+
|
85
80
|
def test_respond_to_hash_methods
|
86
81
|
assert_respond_to(@colinfo, :each)
|
87
82
|
assert_respond_to(@colinfo, :empty?)
|
data/test/dbi/tc_date.rb
CHANGED
@@ -3,15 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# Test case for the DBI::Date class (currently) located in the utils.rb file.
|
5
5
|
##############################################################################
|
6
|
-
|
7
|
-
|
8
|
-
$LOAD_PATH.unshift("../../lib")
|
9
|
-
$LOAD_PATH.unshift("../../lib/dbi")
|
10
|
-
$LOAD_PATH.unshift("lib")
|
11
|
-
|
12
|
-
require 'date'
|
13
|
-
require 'dbi'
|
14
|
-
require 'test/unit'
|
6
|
+
require "test/unit"
|
7
|
+
require_relative "../../lib/dbi"
|
15
8
|
|
16
9
|
Deprecate.set_action(proc { })
|
17
10
|
|
data/test/dbi/tc_dbi.rb
CHANGED
@@ -3,14 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# Test case for the DBI module (dbi.rb).
|
5
5
|
######################################################################
|
6
|
-
|
7
|
-
|
8
|
-
$LOAD_PATH.unshift("../../lib")
|
9
|
-
$LOAD_PATH.unshift("../../lib/dbi")
|
10
|
-
$LOAD_PATH.unshift("lib")
|
11
|
-
|
12
|
-
require 'dbi'
|
13
|
-
require 'test/unit'
|
6
|
+
require "test/unit"
|
7
|
+
require_relative "../../lib/dbi"
|
14
8
|
|
15
9
|
class TC_DBI < Test::Unit::TestCase
|
16
10
|
def setup
|
@@ -22,7 +16,7 @@ class TC_DBI < Test::Unit::TestCase
|
|
22
16
|
end
|
23
17
|
|
24
18
|
def test_dbi_version
|
25
|
-
assert_equal("0.5.
|
19
|
+
assert_equal("0.5.8", DBI::VERSION)
|
26
20
|
end
|
27
21
|
|
28
22
|
def test_dbd_module
|
data/test/dbi/tc_row.rb
CHANGED
@@ -1,16 +1,10 @@
|
|
1
1
|
######################################################################
|
2
2
|
# tc_row.rb
|
3
3
|
#
|
4
|
-
# Test case for the DBI::Row class.
|
4
|
+
# Test case for the DBI::Row class.
|
5
5
|
######################################################################
|
6
|
-
|
7
|
-
|
8
|
-
$LOAD_PATH.unshift("../../lib")
|
9
|
-
$LOAD_PATH.unshift("../../lib/dbi")
|
10
|
-
$LOAD_PATH.unshift("lib")
|
11
|
-
|
12
|
-
require 'test/unit'
|
13
|
-
require 'dbi'
|
6
|
+
require "test/unit"
|
7
|
+
require_relative "../../lib/dbi"
|
14
8
|
|
15
9
|
class TC_DBI_Row < Test::Unit::TestCase
|
16
10
|
def setup
|
@@ -18,7 +12,7 @@ class TC_DBI_Row < Test::Unit::TestCase
|
|
18
12
|
@cols = %w/first last age/
|
19
13
|
@coltypes = [DBI::Type::Varchar, DBI::Type::Varchar, DBI::Type::Integer]
|
20
14
|
@row = DBI::Row.new(@cols, @coltypes, @data.clone)
|
21
|
-
@row_noconv = DBI::Row.new(@cols, @coltypes, @data.clone, false)
|
15
|
+
@row_noconv = DBI::Row.new(@cols, @coltypes, @data.clone, false)
|
22
16
|
end
|
23
17
|
|
24
18
|
def teardown
|
@@ -46,7 +40,7 @@ class TC_DBI_Row < Test::Unit::TestCase
|
|
46
40
|
assert_equal(@data, @row_noconv)
|
47
41
|
end
|
48
42
|
end
|
49
|
-
|
43
|
+
|
50
44
|
# Ensure that constructor only allows Integers or Arrays (or nil)
|
51
45
|
def test_row_constructor
|
52
46
|
assert_nothing_raised{ DBI::Row.new(@cols, @coltypes) }
|
@@ -67,14 +61,14 @@ class TC_DBI_Row < Test::Unit::TestCase
|
|
67
61
|
assert_equal(@data[2].to_s, @row.at(2).to_s)
|
68
62
|
assert_equal(@data[99].to_s, @row.at(99).to_s)
|
69
63
|
end
|
70
|
-
|
64
|
+
|
71
65
|
# Should respond to Array and Enumerable methods
|
72
66
|
def test_row_delegate
|
73
67
|
assert_respond_to(@row, :length)
|
74
68
|
assert_respond_to(@row, :each)
|
75
69
|
assert_respond_to(@row, :grep)
|
76
70
|
end
|
77
|
-
|
71
|
+
|
78
72
|
def test_row_length
|
79
73
|
assert_equal(3, @row.length)
|
80
74
|
assert_equal(3, DBI::Row.new(@cols, @coltypes).length)
|
@@ -86,14 +80,14 @@ class TC_DBI_Row < Test::Unit::TestCase
|
|
86
80
|
assert_equal(@data[2], @row.by_index(2).to_s)
|
87
81
|
assert_nil(@row.by_index(3))
|
88
82
|
end
|
89
|
-
|
83
|
+
|
90
84
|
def test_row_data_by_field
|
91
85
|
assert_equal @data[0], @row.by_field('first')
|
92
86
|
assert_equal @data[1], @row.by_field('last')
|
93
87
|
assert_equal @data[2], @row.by_field('age').to_s
|
94
88
|
assert_equal nil, @row.by_field('unknown')
|
95
89
|
end
|
96
|
-
|
90
|
+
|
97
91
|
def test_row_set_values
|
98
92
|
assert_respond_to(@row, :set_values)
|
99
93
|
assert_nothing_raised{ @row.set_values(["John", "Doe", 23]) }
|
@@ -101,14 +95,14 @@ class TC_DBI_Row < Test::Unit::TestCase
|
|
101
95
|
assert_equal("Doe", @row.by_index(1))
|
102
96
|
assert_equal(23, @row.by_index(2))
|
103
97
|
end
|
104
|
-
|
98
|
+
|
105
99
|
def test_row_to_h
|
106
100
|
assert_respond_to(@row, :to_h)
|
107
101
|
assert_nothing_raised{ @row.to_h }
|
108
102
|
assert_kind_of(Hash, @row.to_h)
|
109
103
|
assert_equal({"first"=>"Daniel", "last"=>"Berger", "age"=>36}, @row.to_h)
|
110
104
|
end
|
111
|
-
|
105
|
+
|
112
106
|
def test_row_column_names
|
113
107
|
assert_respond_to(@row, :column_names)
|
114
108
|
assert_nothing_raised{ @row.column_names }
|
@@ -123,13 +117,13 @@ class TC_DBI_Row < Test::Unit::TestCase
|
|
123
117
|
assert_kind_of(Array, @row.column_names)
|
124
118
|
assert_equal(["first", "last", "age"], @row.column_names)
|
125
119
|
end
|
126
|
-
|
120
|
+
|
127
121
|
def test_indexing_numeric
|
128
|
-
assert_equal(@data[0], @row[0])
|
129
|
-
assert_equal(@data[1], @row[1])
|
130
|
-
assert_equal(@data[2], @row[2].to_s)
|
122
|
+
assert_equal(@data[0], @row[0])
|
123
|
+
assert_equal(@data[1], @row[1])
|
124
|
+
assert_equal(@data[2], @row[2].to_s)
|
131
125
|
end
|
132
|
-
|
126
|
+
|
133
127
|
def test_indexing_string_or_symbol
|
134
128
|
assert_equal(@data[0], @row['first'])
|
135
129
|
assert_equal(@data[0], @row[:first])
|
@@ -137,7 +131,7 @@ class TC_DBI_Row < Test::Unit::TestCase
|
|
137
131
|
assert_equal(@data[2], @row['age'].to_s)
|
138
132
|
assert_equal(nil, @row['unknown'])
|
139
133
|
end
|
140
|
-
|
134
|
+
|
141
135
|
def test_indexing_regexp
|
142
136
|
assert_equal(["Daniel"], @row[/first/])
|
143
137
|
assert_equal(["Berger"], @row[/last/])
|
data/test/dbi/tc_sqlbind.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require "dbi/sql"
|
1
|
+
require "test/unit"
|
2
|
+
require_relative "../../lib/dbi/sql"
|
4
3
|
|
5
4
|
# ====================================================================
|
6
5
|
class TestSqlBind < Test::Unit::TestCase
|
@@ -60,18 +59,18 @@ class TestSqlBind < Test::Unit::TestCase
|
|
60
59
|
def test_minus_bug
|
61
60
|
sql = "SELECT 1 - 3"
|
62
61
|
res = "SELECT 1 - 3"
|
63
|
-
assert_equal res, bind(self, sql, [])
|
62
|
+
assert_equal res, bind(self, sql, [])
|
64
63
|
end
|
65
64
|
|
66
65
|
def test_minus2
|
67
|
-
sql = "SELECT * from test --Dan's query"
|
68
|
-
assert_equal sql, bind(self, sql, [])
|
66
|
+
sql = "SELECT * from test --Dan's query"
|
67
|
+
assert_equal sql, bind(self, sql, [])
|
69
68
|
end
|
70
69
|
|
71
70
|
def test_slash
|
72
71
|
sql = "SELECT 5 / 4"
|
73
72
|
res = "SELECT 5 / 4"
|
74
|
-
assert_equal res, bind(self, sql, [])
|
73
|
+
assert_equal res, bind(self, sql, [])
|
75
74
|
end
|
76
75
|
|
77
76
|
def test_much
|
@@ -1,6 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'dbi'
|
1
|
+
require "test/unit"
|
2
|
+
require_relative "../../lib/dbi"
|
4
3
|
|
5
4
|
class TC_DBI_StatementHandle < Test::Unit::TestCase
|
6
5
|
def test_fetch
|
@@ -9,7 +8,7 @@ class TC_DBI_StatementHandle < Test::Unit::TestCase
|
|
9
8
|
def mock_handle.column_info; {}; end
|
10
9
|
def mock_handle.fetch; nil; end
|
11
10
|
sth = DBI::StatementHandle.new( mock_handle, true, true, false, true)
|
12
|
-
|
11
|
+
|
13
12
|
10.times do
|
14
13
|
assert_nil sth.fetch
|
15
14
|
end
|
data/test/dbi/tc_time.rb
CHANGED
@@ -3,14 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# Test case for the DBI::Time class (currently) located in the utils.rb file.
|
5
5
|
##############################################################################
|
6
|
-
|
7
|
-
|
8
|
-
$LOAD_PATH.unshift("../../lib")
|
9
|
-
$LOAD_PATH.unshift("../../lib/dbi")
|
10
|
-
$LOAD_PATH.unshift("lib")
|
11
|
-
|
12
|
-
require 'dbi'
|
13
|
-
require 'test/unit'
|
6
|
+
require "test/unit"
|
7
|
+
require_relative "../../lib/dbi"
|
14
8
|
|
15
9
|
Deprecate.set_action(proc { })
|
16
10
|
|
data/test/dbi/tc_timestamp.rb
CHANGED
@@ -4,17 +4,8 @@
|
|
4
4
|
# Test case for the DBI::Timestamp class (currently) located in the
|
5
5
|
# utils.rb file.
|
6
6
|
##############################################################################
|
7
|
-
|
8
|
-
|
9
|
-
$LOAD_PATH.unshift("../../lib")
|
10
|
-
$LOAD_PATH.unshift("../../lib/dbi")
|
11
|
-
$LOAD_PATH.unshift("lib")
|
12
|
-
|
13
|
-
require 'date'
|
14
|
-
require 'dbi'
|
15
|
-
require 'test/unit'
|
16
|
-
|
17
|
-
Deprecate.set_action(proc { })
|
7
|
+
require "test/unit"
|
8
|
+
require_relative "../../lib/dbi"
|
18
9
|
|
19
10
|
class TC_DBI_Date < Test::Unit::TestCase
|
20
11
|
def setup
|
@@ -134,9 +125,4 @@ class TC_DBI_Date < Test::Unit::TestCase
|
|
134
125
|
assert_equal(2006, @dbi_ts.year)
|
135
126
|
end
|
136
127
|
|
137
|
-
def teardown
|
138
|
-
@date = nil
|
139
|
-
@time = nil
|
140
|
-
@dbi_ts = nil
|
141
|
-
end
|
142
128
|
end
|
data/test/dbi/tc_types.rb
CHANGED
@@ -1,11 +1,5 @@
|
|
1
|
-
$LOAD_PATH.unshift(Dir.pwd)
|
2
|
-
$LOAD_PATH.unshift(File.dirname(Dir.pwd))
|
3
|
-
$LOAD_PATH.unshift("../../lib")
|
4
|
-
$LOAD_PATH.unshift("../../lib/dbi")
|
5
|
-
$LOAD_PATH.unshift("lib")
|
6
|
-
|
7
|
-
require "dbi"
|
8
1
|
require "test/unit"
|
2
|
+
require_relative "../../lib/dbi"
|
9
3
|
|
10
4
|
class MyType
|
11
5
|
def initialize(obj)
|
@@ -107,7 +101,7 @@ class TC_DBI_Type < Test::Unit::TestCase
|
|
107
101
|
# string coercion
|
108
102
|
dt = DateTime.now
|
109
103
|
assert_equal(dt.to_s, klass.parse(dt).to_s)
|
110
|
-
|
104
|
+
|
111
105
|
t = Time.now
|
112
106
|
assert_equal(DateTime.parse(t.to_s).to_s, klass.parse(t).to_s)
|
113
107
|
|
@@ -137,7 +131,7 @@ class TC_DBI_Type < Test::Unit::TestCase
|
|
137
131
|
)
|
138
132
|
|
139
133
|
# precision tests, related to ticket #27182
|
140
|
-
|
134
|
+
|
141
135
|
# iso8601 (bypasses regex)
|
142
136
|
[
|
143
137
|
'2009-09-27T19:41:00-05:00',
|
@@ -158,7 +152,7 @@ class TC_DBI_Type < Test::Unit::TestCase
|
|
158
152
|
)
|
159
153
|
|
160
154
|
# unix convention (uses regex)
|
161
|
-
|
155
|
+
|
162
156
|
[
|
163
157
|
'2009-09-27 19:41:00 -05:00',
|
164
158
|
'2009-09-27 19:41:00.123 -05:00'
|
@@ -208,7 +202,7 @@ class TC_DBI_TypeUtil < Test::Unit::TestCase
|
|
208
202
|
assert_kind_of(String, cast(Time.now))
|
209
203
|
assert_kind_of(String, cast(Date.today))
|
210
204
|
assert_kind_of(String, cast(DateTime.now))
|
211
|
-
|
205
|
+
|
212
206
|
obj = Time.now
|
213
207
|
assert_equal(datecast(obj), cast(obj))
|
214
208
|
obj = Date.today
|