ruby-oci8 1.0.2-i386-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.
Files changed (49) hide show
  1. data/ChangeLog +569 -0
  2. data/Makefile +51 -0
  3. data/NEWS +322 -0
  4. data/README +415 -0
  5. data/VERSION +1 -0
  6. data/dist-files +70 -0
  7. data/doc/api.en.html +527 -0
  8. data/doc/api.en.rd +554 -0
  9. data/doc/api.ja.html +525 -0
  10. data/doc/api.ja.rd +557 -0
  11. data/doc/manual.css +35 -0
  12. data/ext/oci8/oci8lib.so +0 -0
  13. data/lib/DBD/OCI8/OCI8.rb +549 -0
  14. data/lib/oci8.rb +1605 -0
  15. data/lib/oci8.rb.in +1605 -0
  16. data/metaconfig +142 -0
  17. data/pre-distclean.rb +7 -0
  18. data/ruby-oci8.gemspec +54 -0
  19. data/ruby-oci8.spec +62 -0
  20. data/setup.rb +1331 -0
  21. data/support/README +4 -0
  22. data/support/runit/assert.rb +281 -0
  23. data/support/runit/cui/testrunner.rb +101 -0
  24. data/support/runit/error.rb +4 -0
  25. data/support/runit/method_mappable.rb +20 -0
  26. data/support/runit/robserver.rb +25 -0
  27. data/support/runit/setuppable.rb +15 -0
  28. data/support/runit/teardownable.rb +16 -0
  29. data/support/runit/testcase.rb +113 -0
  30. data/support/runit/testfailure.rb +25 -0
  31. data/support/runit/testresult.rb +121 -0
  32. data/support/runit/testsuite.rb +43 -0
  33. data/support/runit/version.rb +3 -0
  34. data/test/README +4 -0
  35. data/test/config.rb +129 -0
  36. data/test/test_all.rb +43 -0
  37. data/test/test_bind_raw.rb +53 -0
  38. data/test/test_bind_time.rb +191 -0
  39. data/test/test_break.rb +81 -0
  40. data/test/test_clob.rb +101 -0
  41. data/test/test_connstr.rb +80 -0
  42. data/test/test_dbi.rb +317 -0
  43. data/test/test_dbi_clob.rb +56 -0
  44. data/test/test_describe.rb +137 -0
  45. data/test/test_metadata.rb +243 -0
  46. data/test/test_oci8.rb +273 -0
  47. data/test/test_oradate.rb +263 -0
  48. data/test/test_oranumber.rb +149 -0
  49. metadata +97 -0
