win32-dir 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,11 @@
1
+ == 0.3.3 - 30-Mar-2009
2
+ * Virtual folders like Dir::CONTROL, which were previously almost always nil,
3
+ are now set to their display name.
4
+ * Fixed a bug in the create_junction method.
5
+ * Added an 'example' rake task to run the example code.
6
+ * Renamed the example program from dir_test.rb to dir_example.rb to prevent
7
+ any potential confusion that it's a genuine test file.
8
+
1
9
  == 0.3.2 - 25-Jul-2007
2
10
  * Added a Rakefile with tasks for testing and installation.
3
11
  * Removed the install.rb file (the Rakefile handles installation).
data/MANIFEST CHANGED
@@ -3,6 +3,6 @@
3
3
  * CHANGES
4
4
  * Rakefile
5
5
  * win32-dir.gemspec
6
- * examples/dir_test.rb
6
+ * examples/dir_example.rb
7
7
  * lib/win32/dir.rb
8
- * test/tc_dir.rb
8
+ * test/test_dir.rb
data/README CHANGED
@@ -1,16 +1,12 @@
1
1
  = Description
2
2
  A series of extra constants for the Dir class that define special folders
3
- on Win32 systems, as well as methods for creating and detecting junctions
4
- (i.e. symlinks for directories).
3
+ on MS Windows systems, as well as methods for creating and detecting
4
+ junctions, i.e. symlinks for directories.
5
5
 
6
6
  = Installation
7
7
  rake test (optional)
8
8
  rake install (non-gem) or rake install_gem (gem).
9
9
 
10
- = Notes
11
- Some tests may fail. That is expected, because not all constants are
12
- necessarily defined on your system.
13
-
14
10
  = Synopsis
15
11
  require "win32/dir"
16
12
 
@@ -41,9 +37,9 @@ Dir::COMMON_ADMINTOOLS
41
37
  Dir::APPDATA
42
38
  The file system directory that serves as a common repository for
43
39
  application-specific data. A typical path is
44
- C:\Documents and Settings\username\Application Data.
40
+ C:\Documents and Settings\<user>\Application Data.
45
41
 
46
- This CSIDL is supported by the redistributable Shfolder.dll for
42
+ This CSIDL is supported by the redistributable shfolder.dll for
47
43
  systems that do not have the Microsoft Internet Explorer 4.0
48
44
  integrated Shell installed.
49
45
 
@@ -57,7 +53,7 @@ Dir::COMMON_DOCUMENTS
57
53
 
58
54
  Dir::COOKIES
59
55
  The file system directory that serves as a common repository for Internet
60
- cookies. A typical path is C:\Documents and Settings\username\Cookies.
56
+ cookies. A typical path is C:\Documents and Settings\<user>\Cookies.
61
57
 
62
58
  Dir::HISTORY
63
59
  The file system directory that serves as a common repository for Internet
@@ -66,17 +62,17 @@ Dir::HISTORY
66
62
  Dir::INTERNET_CACHE
67
63
  The file system directory that serves as a common repository for temporary
68
64
  Internet files. A typical path is
69
- C:\Documents and Settings\username\Local Settings\Temporary Internet Files.
65
+ C:\Documents and Settings\<user>\Local Settings\Temporary Internet Files.
70
66
 
71
67
  Dir::LOCAL_APPDATA
72
68
  The file system directory that serves as a data repository for local
73
69
  (nonroaming) applications. A typical path is
74
- C:\Documents and Settings\username\Local Settings\Application Data.
70
+ C:\Documents and Settings\<user>\Local Settings\Application Data.
75
71
 
76
72
  Dir::MYPICTURES
77
73
  The file system directory that serves as a common repository for image
78
74
  files. A typical path is
79
- C:\Documents and Settings\username\My Documents\My Pictures.
75
+ C:\Documents and Settings\<user>\My Documents\My Pictures.
80
76
 
81
77
  Dir::PERSONAL
82
78
  The virtual folder representing the My Documents desktop item. This is
@@ -97,7 +93,7 @@ Dir::WINDOWS
97
93
  %SYSTEMROOT% environment variables. A typical path is C:\Windows.
98
94
 
99
95
  == The following constants may or may not be defined:
100
- Dir::ALTSTARTUP
96
+ Dir::ALTSTARTUP
101
97
  The file system directory that corresponds to the user's nonlocalized
102
98
  Startup program group.
103
99
 
