win32-dir 0.3.6 → 0.3.7

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