win32-dir 0.3.2 → 0.3.3

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 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