@@ -234,8 +230,10 @@ Dir::TEMPLATES
234
230
  == Developer's Notes
235
231
  The SHGetFolderPath() documentation on MSDN is somewhat vague about which
236
232
  CSIDL constants are guaranteed to be defined. However, there are 15 which
237
- *should* be defined (see docs above). The rest I cannot vouch for. On
238
- my own Windows XP SP 2 system, all but 7 were defined.
233
+ *should* be defined (see docs above). The rest I cannot vouch for.
234
+
235
+ Some of these folders are virtual, and the value will be the display name
236
+ only instead of an actual path.
239
237
 
240
238
  == Known Bugs
241
239
  The Unicode support is not quite there for Dir.create_junction. It creates
@@ -263,7 +261,7 @@ Dir::TEMPLATES
263
261
  Ruby's
264
262
 
265
263
  == Copyright
266
- (C) 2003-2007 Daniel J. Berger, All Rights Reserved
264
+ (C) 2003-2008 Daniel J. Berger, All Rights Reserved
267
265
 
268
266
  == Warranty
269
267
  This package is provided "as is" and without any express or
data/Rakefile CHANGED
@@ -15,8 +15,11 @@ task :install_gem do
15
15
  sh "gem install #{file}"
16
16
  end
17
17
 
18
+ desc "Run the example program"
19
+ task :example do
20
+ sh "ruby -Ilib examples/dir_example.rb"
21
+
18
22
  Rake::TestTask.new do |t|
19
- t.libs << 'lib'
20
23
  t.warning = true
21
- t.test_files = FileList['test/tc*']
24
+ t.verbose = true
22
25
  end
data/lib/win32/dir.rb CHANGED
@@ -7,6 +7,8 @@ require 'windows/unicode'
7
7
  require 'windows/directory'
8
8
  require 'windows/handle'
9
9
  require 'windows/path'
10
+ require 'windows/limits'
11
+ require 'windows/system_info'
10
12
 
11
13
  class Dir
12
14
  include Windows::Directory
@@ -14,6 +16,8 @@ class Dir
14
16
  include Windows::Error
15
17
  include Windows::File
16
18
  include Windows::DeviceIO
19
+ include Windows::Limits
20
+
17
21
  extend Windows::Directory
18
22
  extend Windows::Shell
19
23
  extend Windows::File
@@ -22,12 +26,14 @@ class Dir
22
26
  extend Windows::Unicode
23
27
  extend Windows::Handle
24
28
  extend Windows::Path
29
+ extend Windows::Limits
30
+ extend Windows::SystemInfo
25
31
 
26
- VERSION = '0.3.2'
32
+ VERSION = '0.3.3'
27
33
 
28
34
  # Dynamically set each of the CSIDL_ constants
29
35
  constants.grep(/CSIDL/).each{ |constant|
30
- path = 0.chr * 260
36
+ path = 0.chr * MAXPATH
31
37
  nconst = constant.split('CSIDL_').last
32
38
 
33
39
  if SHGetFolderPath(0, const_get(constant), 0, 1, path) != 0
@@ -35,21 +41,37 @@ class Dir
35
41
  else
36
42
  path.strip!
37
43
  end
38
-
39
- Dir.const_set(nconst, path)
44
+
45
+ # Try another approach for virtual folders
46
+ if path.nil?
47
+ ppidl = 0.chr * 4 # PIDLIST_ABSOLUTE
48
+
49
+ if SHGetFolderLocation(0, const_get(constant), 0, 0, ppidl) == S_OK
50
+ info = 0.chr * 692 # sizeof(SHFILEINFO)
51
+ flags = SHGFI_DISPLAYNAME | SHGFI_PIDL
52
+ SHGetFileInfo(ppidl.unpack('L')[0], 0, info, 692, flags)
53
+ path = info[12..-1].strip
54
+ end
55
+ end
56
+
57
+ Dir.const_set(nconst, path) if path
40
58
  }
41
-
59
+
60
+ # Set Dir::MYDOCUMENTS to the same as Dir::PERSONAL if undefined
61
+ unless defined? MYDOCUMENTS
62
+ MYDOCUMENTS = PERSONAL
63
+ end
64
+
42
65
  # Creates the symlink +to+, linked to the existing directory +from+. If the
43
66
  # +to+ directory already exists, it must be empty or an error is raised.
44
67
  #
45
68
  def self.create_junction(to, from)
