win32-dir 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,8 @@
1
+ == 0.3.7 - 18-Jul-2010
2
+ * Modified Dir.glob and Dir[] to handle backslashes in path names.
3
+ * Added tests for the modified Dir.glob and Dir[] behavior.
4
+ * Removed the old non-gem install Rake task.
5
+
1
6
  == 0.3.6 - 6-Feb-2010
2
7
  * Bug fixes for Ruby 1.9.x. Thanks go to Kendall Gifford for the spot and
3
8
  the patch.
data/Rakefile CHANGED
@@ -1,22 +1,15 @@
1
1
  require 'rake'
2
2
  require 'rake/testtask'
3
3
 
4
- desc "Install the win32-dir package (non-gem)"
5
- task :install do
6
- dest = File.join(Config::CONFIG['sitelibdir'], 'win32')
7
- Dir.mkdir(dest) unless File.exists? dest
8
- cp 'lib/win32/dir.rb', dest, :verbose => true
9
- end
10
-
11
4
  namespace 'gem' do
12
- desc "Build the gem"
5
+ desc "Create the win32-dir gem"
13
6
  task :build do
14
7
  Dir["*.gem"].each{ |f| File.delete(f) }
15
8
  spec = eval(IO.read('win32-dir.gemspec'))
16
9
  Gem::Builder.new(spec).build
17
10
  end
18
11
 
19
- desc "Install the win32-dir package as a gem"
12
+ desc "Install the win32-dir gem"
20
13
  task :install => [:build] do
21
14
  file = Dir["*.gem"].first
22
15
  sh "gem install #{file}"
data/lib/win32/dir.rb CHANGED
@@ -30,7 +30,7 @@ class Dir
30
30
  extend Windows::SystemInfo
31
31
 
32
32
  # The version of the win32-dir library.
33
- VERSION = '0.3.6'
33
+ VERSION = '0.3.7'
34
34
 
35
35
  # Dynamically set each of the CSIDL_ constants
36
36
  constants.grep(/CSIDL/).each{ |constant|
@@ -67,6 +67,26 @@ class Dir
67
67
  class << self
68
68
  remove_method :getwd
69
69
  remove_method :pwd
70
+ alias :old_glob :glob
71
+ alias :old_ref :[]
72
+ remove_method :glob
73
+ remove_method :[]
74
+ end
75
+
76
+ # Same as the standard MRI Dir.glob method except that it handles
77
+ # backslashes in path names.
78
+ #
79
+ def self.glob(glob_pattern, flags = 0, &block)
80
+ glob_pattern = glob_pattern.tr("\\", "/")
81
+ old_glob(glob_pattern, flags, &block)
82
+ end
83
+
84
+ # Same as the standard MRI Dir[] method except that it handles
85
+ # backslashes in path names.
86
+ #
87
+ def self.[](glob_pattern)
88
+ glob_pattern = glob_pattern.tr("\\", "/")
89
+ old_ref(glob_pattern)
70
90
  end
71
91
 
72
92
  # Returns the present working directory. Unlike MRI, this method always
@@ -28,7 +28,30 @@ class TC_Win32_Dir < Test::Unit::TestCase
28
28
  end
29
29
 
30
30
  def test_version
31
- assert_equal('0.3.6', Dir::VERSION)
31
+ assert_equal('0.3.7', Dir::VERSION)
32
+ end
33
+
34
+ test 'glob handles backslashes' do
35
+ pattern = "C:\\Program Files\\Common Files\\System\\*.dll"
36
+ assert_nothing_raised{ Dir.glob(pattern) }
37
+ assert_true(Dir.glob(pattern).size > 0)
38
+ end
39
+
40
+ test 'glob still observes flags' do
41
+ assert_nothing_raised{ Dir.glob('*', File::FNM_DOTMATCH ) }
42
+ assert_true(Dir.glob('*', File::FNM_DOTMATCH).include?('.'))
43
+ end
44
+
45
+ test 'glob still honors block' do
46
+ array = []
47
+ assert_nothing_raised{ Dir.glob('*', File::FNM_DOTMATCH ){ |m| array << m } }
48
+ assert_true(array.include?('.'))
49
+ end
50
+
51
+ test 'ref handles backslashes' do
52
+ pattern = "C:\\Program Files\\Common Files\\System\\*.dll"
53
+ assert_nothing_raised{ Dir[pattern] }
54
+ assert_true(Dir[pattern].size > 0)
32
55
  end
33
56
 
34
57
  def test_create_junction_basic
data/win32-dir.gemspec CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'win32-dir'
5
- spec.version = '0.3.6'
5
+ spec.version = '0.3.7'
6
6
  spec.authors = ['Daniel J. Berger', 'Park Heesob']
7
7
  spec.license = 'Artistic 2.0'
8
8
  spec.email = 'djberg96@gmail.com'
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: win32-dir
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 3
8
+ - 7
9
+ version: 0.3.7
5
10
  platform: ruby
6
11
  authors:
7
12
  - Daniel J. Berger
@@ -10,29 +15,37 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2010-02-06 00:00:00 -07:00
18
+ date: 2010-07-19 00:00:00 -07:00
14
19
  default_executable:
15
20
  dependencies:
16
21
  - !ruby/object:Gem::Dependency
17
22
  name: windows-pr
18
- type: :runtime
19
- version_requirement:
20
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
21
25
  requirements:
22
26
  - - ">="
23
27
  - !ruby/object:Gem::Version
28
+ segments:
29
+ - 1
30
+ - 0
31
+ - 9
24
32
  version: 1.0.9
25
- version:
33
+ type: :runtime
34
+ version_requirements: *id001
26
35
  - !ruby/object:Gem::Dependency
27
36
  name: test-unit
28
- type: :development
29
- version_requirement:
30
- version_requirements: !ruby/object:Gem::Requirement
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
31
39
  requirements:
32
40
  - - ">="
33
41
  - !ruby/object:Gem::Version
42
+ segments:
43
+ - 2
44
+ - 0
45
+ - 6
34
46
  version: 2.0.6
35
- version:
47
+ type: :development
48
+ version_requirements: *id002
36
49
  description: " The win32-dir library provides extra methods and constants for the\n builtin Dir class. The constants provide a convenient way to identify\n certain directories across all versions of Windows. Some methods have\n been added, such as the ability to create junctions. Others have been\n modified to provide a more consistent result for MS Windows.\n"
37
50
  email: djberg96@gmail.com
38
51
  executables: []
@@ -65,18 +78,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
65
78
  requirements:
66
79
  - - ">="
67
80
  - !ruby/object:Gem::Version
81
+ segments:
82
+ - 0
68
83
  version: "0"
69
- version:
70
84
  required_rubygems_version: !ruby/object:Gem::Requirement
71
85
  requirements:
72
86
  - - ">="
73
87
  - !ruby/object:Gem::Version
88
+ segments:
89
+ - 0
74
90
  version: "0"
75
- version:
76
91
  requirements: []
77
92
 
78
93
  rubyforge_project: win32utils
79
- rubygems_version: 1.3.5
94
+ rubygems_version: 1.3.6
80
95
  signing_key:
81
96
  specification_version: 3
82
97
  summary: Extra constants and methods for the Dir class on Windows.