@@ -0,0 +1,263 @@
1
+ # Low-level API
2
+ require 'oci8'
3
+ require 'runit/testcase'
4
+ require 'runit/cui/testrunner'
5
+ require File.dirname(__FILE__) + '/config'
6
+
7
+ class TestOraDate < RUNIT::TestCase
8
+
9
+ YEAR_CHECK_TARGET = [-4712, -1, 1, 1192, 1868, 2002, 9999]
10
+ MONTH_CHECK_TARGET = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
11
+ DAY_CHECK_TARGET = [1, 10, 20, 31] # days of January.
12
+ HOUR_CHECK_TARGET = [0, 6, 12, 18, 23]
13
+ MINUTE_CHECK_TARGET = [0, 15, 30, 45, 59]
14
+ SECOND_CHECK_TARGET = [0, 15, 30, 45, 59]
15
+
16
+ def setup
17
+ @env, @svc, @stmt = setup_lowapi()
18
+ end
19
+
20
+ def check_oradate(target, year, month, day, hour, minute, second)
21
+ assert_equal(year, target.year)
22
+ assert_equal(month, target.month)
23
+ assert_equal(day, target.day)
24
+ assert_equal(hour, target.hour)
25
+ assert_equal(minute, target.minute)
26
+ assert_equal(second, target.second)
27
+ end
28
+
29
+ def test_new()
30
+ check_oradate(OraDate.new(), 1, 1, 1, 0, 0, 0)
31
+ end
32
+
33
+ def test_set_year
34
+ @stmt.prepare("BEGIN :year := TO_NUMBER(TO_CHAR(:date, 'SYYYY'), '9999'); END;")
35
+ date_in = @stmt.bindByName(":date", OraDate)
36
+ year_out = @stmt.bindByName(":year", Fixnum)
37
+ date = OraDate.new()
38
+ YEAR_CHECK_TARGET.each do |i|
39
+ # set year
40
+ date.year = i
41
+ # check result via oracle.
42
+ date_in.set(date)
43
+ @stmt.execute(@svc)
44
+ assert_equal(i, year_out.get())
45
+ end
46
+ end
47
+
48
+ def test_get_year
49
+ @stmt.prepare("BEGIN :date := TO_DATE(TO_CHAR(:year, '0999'), 'SYYYY'); END;")
50
+ year_in = @stmt.bindByName(":year", Fixnum)
51
+ date_out = @stmt.bindByName(":date", OraDate)
52
+ YEAR_CHECK_TARGET.each do |i|
53
+ # set date via oracle.
54
+ year_in.set(i)
55
+ @stmt.execute(@svc)
56
+ # check OraDate#year
57
+ assert_equal(i, date_out.get.year)
58
+ end
59
+ end
60
+
61
+ def test_set_month
62
+ @stmt.prepare("BEGIN :month := TO_NUMBER(TO_CHAR(:date, 'MM'), '99'); END;")
63
+ date_in = @stmt.bindByName(":date", OraDate)
64
+ month_out = @stmt.bindByName(":month", Fixnum)
65
+ date = OraDate.new()
66
+ MONTH_CHECK_TARGET.each do |i|
67
+ # set month
68
+ date.month = i
69
+ # check result via oracle.
70
+ date_in.set(date)
71
+ @stmt.execute(@svc)
72
+ assert_equal(i, month_out.get())
73
+ end
74
+ end
75
+
76
+ def test_get_month
77
+ @stmt.prepare("BEGIN :date := TO_DATE(TO_CHAR(:month, '99'), 'MM'); END;")
78
+ month_in = @stmt.bindByName(":month", Fixnum)
79
+ date_out = @stmt.bindByName(":date", OraDate)
80
+ MONTH_CHECK_TARGET.each do |i|
81
+ # set date via oracle.
82
+ month_in.set(i)
83
+ @stmt.execute(@svc)
84
+ # check OraDate#month
85
+ assert_equal(i, date_out.get.month)
86
+ end
87
+ end
88
+
89
+ def test_set_day
90
+ @stmt.prepare("BEGIN :day := TO_NUMBER(TO_CHAR(:date, 'DD'), '99'); END;")
91
+ date_in = @stmt.bindByName(":date", OraDate)
92
+ day_out = @stmt.bindByName(":day", Fixnum)
93
+ date = OraDate.new()
94
+ DAY_CHECK_TARGET.each do |i|
95
+ # set day
96
+ date.day = i
97
+ # check result via oracle.
98
+ date_in.set(date)
99
+ @stmt.execute(@svc)
100
+ assert_equal(i, day_out.get())
101
+ end
102
+ end
103
+
104
+ def test_get_day
105
+ @stmt.prepare("BEGIN :date := TO_DATE('200101' || TO_CHAR(:day, 'FM00'), 'YYYYMMDD'); END;")
106
+ day_in = @stmt.bindByName(":day", Fixnum)
107
+ date_out = @stmt.bindByName(":date", OraDate)
108
+ DAY_CHECK_TARGET.each do |i|
109
+ # set date via oracle.
110
+ day_in.set(i)
111
+ @stmt.execute(@svc)
112
+ # check OraDate#day
113
+ assert_equal(i, date_out.get.day)
114
+ end
115
+ end
116
+
117
+ def test_set_hour
118
+ @stmt.prepare("BEGIN :hour := TO_NUMBER(TO_CHAR(:date, 'HH24'), '99'); END;")
119
+ date_in = @stmt.bindByName(":date", OraDate)
120
+ hour_out = @stmt.bindByName(":hour", Fixnum)
121
+ date = OraDate.new()
122
+ HOUR_CHECK_TARGET.each do |i|
123
+ # set hour
124
+ date.hour = i
125
+ # check result via oracle.
126
+ date_in.set(date)
127
+ @stmt.execute(@svc)
128
+ assert_equal(i, hour_out.get())
129
+ end
130
+ end
131
+
132
+ def test_get_hour
133
+ @stmt.prepare("BEGIN :date := TO_DATE(TO_CHAR(:hour, '99'), 'HH24'); END;")
134
+ hour_in = @stmt.bindByName(":hour", Fixnum)
135
+ date_out = @stmt.bindByName(":date", OraDate)
136
+ HOUR_CHECK_TARGET.each do |i|
137
+ # set date via oracle.
138
+ hour_in.set(i)
139
+ @stmt.execute(@svc)
140
+ # check OraDate#hour
141
+ assert_equal(i, date_out.get.hour)
142
+ end
143
+ end
144
+
145
+ def test_set_minute
146
+ @stmt.prepare("BEGIN :minute := TO_NUMBER(TO_CHAR(:date, 'MI'), '99'); END;")
147
+ date_in = @stmt.bindByName(":date", OraDate)
148
+ minute_out = @stmt.bindByName(":minute", Fixnum)
149
+ date = OraDate.new()
150
+ MINUTE_CHECK_TARGET.each do |i|
151
+ # set minute
152
+ date.minute = i
153
+ # check result via oracle.
154
+ date_in.set(date)
155
+ @stmt.execute(@svc)
156
+ assert_equal(i, minute_out.get())
157
+ end
158
+ end
159
+
160
+ def test_get_minute
161
+ @stmt.prepare("BEGIN :date := TO_DATE(TO_CHAR(:minute, '99'), 'MI'); END;")
162
+ minute_in = @stmt.bindByName(":minute", Fixnum)
163
+ date_out = @stmt.bindByName(":date", OraDate)
164
+ MINUTE_CHECK_TARGET.each do |i|
165
+ # set date via oracle.
166
+ minute_in.set(i)
167
+ @stmt.execute(@svc)
168
+ # check OraDate#minute
169
+ assert_equal(i, date_out.get.minute)
170
+ end
171
+ end
172
+
173
+ def test_set_second
174
+ @stmt.prepare("BEGIN :second := TO_NUMBER(TO_CHAR(:date, 'SS'), '99'); END;")
175
+ date_in = @stmt.bindByName(":date", OraDate)
176
+ second_out = @stmt.bindByName(":second", Fixnum)
177
+ date = OraDate.new()
178
+ SECOND_CHECK_TARGET.each do |i|
179
+ # set second
180
+ date.second = i
181
+ # check result via oracle.
182
+ date_in.set(date)
183
+ @stmt.execute(@svc)
184
+ assert_equal(i, second_out.get())
185
+ end
186
+ end
187
+
188
+ def test_get_second
189
+ @stmt.prepare("BEGIN :date := TO_DATE(TO_CHAR(:second, '99'), 'SS'); END;")
190
+ second_in = @stmt.bindByName(":second", Fixnum)
191
+ date_out = @stmt.bindByName(":date", OraDate)
192
+ SECOND_CHECK_TARGET.each do |i|
193
+ # set date via oracle.
194
+ second_in.set(i)
195
+ @stmt.execute(@svc)
196
+ # check OraDate#second
197
+ assert_equal(i, date_out.get.second)
198
+ end
199
+ end
200
+
201
+ def test_compare
202
+ d1 = OraDate.new(2003,03,15,18,55,35)
203
+ d2 = OraDate.new(2003,03,15,18,55,35)
204
+ assert_equal(d1, d2)
205
+ assert_operator(d1, :<, OraDate.new(2004,03,15,18,55,35))
206
+ assert_operator(d1, :<, OraDate.new(2003,04,15,18,55,35))
207
+ assert_operator(d1, :<, OraDate.new(2003,03,16,18,55,35))
208
+ assert_operator(d1, :<, OraDate.new(2003,03,15,19,55,35))
209
+ assert_operator(d1, :<, OraDate.new(2003,03,15,18,56,35))
210
+ assert_operator(d1, :<, OraDate.new(2003,03,15,18,55,36))
211
+
212
+ assert_operator(OraDate.new(2002,03,15,18,55,35), :<, d1)
213
+ assert_operator(OraDate.new(2003,02,15,18,55,35), :<, d1)
214
+ assert_operator(OraDate.new(2003,03,14,18,55,35), :<, d1)
215
+ assert_operator(OraDate.new(2003,03,15,17,55,35), :<, d1)
216
+ assert_operator(OraDate.new(2003,03,15,18,54,35), :<, d1)
217
+ assert_operator(OraDate.new(2003,03,15,18,55,34), :<, d1)
218
+ end
219
+
220
+ def test_to_time
221
+ year, month, day, hour, minute, second = [2003,03,15,18,55,35]
222
+ dt = OraDate.new(year, month, day, hour, minute, second)
223
+ tm = Time.local(year, month, day, hour, minute, second)
224
+ assert_equal(tm, dt.to_time)
225
+
226
+ # year, month, day, hour, minute, second = [1900,1,1,0,0,0]
227
+ # dt = OraDate.new(year, month, day, hour, minute, second)
228
+ # assert_exception(RangeError) { dt.to_time }
229
+ end
230
+
231
+ def test_to_date
232
+ [[2003,03,15], [1900,1,1], [-4712, 1, 1]].each do |year, month, day|
233
+ odt = OraDate.new(year, month, day)
234
+ rdt = Date.new(year, month, day)
235
+ assert_equal(rdt, odt.to_date)
236
+ end
237
+ end
238
+
239
+ def test_dup
240
+ [[2003,03,15], [1900,1,1], [-4712, 1, 1]].each do |year, month, day|
241
+ dt = OraDate.new(year, month, day)
242
+ assert_equal(dt, dt.dup)
243
+ assert_equal(dt, dt.clone)
244
+ end
245
+ end
246
+
247
+ def test_marshal
248
+ [[2003,03,15], [1900,1,1], [-4712, 1, 1]].each do |year, month, day|
249
+ dt = OraDate.new(year, month, day)
250
+ assert_equal(dt, Marshal.load(Marshal.dump(dt)))
251
+ end
252
+ end
253
+
254
+ def teardown
255
+ @stmt.free()
256
+ @svc.logoff()
257
+ @env.free()
258
+ end
259
+ end
260
+
261
+ if $0 == __FILE__
262
+ RUNIT::CUI::TestRunner.run(TestOraDate.suite())
263
+ end
@@ -0,0 +1,149 @@
1
+ # Low-level API
2
+ require 'oci8'
3
+ require 'runit/testcase'
4
+ require 'runit/cui/testrunner'
5
+ require File.dirname(__FILE__) + '/config'
6
+
7
+ class TestOraNumber < RUNIT::TestCase
8
+
9
+ NUMBER_CHECK_TARGET = [
10
+ "12345678901234567890123456789012345678",
11
+ "1234567890123456789012345678901234567",
12
+ "1234567890123456789012345678901234567.8",
13
+ "12.345678901234567890123456789012345678",
14
+ "1.2345678901234567890123456789012345678",
15
+ "1.234567890123456789012345678901234567",
16
+ "0.0000000000000000000000000000000000001",
17
+ "0.000000000000000000000000000000000001",
18
+ "0",
19
+ "2147483647", # max of 32 bit signed value
20
+ "2147483648", # max of 32 bit signed value + 1
21
+ "-2147483648", # min of 32 bit signed value
22
+ "-2147483649", # min of 32 bit signed value - 1
23
+ "9223372036854775807", # max of 64 bit signed value
24
+ "9223372036854775808", # max of 64 bit signed value + 1
25
+ "-9223372036854775808", # min of 64 bit signed value
26
+ "-9223372036854775809", # min of 64 bit signed value - 1
27
+ "-12345678901234567890123456789012345678",
28
+ "-1234567890123456789012345678901234567",
29
+ "-123456789012345678901234567890123456",
30
+ "-1234567890123456789012345678901234567.8",
31
+ "-12.345678901234567890123456789012345678",
32
+ "-1.2345678901234567890123456789012345678",
33
+ "-0.0000000000000000000000000000000000001",
34
+ "-0.000000000000000000000000000000000001",
35
+ "-0.00000000000000000000000000000000001",
36
+ "1",
37
+ "20",
38
+ "300",
39
+ "-1",
40
+ "-20",
41
+ "-300",
42
+ "1.123",
43
+ "12.123",
44
+ "123.123",
45
+ "1.1",
46
+ "1.12",
47
+ "1.123",
48
+ "-1.123",
49
+ "-12.123",
50
+ "-123.123",
51
+ "-1.1",
52
+ "-1.12",
53
+ "-1.123",
54
+ ]
55
+
56
+ def setup
57
+ @env, @svc, @stmt = setup_lowapi()
58
+ end
59
+
60
+ def test_to_s
61
+ @stmt.prepare("BEGIN :number := TO_NUMBER(:str); END;")
62
+ number = @stmt.bindByName(":number", OraNumber)
63
+ str = @stmt.bindByName(":str", String, 40)
64
+ NUMBER_CHECK_TARGET.each do |val|
65
+ str.set(val)
66
+ @stmt.execute(@svc)
67
+ assert_equal(val, number.get.to_s)
68
+ end
69
+ end
70
+
71
+ def test_to_i
72
+ @stmt.prepare("BEGIN :number := TO_NUMBER(:str); END;")
73
+ number = @stmt.bindByName(":number", OraNumber)
74
+ str = @stmt.bindByName(":str", String, 40)
75
+ NUMBER_CHECK_TARGET.each do |val|
76
+ str.set(val)
77
+ @stmt.execute(@svc)
78
+ assert_equal(val.to_i, number.get.to_i)
79
+ end
80
+ end
81
+
82
+ def test_to_f
83
+ @stmt.prepare("BEGIN :number := TO_NUMBER(:str); END;")
84
+ number = @stmt.bindByName(":number", OraNumber)
85
+ str = @stmt.bindByName(":str", String, 40)
86
+ NUMBER_CHECK_TARGET.each do |val|
87
+ str.set(val)
88
+ @stmt.execute(@svc)
89
+ assert_equal(val.to_f, number.get.to_f)
90
+ end
91
+ end
92
+
93
+ def test_uminus
94
+ @stmt.prepare("BEGIN :number := - TO_NUMBER(:str); END;")
95
+ number = @stmt.bindByName(":number", OraNumber)
96
+ str = @stmt.bindByName(":str", String, 40)
97
+ NUMBER_CHECK_TARGET.each do |val|
98
+ str.set(val)
99
+ @stmt.execute(@svc)
100
+ assert_equal(val, (- (number.get)).to_s)
101
+ end
102
+ end
103
+
104
+ def test_dup
105
+ @stmt.prepare("BEGIN :number := TO_NUMBER(:str); END;")
106
+ number = @stmt.bindByName(":number", OraNumber)
107
+ str = @stmt.bindByName(":str", String, 40)
108
+ NUMBER_CHECK_TARGET.each do |val|
109
+ str.set(val)
110
+ @stmt.execute(@svc)
111
+ n = number.get
112
+ assert_equal(n.to_s, n.dup.to_s)
113
+ assert_equal(n.to_s, n.clone.to_s)
114
+ end
115
+ end
116
+
117
+ def test_marshal
118
+ @stmt.prepare("BEGIN :number := TO_NUMBER(:str); END;")
119
+ number = @stmt.bindByName(":number", OraNumber)
120
+ str = @stmt.bindByName(":str", String, 40)
121
+ NUMBER_CHECK_TARGET.each do |val|
122
+ str.set(val)
123
+ @stmt.execute(@svc)
124
+ n = number.get
125
+ assert_equal(n.to_s, Marshal.load(Marshal.dump(n)).to_s)
126
+ end
127
+ end
128
+
129
+ def test_new_from_string
130
+ @stmt.prepare("BEGIN :number := TO_NUMBER(:str); END;")
131
+ number = @stmt.bindByName(":number", OraNumber)
132
+ str = @stmt.bindByName(":str", String, 40)
133
+ (NUMBER_CHECK_TARGET + ["1.230", "1.2300", "1.23000"]).each do |val|
134
+ str.set(val)
135
+ @stmt.execute(@svc)
136
+ assert_equal(number.get.to_s, OraNumber.new(val).to_s)
137
+ end
138
+ end
139
+
140
+ def teardown
141
+ @stmt.free()
142
+ @svc.logoff()
143
+ @env.free()
144
+ end
145
+ end
146
+
147
+ if $0 == __FILE__
148
+ RUNIT::CUI::TestRunner.run(TestOraNumber.suite())
149
+ end
metadata ADDED
@@ -0,0 +1,97 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.2
3
+ specification_version: 1
4
+ name: ruby-oci8
5
+ version: !ruby/object:Gem::Version
6
+ version: 1.0.2
7
+ date: 2008-06-29 00:00:00 +09:00
8
+ summary: Ruby interface for Oracle using OCI8 API
9
+ require_paths:
10
+ - lib
11
+ - ext/oci8
12
+ email: kubo@jiubao.org
13
+ homepage: http://ruby-oci8.rubyforge.org
14
+ rubyforge_project: ruby-oci8
15
+ description: ruby-oci8 is a ruby interface for Oracle using OCI8 API. It is available with Oracle8, Oracle8i, Oracle9i, Oracle10g and Oracle Instant Client.
16
+ autorequire: oci8
17
+ default_executable:
18
+ bindir: bin
19
+ has_rdoc: true
20
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: 1.8.0
25
+ version:
26
+ platform: i386-mswin32
27
+ signing_key:
28
+ cert_chain:
29
+ post_install_message:
30
+ authors:
31
+ - KUBO Takehiro
32
+ files:
33
+ - NEWS
34
+ - ChangeLog
35
+ - Makefile
36
+ - README
37
+ - VERSION
38
+ - dist-files
39
+ - metaconfig
40
+ - pre-distclean.rb
41
+ - ruby-oci8.spec
42
+ - ruby-oci8.gemspec
43
+ - setup.rb
44
+ - doc/api.en.html
45
+ - doc/api.en.rd
46
+ - doc/api.ja.html
47
+ - doc/api.ja.rd
48
+ - doc/manual.css
49
+ - lib/oci8.rb.in
50
+ - lib/DBD/OCI8/OCI8.rb
51
+ - support/README
52
+ - support/runit/assert.rb
53
+ - support/runit/cui/testrunner.rb
54
+ - support/runit/error.rb
55
+ - support/runit/method_mappable.rb
56
+ - support/runit/robserver.rb
57
+ - support/runit/setuppable.rb
58
+ - support/runit/teardownable.rb
59
+ - support/runit/testcase.rb
60
+ - support/runit/testfailure.rb
61
+ - support/runit/testresult.rb
62
+ - support/runit/testsuite.rb
63
+ - support/runit/version.rb
64
+ - test/README
65
+ - test/config.rb
66
+ - test/test_all.rb
67
+ - test/test_bind_raw.rb
68
+ - test/test_bind_time.rb
69
+ - test/test_break.rb
70
+ - test/test_clob.rb
71
+ - test/test_connstr.rb
72
+ - test/test_dbi.rb
73
+ - test/test_dbi_clob.rb
74
+ - test/test_describe.rb
75
+ - test/test_oci8.rb
76
+ - test/test_oradate.rb
77
+ - test/test_oranumber.rb
78
+ - test/test_metadata.rb
79
+ - ext/oci8/oci8lib.so
80
+ - lib/oci8.rb
81
+ test_files:
82
+ - test/test_all.rb
83
+ rdoc_options:
84
+ - --main
85
+ - README
86
+ - --exclude
87
+ - ext/*
88
+ extra_rdoc_files:
89
+ - README
90
+ executables: []
91
+
92
+ extensions: []
93
+
94
+ requirements: []
95
+
96
+ dependencies: []
97
+