46
- # Normalize the paths
47
- to.tr!('/', "\\")
48
- from.tr!('/', "\\")
69
+ to = to.tr(File::SEPARATOR, File::ALT_SEPARATOR) # Normalize path
70
+ from = from.tr(File::SEPARATOR, File::ALT_SEPARATOR) # Normalize path
49
71
 
50
- to_path = 0.chr * 260
51
- from_path = 0.chr * 260
52
- buf_target = 0.chr * 260
72
+ to_path = 0.chr * MAXPATH
73
+ from_path = 0.chr * MAXPATH
74
+ buf_target = 0.chr * MAXPATH
53
75
 
54
76
  if GetFullPathName(from, from_path.size, from_path, 0) == 0
55
77
  raise StandardError, 'GetFullPathName() failed: ' + get_last_error
@@ -65,6 +87,7 @@ class Dir
65
87
  # You can create a junction to a directory that already exists, so
66
88
  # long as it's empty.
67
89
  rv = CreateDirectory(to_path, 0)
90
+
68
91
  if rv == 0 && rv != ERROR_ALREADY_EXISTS
69
92
  raise StandardError, 'CreateDirectory() failed: ' + get_last_error
70
93
  end
@@ -84,9 +107,8 @@ class Dir
84
107
  end
85
108
 
86
109
  buf_target = buf_target.split(0.chr).first
87
- buf_target = "\\??\\" << from_path
88
- length = buf_target.size * 2 # sizeof(WCHAR)
89
- wide_string = multi_to_wide(buf_target)
110
+ buf_target = "\\??\\" << from_path
111
+ wide_string = multi_to_wide(buf_target)[0..-3]
90
112
 
91
113
  # REPARSE_JDATA_BUFFER
92
114
  rdb = [
@@ -102,26 +124,27 @@ class Dir
102
124
 
103
125
  bytes = [0].pack('L')
104
126
 
105
- bool = DeviceIoControl(
106
- handle,
107
- CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_ANY_ACCESS),
108
- rdb,
109
- rdb.size,
110
- 0,
111
- 0,
112
- bytes,
113
- 0
114
- )
115
-
116
- unless bool
117
- error = 'DeviceIoControl() failed: ' + get_last_error
118
- RemoveDirectory(to)
119
- CloseHandle(handle)
120
- raise error
127
+ begin
128
+ bool = DeviceIoControl(
129
+ handle,
130
+ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, 0),
131
+ rdb,
132
+ rdb.size,
133
+ 0,
134
+ 0,
135
+ bytes,
136
+ 0
137
+ )
138
+
139
+ unless bool
140
+ error = 'DeviceIoControl() failed: ' + get_last_error
141
+ RemoveDirectory(to_path)
142
+ raise error
143
+ end
144
+ ensure
145
+ CloseHandle(handle)
121
146
  end
122
147
 
123
- CloseHandle(handle)
124
-
125
148
  self
126
149
  end
127
150
 
@@ -150,4 +173,4 @@ class Dir
150
173
  class << self
151
174
  alias reparse_dir? junction?
152
175
  end
153
- end
176
+ end
@@ -1,252 +1,259 @@
1
1
  ###########################################################################
2
- # tc_dir.rb
2
+ # test_dir.rb
3
3
  #
4
- # Test suite for the win32-dir package. Note that some of these tests
5
- # may fail, because some constants are simply not defined, depending on
6
- # your operating system and version of certain DLL files.
7
- #
8
- # You should run this test case via the 'rake test' task.
4
+ # Test suite for the win32-dir library. You should run this test case
5
+ # via the 'rake test' task.
9
6
  ###########################################################################
7
+ require 'rubygems'
8
+ gem 'test-unit'
9
+
10
10
  require 'test/unit'
11
11
  require 'win32/dir'
12
12
  require 'fileutils'
13
13
 
14
- puts "Some tests may fail because some constants aren't defined on your system."
15
- puts "This is not unexpected."
16
-
17
14
  class TC_Win32_Dir < Test::Unit::TestCase
15
+ def self.startup
16
+ Dir.chdir('test') unless File.basename(Dir.pwd) == 'test'
17
+ @@from = File.join(Dir.pwd, "test_from_directory")
18
+ end
19
+
18
20
  def setup
19
- @from = "from"
20
- @ascii_to = "to"
21
+ @ascii_to = "test_to_directory"
21
22
  @unicode_to = "Ελλάσ" # Greek - the word is 'Hellas'
