dbi-dbrc 1.1.7 → 1.1.8
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/CHANGES +4 -0
- data/Rakefile +1 -1
- data/dbi-dbrc.gemspec +1 -1
- data/lib/dbi/dbrc.rb +11 -7
- data/test/test_dbi_dbrc.rb +184 -184
- metadata +4 -4
data/CHANGES
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
== 1.1.8 - 7-Oct-2010
|
2
|
+
* Fixed a logic bug in the constructor that primarily affected MS Windows with
|
3
|
+
regards to determining the user's home directory.
|
4
|
+
|
1
5
|
== 1.1.7 - 6-Oct-2010
|
2
6
|
* More robust file decryption/encryption for MS Windows.
|
3
7
|
* Better platform checking for MS Windows.
|
data/Rakefile
CHANGED
data/dbi-dbrc.gemspec
CHANGED
data/lib/dbi/dbrc.rb
CHANGED
@@ -19,7 +19,7 @@ module DBI
|
|
19
19
|
class Error < StandardError; end
|
20
20
|
|
21
21
|
# The version of the dbi-dbrc library
|
22
|
-
VERSION = '1.1.
|
22
|
+
VERSION = '1.1.8'
|
23
23
|
|
24
24
|
@@windows = Config::CONFIG['host_os'] =~ /mswin|msdos|win32|mingw|cygwin/i
|
25
25
|
|
@@ -99,13 +99,17 @@ module DBI
|
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
|
-
# Default to the app data directory on Windows
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
102
|
+
# Default to the app data directory on Windows, or root on Unix, if
|
103
|
+
# no home dir can be found.
|
104
|
+
if home.nil?
|
105
|
+
if @@windows
|
106
|
+
home = Dir::APPDATA
|
107
|
+
else
|
108
|
+
home = '/'
|
109
|
+
end
|
108
110
|
end
|
111
|
+
|
112
|
+
@dbrc_file = File.join(home, '.dbrc')
|
109
113
|
else
|
110
114
|
raise Error, 'bad directory' unless File.directory?(dbrc_dir)
|
111
115
|
@dbrc_file = File.join(dbrc_dir, '.dbrc')
|
data/test/test_dbi_dbrc.rb
CHANGED
@@ -12,190 +12,190 @@ require 'test/unit'
|
|
12
12
|
include DBI
|
13
13
|
|
14
14
|
class TC_DBI_DBRC < Test::Unit::TestCase
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
15
|
+
def self.startup
|
16
|
+
@@windows = File::ALT_SEPARATOR
|
17
|
+
end
|
18
|
+
|
19
|
+
def setup
|
20
|
+
@dir = File.join(Dir.pwd, 'examples/plain')
|
21
|
+
@file = File.join(@dir, '.dbrc')
|
22
|
+
@db1 = 'foo'
|
23
|
+
@db2 = 'bar'
|
24
|
+
@user1 = 'user1'
|
25
|
+
@user2 = 'user2'
|
26
|
+
@db_bad = 'blah' # Doesn't exist
|
27
|
+
@user_bad = 'user8' # Doesn't exist
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
29
|
+
if @@windows && File.respond_to?(:set_attr)
|
30
|
+
File.set_attr(@file, File::HIDDEN)
|
31
|
+
else
|
32
|
+
File.chmod(0600, @file)
|
33
|
+
end
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
35
|
+
@dbrc = DBRC.new(@db1, nil, @dir)
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_version
|
39
|
+
assert_equal('1.1.8', DBRC::VERSION)
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_bad_dbrc_properties
|
43
|
+
if @@windows
|
44
|
+
File.unset_attr(@file, File::HIDDEN)
|
45
|
+
assert_raises(DBRC::Error){ DBRC.new(@db1, @user1, @dir) }
|
46
|
+
else
|
47
|
+
File.chmod(0555,@file)
|
48
|
+
assert_raises(DBRC::Error){ DBRC.new(@db1, @user1, @dir) }
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_constructor
|
53
|
+
assert_raises(ArgumentError){ DBRC.new }
|
54
|
+
assert_nothing_raised{ DBRC.new(@db1, @user1, @dir) }
|
55
|
+
assert_nothing_raised{ DBRC.new(@db1, nil, @dir) }
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_bad_database
|
59
|
+
assert_raise(DBRC::Error){ DBRC.new(@db_bad, nil, @dir) }
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_bad_user
|
63
|
+
assert_raise(DBRC::Error){ DBRC.new(@db1, @user_bad, @dir) }
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_bad_dir
|
67
|
+
assert_raise(DBI::DBRC::Error){ DBI::DBRC.new(@db1, @user1, '/bogusXX') }
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_database
|
71
|
+
assert_respond_to(@dbrc, :database)
|
72
|
+
assert_respond_to(@dbrc, :database=)
|
73
|
+
assert_respond_to(@dbrc, :db)
|
74
|
+
assert_respond_to(@dbrc, :db=)
|
75
|
+
assert_kind_of(String, @dbrc.db)
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_host_alias
|
79
|
+
assert_respond_to(@dbrc, :host)
|
80
|
+
assert_equal(true, @dbrc.method(:host) == @dbrc.method(:database))
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_dbrc_dir
|
84
|
+
assert_respond_to(@dbrc, :dbrc_dir)
|
85
|
+
assert_equal(@dir, @dbrc.dbrc_dir)
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_dbrc_file
|
89
|
+
assert_respond_to(@dbrc, :dbrc_file)
|
90
|
+
assert_equal('.dbrc', File.basename(@dbrc.dbrc_file))
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_dsn
|
94
|
+
assert_respond_to(@dbrc, :dsn)
|
95
|
+
assert_respond_to(@dbrc, :dsn=)
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_user
|
99
|
+
assert_respond_to(@dbrc, :user)
|
100
|
+
assert_respond_to(@dbrc, :user=)
|
101
|
+
assert_kind_of(String, @dbrc.user)
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_password
|
105
|
+
assert_respond_to(@dbrc, :password)
|
106
|
+
assert_respond_to(@dbrc, :password=)
|
107
|
+
assert_respond_to(@dbrc, :passwd)
|
108
|
+
assert_respond_to(@dbrc, :passwd=)
|
109
|
+
assert_kind_of(String, @dbrc.password)
|
110
|
+
end
|
111
|
+
|
112
|
+
def test_driver
|
113
|
+
assert_respond_to(@dbrc, :driver)
|
114
|
+
assert_respond_to(@dbrc, :driver=)
|
115
|
+
assert_kind_of(String, @dbrc.driver)
|
116
|
+
end
|
117
|
+
|
118
|
+
def test_interval
|
119
|
+
assert_respond_to(@dbrc, :interval)
|
120
|
+
assert_respond_to(@dbrc, :interval=)
|
121
|
+
assert_kind_of(Fixnum, @dbrc.interval)
|
122
|
+
end
|
123
|
+
|
124
|
+
def test_timeout
|
125
|
+
assert_respond_to(@dbrc, :timeout)
|
126
|
+
assert_respond_to(@dbrc, :timeout=)
|
127
|
+
assert_respond_to(@dbrc, :time_out)
|
128
|
+
assert_respond_to(@dbrc, :time_out=)
|
129
|
+
assert_kind_of(Fixnum, @dbrc.timeout)
|
130
|
+
end
|
131
|
+
|
132
|
+
def test_max_reconn
|
133
|
+
assert_respond_to(@dbrc, :max_reconn)
|
134
|
+
assert_respond_to(@dbrc, :max_reconn=)
|
135
|
+
assert_respond_to(@dbrc, :maximum_reconnects)
|
136
|
+
assert_respond_to(@dbrc, :maximum_reconnects=)
|
137
|
+
assert_kind_of(Fixnum, @dbrc.maximum_reconnects)
|
138
|
+
end
|
139
|
+
|
140
|
+
def test_sample_values
|
141
|
+
assert_equal("foo", @dbrc.database)
|
142
|
+
assert_equal("user1", @dbrc.user)
|
143
|
+
assert_equal("pwd1", @dbrc.passwd)
|
144
|
+
assert_equal("Oracle", @dbrc.driver)
|
145
|
+
assert_equal(60, @dbrc.interval)
|
146
|
+
assert_equal(40, @dbrc.timeout)
|
147
|
+
assert_equal(3, @dbrc.max_reconn)
|
148
|
+
assert_equal("dbi:Oracle:foo", @dbrc.dsn)
|
149
|
+
end
|
150
|
+
|
151
|
+
# Same database, different user
|
152
|
+
def test_duplicate_database
|
153
|
+
db = DBRC.new("foo", "user2", @dir)
|
154
|
+
assert_equal("user2", db.user)
|
155
|
+
assert_equal("pwd2", db.passwd)
|
156
|
+
assert_equal("OCI8", db.driver)
|
157
|
+
assert_equal(60, db.interval)
|
158
|
+
assert_equal(60, db.timeout)
|
159
|
+
assert_equal(4, db.max_reconn)
|
160
|
+
assert_equal("dbi:OCI8:foo", db.dsn)
|
161
|
+
end
|
162
|
+
|
163
|
+
# Different database, different user
|
164
|
+
def test_different_database
|
165
|
+
db = DBRC.new("bar", "user1", @dir)
|
166
|
+
assert_equal("user1", db.user)
|
167
|
+
assert_equal("pwd3", db.passwd)
|
168
|
+
assert_equal("Oracle", db.driver)
|
169
|
+
assert_equal(30, db.interval)
|
170
|
+
assert_equal(30, db.timeout)
|
171
|
+
assert_equal(2, db.max_reconn)
|
172
|
+
assert_equal("dbi:Oracle:bar", db.dsn)
|
173
|
+
end
|
174
|
+
|
175
|
+
# A database with only a couple fields defined
|
176
|
+
def test_nil_values
|
177
|
+
db = DBRC.new("baz", "user3", @dir)
|
178
|
+
assert_equal("user3", db.user)
|
179
|
+
assert_equal("pwd4", db.passwd)
|
180
|
+
assert_nil(db.driver)
|
181
|
+
assert_nil(db.interval)
|
182
|
+
assert_nil(db.timeout)
|
183
|
+
assert_nil(db.max_reconn)
|
184
|
+
assert_nil(db.dsn)
|
185
|
+
end
|
186
|
+
|
187
|
+
def teardown
|
188
|
+
@dir = nil
|
189
|
+
@db1 = nil
|
190
|
+
@db2 = nil
|
191
|
+
@user1 = nil
|
192
|
+
@user2 = nil
|
193
|
+
@db_bad = nil
|
194
|
+
@user_bad = nil
|
195
|
+
@dbrc = nil
|
196
|
+
end
|
197
|
+
|
198
|
+
def self.shutdown
|
199
|
+
@@windows = nil
|
200
|
+
end
|
201
201
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dbi-dbrc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 8
|
10
|
+
version: 1.1.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Daniel Berger
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-10-
|
18
|
+
date: 2010-10-07 00:00:00 -06:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|