22
- Dir.mkdir(@from)
23
+ @test_file = File.join(@@from, "test.txt")
24
+ Dir.mkdir(@@from)
23
25
  end
24
26
 
25
27
  def test_version
26
- assert_equal('0.3.2', Dir::VERSION)
28
+ assert_equal('0.3.3', Dir::VERSION)
27
29
  end
28
30
 
29
- def test_create_junction
31
+ def test_create_junction_basic
30
32
  assert_respond_to(Dir, :create_junction)
31
- assert_nothing_raised{ Dir.create_junction(@ascii_to, @from) }
32
- assert_nothing_raised{ Dir.create_junction(@unicode_to, @from) }
33
-
34
- # If we've gotten this far, make sure files created in the @from
35
- # directory show up in the linked directories.
36
- File.open(@from + "\\test.txt", "w+"){ |f| f.puts "Hello World" }
37
-
38
- assert_equal(Dir.entries(@from), Dir.entries(@ascii_to))
39
- assert_equal(Dir.entries(@from), Dir.entries(@unicode_to))
33
+ end
34
+
35
+ def test_create_junction_ascii
36
+ assert_nothing_raised{ Dir.create_junction(@ascii_to, @@from) }
37
+ File.open(@test_file, 'w'){ |fh| fh.puts "Hello World" }
38
+ assert_equal(Dir.entries(@@from), Dir.entries(@ascii_to))
39
+ end
40
+
41
+ def test_create_junction_unicode
42
+ assert_nothing_raised{ Dir.create_junction(@unicode_to, @@from) }
43
+ File.open(@test_file, 'w'){ |fh| fh.puts "Hello World" }
44
+ assert_equal(Dir.entries(@@from), Dir.entries(@unicode_to))
40
45
  end
41
46
 
42
47
  def test_is_junction
43
48
  assert_respond_to(Dir, :junction?)
44
- assert_respond_to(Dir, :reparse_dir?) # alias
45
- assert_nothing_raised{ Dir.junction?(@from) }
46
- assert_nothing_raised{ Dir.create_junction(@ascii_to, @from) }
47
-
48
- assert_equal(false, Dir.junction?(@from))
49
+ assert_nothing_raised{ Dir.create_junction(@ascii_to, @@from) }
50
+ assert_equal(false, Dir.junction?(@@from))
49
51
  assert_equal(true, Dir.junction?(@ascii_to))
50
52
  end
53
+
54
+ def test_reparse_dir_alias
55
+ assert_respond_to(Dir, :reparse_dir?) # alias
56
+ assert_equal(true, Dir.method(:reparse_dir?) == Dir.method(:junction?))
57
+ end
51
58
 
52
59
  def test_is_empty
53
60
  assert_respond_to(Dir, :empty?)
54
- assert_equal(false, Dir.empty?("C:\\")) # One would hope
55
- assert_equal(true, Dir.empty?(@from))
61
+ assert_equal(false, Dir.empty?("C:\\")) # One would think
62
+ assert_equal(true, Dir.empty?(@@from))
56
63
  end
57
64
 
58
65
  def test_admintools
59
- assert_not_nil(Dir::ADMINTOOLS, "+IGNORE+")
66
+ assert_not_nil(Dir::ADMINTOOLS)
60
67
  assert_kind_of(String, Dir::ADMINTOOLS)
61
68
  end
62
69
 
63
70
  def test_altstartup
64
- assert_not_nil(Dir::ALTSTARTUP, "+IGNORE+")
71
+ assert_not_nil(Dir::ALTSTARTUP)
65
72
  assert_kind_of(String, Dir::ALTSTARTUP)
66
73
  end
67
74
 
68
75
  def test_appdata
69
- assert_not_nil(Dir::APPDATA, "+IGNORE+")
76
+ assert_not_nil(Dir::APPDATA)
70
77
  assert_kind_of(String, Dir::APPDATA)
71
78
  end
72
79
 
73
80
  def test_bitbucket
74
- assert_not_nil(Dir::BITBUCKET, "+IGNORE+")
81
+ assert_not_nil(Dir::BITBUCKET)
75
82
  assert_kind_of(String, Dir::BITBUCKET)
76
83
  end
77
84
 
78
85
  def test_cdburn_area
79
- assert_not_nil(Dir::CDBURN_AREA, "+IGNORE+")
86
+ assert_not_nil(Dir::CDBURN_AREA)
80
87
  assert_kind_of(String, Dir::CDBURN_AREA)
81
88
  end
82
89
 
83
90
  def test_common_admintools
84
- assert_not_nil(Dir::COMMON_ADMINTOOLS, "+IGNORE+")
91
+ assert_not_nil(Dir::COMMON_ADMINTOOLS)
85
92
  assert_kind_of(String, Dir::COMMON_ADMINTOOLS)
86
93
  end
87
94
 
88
95
  def test_common_altstartup
89
- assert_not_nil(Dir::COMMON_ALTSTARTUP, "+IGNORE+")
96
+ assert_not_nil(Dir::COMMON_ALTSTARTUP)
90
97
  assert_kind_of(String, Dir::COMMON_ALTSTARTUP)
91
98
  end
92
99
 
93
100
  def test_common_appdata
94
- assert_not_nil(Dir::COMMON_APPDATA, "+IGNORE+")
101
+ assert_not_nil(Dir::COMMON_APPDATA)
95
102
  assert_kind_of(String, Dir::COMMON_APPDATA)
96
103
  end
97
104
 
98
105
  def test_common_desktopdirectory
99
- assert_not_nil(Dir::COMMON_DESKTOPDIRECTORY, "+IGNORE+")
106
+ assert_not_nil(Dir::COMMON_DESKTOPDIRECTORY)
100
107
  assert_kind_of(String, Dir::COMMON_DESKTOPDIRECTORY)
101
108
  end
102
109
 
103
110
  def test_common_documents
104
- assert_not_nil(Dir::COMMON_DOCUMENTS, "+IGNORE+")
111
+ assert_not_nil(Dir::COMMON_DOCUMENTS)
105
112
  assert_kind_of(String, Dir::COMMON_DOCUMENTS)
106
113
  end
107
114
 
108
115
  def test_common_favorites
109
- assert_not_nil(Dir::COMMON_FAVORITES, "+IGNORE+")
116
+ assert_not_nil(Dir::COMMON_FAVORITES)
110
117
  assert_kind_of(String, Dir::COMMON_FAVORITES)
111
118
  end
112
119
 
113
120
  def test_common_music
114
- assert_not_nil(Dir::COMMON_MUSIC, "+IGNORE+")
121
+ assert_not_nil(Dir::COMMON_MUSIC)
115
122
  assert_kind_of(String, Dir::COMMON_MUSIC)
116
123
  end
117
124
 
118
125
  def test_common_pictures
119
- assert_not_nil(Dir::COMMON_PICTURES, "+IGNORE+")
126
+ assert_not_nil(Dir::COMMON_PICTURES)
120
127
  assert_kind_of(String, Dir::COMMON_PICTURES)
121
128
  end
122
129
 
123
130
  def test_common_programs
124
- assert_not_nil(Dir::COMMON_PROGRAMS, "+IGNORE+")
131
+ assert_not_nil(Dir::COMMON_PROGRAMS)
125
132
  assert_kind_of(String, Dir::COMMON_PROGRAMS)
126
133
  end
127
134
 
128
135
  def test_common_startmenu
129
- assert_not_nil(Dir::COMMON_STARTMENU, "+IGNORE+")
136
+ assert_not_nil(Dir::COMMON_STARTMENU)
130
137
  assert_kind_of(String, Dir::COMMON_STARTMENU)
131
138
  end
132
139
 
133
140
  def test_common_startup
134
- assert_not_nil(Dir::COMMON_STARTUP, "+IGNORE+")
141
+ assert_not_nil(Dir::COMMON_STARTUP)
135
142
  assert_kind_of(String, Dir::COMMON_STARTUP)
136
143
  end
137
144
 
138
145
  def test_common_templates
139
- assert_not_nil(Dir::COMMON_TEMPLATES, "+IGNORE+")
146
+ assert_not_nil(Dir::COMMON_TEMPLATES)
140
147
  assert_kind_of(String, Dir::COMMON_TEMPLATES)
141
148
  end
142
149
 
143
150
  def test_common_video
144
- assert_not_nil(Dir::COMMON_VIDEO, "+IGNORE+")
151
+ assert_not_nil(Dir::COMMON_VIDEO)
145
152
  assert_kind_of(String, Dir::COMMON_VIDEO)
146
153
  end
147
154
 
148
155
  def test_controls
149
- assert_not_nil(Dir::CONTROLS, "+IGNORE+")
156
+ assert_not_nil(Dir::CONTROLS)
150
157
  assert_kind_of(String, Dir::CONTROLS)
151
158
  end
152
159
 
153
160
  def test_cookies
154
- assert_not_nil(Dir::COOKIES, "+IGNORE+")
161
+ assert_not_nil(Dir::COOKIES)
155
162
  assert_kind_of(String, Dir::COOKIES)
156
163
  end
157
164
 
158
165
  def test_desktop
159
- assert_not_nil(Dir::DESKTOP, "+IGNORE+")
166
+ assert_not_nil(Dir::DESKTOP)
160
167
  assert_kind_of(String, Dir::DESKTOP)
161
168
  end
162
169
 
163
170
  def test_desktopdirectory
164
- assert_not_nil(Dir::DESKTOPDIRECTORY, "+IGNORE+")
171
+ assert_not_nil(Dir::DESKTOPDIRECTORY)
165
172
  assert_kind_of(String, Dir::DESKTOPDIRECTORY)
166
173
  end
167
174
 
168
175
  def test_drives
169
- assert_not_nil(Dir::DRIVES, "+IGNORE+")
176
+ assert_not_nil(Dir::DRIVES)
170
177
  assert_kind_of(String, Dir::DRIVES)
171
178
  end
172
179
 
173
180
  def test_favorites
174
- assert_not_nil(Dir::FAVORITES, "+IGNORE+")
181
+ assert_not_nil(Dir::FAVORITES)
175
182
  assert_kind_of(String, Dir::FAVORITES)
176
183
  end
177
184
 
178
185
  def test_fonts
179
- assert_not_nil(Dir::FONTS, "+IGNORE+")
186
+ assert_not_nil(Dir::FONTS)
180
187
  assert_kind_of(String, Dir::FONTS)
181
188
  end
182
189
 
183
190
  def test_history
184
- assert_not_nil(Dir::HISTORY, "+IGNORE+")
191
+ assert_not_nil(Dir::HISTORY)
185
192
  assert_kind_of(String, Dir::HISTORY)
186
193
  end
187
194
 
188
195
  def test_internet
189
- assert_not_nil(Dir::INTERNET, "+IGNORE+")
196
+ assert_not_nil(Dir::INTERNET)
190
197
  assert_kind_of(String, Dir::INTERNET)
191
198
  end
192
199
 
193
200
  def test_internet_cache
194
- assert_not_nil(Dir::INTERNET_CACHE, "+IGNORE+")
201
+ assert_not_nil(Dir::INTERNET_CACHE)
195
202
  assert_kind_of(String, Dir::INTERNET_CACHE)
196
203
  end
197
204
 
198
205
  def test_local_appdata
199
- assert_not_nil(Dir::LOCAL_APPDATA, "+IGNORE+")
206
+ assert_not_nil(Dir::LOCAL_APPDATA)
200
207
  assert_kind_of(String, Dir::LOCAL_APPDATA)
201
208
  end
202
209
 
203
210
  def test_mydocuments
204
- assert_not_nil(Dir::MYDOCUMENTS, "+IGNORE+")
211
+ assert_not_nil(Dir::MYDOCUMENTS)
205
212
  assert_kind_of(String, Dir::MYDOCUMENTS)
206
213
  end
207
214
 
208
215
  def test_local_mymusic
209
- assert_not_nil(Dir::MYMUSIC, "+IGNORE+")
216
+ assert_not_nil(Dir::MYMUSIC)
210
217
  assert_kind_of(String, Dir::MYMUSIC)
211
218
  end
212
219
 
213
220
  def test_local_mypictures
214
- assert_not_nil(Dir::MYPICTURES, "+IGNORE+")
221
+ assert_not_nil(Dir::MYPICTURES)
215
222
  assert_kind_of(String, Dir::MYPICTURES)
216
223
  end
217
224
 
218
225
  def test_local_myvideo
219
- assert_not_nil(Dir::MYVIDEO, "+IGNORE+")
226
+ assert_not_nil(Dir::MYVIDEO)
220
227
  assert_kind_of(String, Dir::MYVIDEO)
221
228
  end
222
229
 
223
230
  def test_nethood
224
- assert_not_nil(Dir::NETHOOD, "+IGNORE+")
231
+ assert_not_nil(Dir::NETHOOD)
225
232
  assert_kind_of(String, Dir::NETHOOD)
226
233
  end
227
234
 
228
235
  def test_network
229
- assert_not_nil(Dir::NETWORK, "+IGNORE+")
236
+ assert_not_nil(Dir::NETWORK)
230
237
  assert_kind_of(String, Dir::NETWORK)
231
238
  end
232
239
 
233
240
  def test_personal
234
- assert_not_nil(Dir::PERSONAL, "+IGNORE+")
241
+ assert_not_nil(Dir::PERSONAL)
235
242
  assert_kind_of(String, Dir::PERSONAL)
236
243
  end
237
244
 
238
245
  def test_printers
239
- assert_not_nil(Dir::PRINTERS, "+IGNORE+")
246
+ assert_not_nil(Dir::PRINTERS)
240
247
  assert_kind_of(String, Dir::PRINTERS)
241
248
  end
242
249
 
243
250
  def test_printhood
244
- assert_not_nil(Dir::PRINTHOOD, "+IGNORE+")
251
+ assert_not_nil(Dir::PRINTHOOD)
245
252
  assert_kind_of(String, Dir::PRINTHOOD)
246
253
  end
247
254
 
248
255
  def test_profile
249
- assert_not_nil(Dir::PROFILE, "+IGNORE+")
256
+ assert_not_nil(Dir::PROFILE)
250
257
  assert_kind_of(String, Dir::PROFILE)
251
258
  end
252
259
 
@@ -257,58 +264,58 @@ class TC_Win32_Dir < Test::Unit::TestCase
257
264
  #end
258
265
 
259
266
  def test_program_files
260
- assert_not_nil(Dir::PROGRAM_FILES, "+IGNORE+")
267
+ assert_not_nil(Dir::PROGRAM_FILES)
261
268
  assert_kind_of(String, Dir::PROGRAM_FILES)
262
269
  end
263
270
 
264
271
  def test_program_files_common
265
- assert_not_nil(Dir::PROGRAM_FILES_COMMON, "+IGNORE+")
272
+ assert_not_nil(Dir::PROGRAM_FILES_COMMON)
266
273
  assert_kind_of(String, Dir::PROGRAM_FILES_COMMON)
267
274
  end
268
275
 
269
276
  def test_programs
270
- assert_not_nil(Dir::PROGRAMS, "+IGNORE+")
277
+ assert_not_nil(Dir::PROGRAMS)
271
278
  assert_kind_of(String, Dir::PROGRAMS)
272
279
  end
273
280
 
274
281
  def test_recent
275
- assert_not_nil(Dir::RECENT, "+IGNORE+")
282
+ assert_not_nil(Dir::RECENT)
276
283
  assert_kind_of(String, Dir::RECENT)
277
284
  end
278
285
 
279
286
  def test_sendto
280
- assert_not_nil(Dir::SENDTO, "+IGNORE+")
287
+ assert_not_nil(Dir::SENDTO)
281
288
  assert_kind_of(String, Dir::SENDTO)
282
289
  end
283
290
 
284
291
  def test_startmenu
285
- assert_not_nil(Dir::STARTMENU, "+IGNORE+")
292
+ assert_not_nil(Dir::STARTMENU)
286
293
  assert_kind_of(String, Dir::STARTMENU)
287
294
  end
288
295
 
289
296
  def test_startup
290
- assert_not_nil(Dir::STARTUP, "+IGNORE+")
297
+ assert_not_nil(Dir::STARTUP)
291
298
  assert_kind_of(String, Dir::STARTUP)
292
299
  end
293
300
 
294
301
  def test_system
295
- assert_not_nil(Dir::SYSTEM, "+IGNORE+")
302
+ assert_not_nil(Dir::SYSTEM)
296
303
  assert_kind_of(String, Dir::SYSTEM)
297
304
  end
298
305
 
299
306
  def test_templates
300
- assert_not_nil(Dir::TEMPLATES, "+IGNORE+")
307
+ assert_not_nil(Dir::TEMPLATES)
301
308
  assert_kind_of(String, Dir::TEMPLATES)
302
309
  end
303
310
 
304
311
  def test_windows_dir
305
- assert_not_nil(Dir::WINDOWS, "+IGNORE+")
312
+ assert_not_nil(Dir::WINDOWS)
306
313
  assert_kind_of(String, Dir::WINDOWS)
307
314
  end
308
315
 
309
316
  def teardown
310
317
  FileUtils.rm_rf(@ascii_to)
311
318
  FileUtils.rm_rf(@unicode_to)
312
- FileUtils.rm_rf(@from)
319
+ FileUtils.rm_rf(@@from)
313
320
  end
314
321
  end
data/win32-dir.gemspec CHANGED
@@ -2,23 +2,24 @@ require "rubygems"
2
2
 
3
3
  spec = Gem::Specification.new do |gem|
4
4
  gem.name = "win32-dir"
5
- gem.version = "0.3.2"
6
- gem.author = "Daniel J. Berger"
5
+ gem.version = "0.3.3"
6
+ gem.authors = ["Daniel J. Berger", "Park Heesob"]
7
7
  gem.email = "djberg96@gmail.com"
8
8
  gem.homepage = "http://www.rubyforge.org/projects/win32utils"
9
9
  gem.platform = Gem::Platform::RUBY
10
10
  gem.summary = "Extra constants and methods for the Dir class on Windows."
11
11
  gem.description = "Extra constants and methods for the Dir class on Windows."
12
- gem.test_file = "test/tc_dir.rb"
12
+ gem.test_file = "test/test_dir.rb"
13
13
  gem.has_rdoc = true
14
14
  gem.files = Dir["lib/win32/*.rb"] + Dir["test/*"] + Dir["[A-Z]*"]
15
15
  gem.files.reject! { |fn| fn.include? "CVS" }
16
16
  gem.require_path = "lib"
17
17
  gem.extra_rdoc_files = ['README', 'CHANGES', 'MANIFEST']
18
- gem.add_dependency("windows-pr", ">= 0.5.1")
18
+ gem.add_dependency("windows-pr", ">= 0.9.3")
19
+ gem.rubyforge_project = "win32utils"
19
20
  end
20
21
 
21
22
  if $0 == __FILE__
22
- Gem.manage_gems
23
+ Gem.manage_gems if Gem::RubyGemsVersion.to_f < 1.0
23
24
  Gem::Builder.new(spec).build
24
25
  end
metadata CHANGED
@@ -1,39 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.2
3
- specification_version: 1
4
2
  name: win32-dir
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.3.2
7
- date: 2007-07-25 00:00:00 -06:00
8
- summary: Extra constants and methods for the Dir class on Windows.
9
- require_paths:
10
- - lib
11
- email: djberg96@gmail.com
12
- homepage: http://www.rubyforge.org/projects/win32utils
13
- rubyforge_project:
14
- description: Extra constants and methods for the Dir class on Windows.
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 0.3.3
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Daniel J. Berger
8
+ - Park Heesob
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-03-30 00:00:00 -06:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: windows-pr
18
+ type: :runtime
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 0.9.3
25
+ version:
26
+ description: Extra constants and methods for the Dir class on Windows.
27
+ email: djberg96@gmail.com
28
+ executables: []
29
+
30
+ extensions: []
31
+
32
+ extra_rdoc_files:
33
+ - README
34
+ - CHANGES
35
+ - MANIFEST
31
36
  files:
32
37
  - lib/win32/dir.rb
33
- - test/CVS
34
- - test/tc_dir.rb
38
+ - test/test_dir.rb
35
39
  - CHANGES
36
- - CVS
37
40
  - examples
38
41
  - lib
39
42
  - MANIFEST
@@ -41,27 +44,31 @@ files:
41
44
  - README
42
45
  - test
43
46
  - win32-dir.gemspec
44
- test_files:
45
- - test/tc_dir.rb
47
+ has_rdoc: true
48
+ homepage: http://www.rubyforge.org/projects/win32utils
49
+ post_install_message:
46
50
  rdoc_options: []
47
51
 
48
- extra_rdoc_files:
49
- - README
50
- - CHANGES
51
- - MANIFEST
52
- executables: []
53
-
54
- extensions: []
55
-
52
+ require_paths:
53
+ - lib
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: "0"
59
+ version:
60
+ required_rubygems_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: "0"
65
+ version:
56
66
  requirements: []
57
67
 
58
- dependencies:
59
- - !ruby/object:Gem::Dependency
60
- name: windows-pr
61
- version_requirement:
62
- version_requirements: !ruby/object:Gem::Version::Requirement
63
- requirements:
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 0.5.1
67
- version:
68
+ rubyforge_project: win32utils
69
+ rubygems_version: 1.3.1
70
+ signing_key:
71
+ specification_version: 2
72
+ summary: Extra constants and methods for the Dir class on Windows.
73
+ test_files:
74
+ - test/test_dir.rb