pathname2 1.5.2 → 1.6.0

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,11 +1,24 @@
1
+ == 1.6.0 - 13-July-2008
2
+ * The facade for ftools (and ftools itself) has been removed. The ftools
3
+ library is deprecated in favor of FileUtils.
4
+ * PathnameError is now Pathname::Error.
5
+ * Bug fix for Pathname#relative_path_from for MS Windows. Thanks go to an
6
+ anonymous user for the spot.
7
+ * Fixed a bug where frozen strings would raise an error on MS Windows.
8
+ * The code is now -w clean.
9
+ * Removed the C version as part of the release because it was just too
10
+ difficult to maintain both versions. The C code remains in CVS, however.
11
+ * Changed platform checking to use rbconfig instead of RUBY_PLATFORM to avoid
12
+ potential issues with other Ruby implementation.
13
+
1
14
  == 1.5.2 - 9-Mar-2007
2
15
  * Bug fix for the Pathname#realpath method where it was not handling recursive
3
- symlinks. The C version was also fixed, but it only affected platforms that
4
- don't have the realpath() function.
16
+ symlinks. The C version was also fixed, but it only affected platforms that
17
+ don't have the realpath() function.
5
18
  * Added a test for recursive symlinks (for Solaris, anyway).
6
19
  * Updated the docs for Pathname#realpath.
7
20
  * Minor speed enhancements for the C version and the elimination of one
8
- (potential) segfault.
21
+ (potential) segfault.
9
22
  * Added a 'Future Plans' section to the README.
10
23
  * Added a Rakefile. You can now build, clean, and test and install (both the
11
24
  pure Ruby and C versions).
data/MANIFEST CHANGED
@@ -1,18 +1,11 @@
1
- CHANGES
2
- MANIFEST
3
- Rakefile
4
- README
5
- install.rb
6
- pathname2.gempsec
7
-
8
- examples/bench_all.rb
9
- examples/bench_plus.rb
10
- examples/example_pathname.rb
11
-
12
- ext/extconf.rb
13
- ext/pathname2.c
14
-
15
- lib/pathname2.rb
16
-
17
- test/tc_pathname.rb
18
- test/tc_pathname_win.rb
1
+ * CHANGES
2
+ * MANIFEST
3
+ * Rakefile
4
+ * README
5
+ * pathname2.gempsec
6
+ * examples/bench_all.rb
7
+ * examples/bench_plus.rb
8
+ * examples/example_pathname.rb
9
+ * lib/pathname2.rb
10
+ * test/test_pathname.rb
11
+ * test/test_pathname_windows.rb
data/README CHANGED
@@ -61,8 +61,8 @@
61
61
  a canonical pathname. In addition, there is no special consideration
62
62
  for symlinks (yet), though I'm not sure it warrants it.
63
63
  * The Pathname#+ method auto cleans.
64
- * It uses a facade for all File and Dir methods, as well as all ftools
65
- methods and most FileUtils methods.
64
+ * It uses a facade for all File and Dir methods, as well as most FileUtils
65
+ methods.
66
66
  * Pathname#clean works slightly differently. In the stdlib version,
67
67
  Pathname#clean("../a") returns "../a". In this version, it returns "a".
68
68
  This affects other methods, such as Pathname#relative_path_from.
@@ -70,20 +70,23 @@
70
70
  file:///foo%20bar/baz becomes '/foo bar/baz'.
71
71
  * Adds a Kernel level +pn+ method as a shortcut.
72
72
  * Allows you to add paths together with the '/' operator.
73
+
74
+ == Differences between Unix platforms - C version
75
+ * On BSD systems, including OS X, the Pathname#realpath() method requires
76
+ that all components of a path *except the last* actually exist. Other
77
+ platforms require that the *entire* path actually exist. This is the
78
+ way the underlying realpath() C function works on these systems.
73
79
 
74
80
  == Method Priority
75
- Because there is some overlap in method names between File, Dir, ftools
76
- and FileUtils, the priority is as follows:
81
+ Because there is some overlap in method names between File, Dir, and
82
+ FileUtils, the priority is as follows:
77
83
 
78
84
  * File
79
85
  * Dir
80
- * ftools
81
86
  * FileUtils
82
87
 
83
88
  In other words, whichever of these defines a given method first is the
84
- method that is used by the pathname2 package. For example, the
85
- Pathname#safe_unlink method used is the one defined in ftools.rb,
86
- not the one defined in the FileUtils module.
89
+ method that is used by the pathname2 package.
87
90
 
88
91
  == Known Issues
89
92
  You cannot pass a frozen string to the constructor on Windows using the
@@ -98,9 +101,7 @@
98
101
  supposed to be private. See ruby-core:7383.
99
102
 
100
103
  == Future Plans
101
- Because ftools is more or less deprecated, and FileUtils can generally do
102
- everything ftools can do, and better, I'm going to remove ftools in the
103
- 1.6.0 release.
104
+ Suggestions welcome.
104
105
 
105
106
  == License
106
107
  Ruby's
data/Rakefile CHANGED
@@ -2,73 +2,31 @@ require 'rake'
2
2
  require 'rake/clean'
3
3
  require 'rake/testtask'
4
4
 
5
- desc "Clean the build files from the pathname2 source"
6
- task :clean do
7
- Dir.chdir('ext') do
8
- if RUBY_PLATFORM.match('mswin')
9
- sh 'nmake distclean' if File.exists?('pathname2.so')
10
- else
11
- sh 'make distclean' if File.exists?('pathname2.so')
12
- end
13
- end
14
- end
15
-
16
- desc "Build the pathname2 package on UNIX systems (but don't install it)"
17
- task :build => [:clean] do
18
- Dir.chdir('ext') do
19
- ruby 'extconf.rb'
20
- if RUBY_PLATFORM.match('mswin')
21
- sh 'nmake'
22
- else
23
- sh 'make'
24
- end
25
- end
26
- end
27
-
28
- desc "Install the pure Ruby version of the pathname2 package"
5
+ desc "Install pathname2 library (non-gem)"
29
6
  task :install do
30
7
  cp 'lib/pathname2.rb', Config::CONFIG['sitelibdir']
31
8
  end
32
9
 
33
- desc "Install the C version of the pathname2 package"
34
- task :install_c => [:build] do
35
- Dir.chdir('ext') do
36
- if RUBY_PLATFORM.match('mswin')
37
- sh 'nmake install'
38
- else
39
- sh 'make install'
40
- end
41
- end
10
+ desc "Install the pathname2 libarary as a gem"
11
+ task :install_gem do
12
+ ruby 'pathname2.gemspec'
13
+ file = Dir["*.gem"].first
14
+ sh "gem install #{file}"
42
15
  end
43
16
 
44
17
  desc "Run the test suite for the pure Ruby version"
45
18
  Rake::TestTask.new('test') do |t|
46
- t.libs << 'lib'
47
- if RUBY_PLATFORM.match('mswin')
48
- t.test_files = FileList['test/tc_pathname_win.rb']
19
+ t.warning = true
20
+ t.verbose = true
21
+
22
+ if Config::CONFIG['host_os'] =~ /mswin/i
23
+ t.test_files = FileList['test/test_pathname_windows.rb']
49
24
  else
50
- t.test_files = FileList['test/tc_pathname.rb']
25
+ t.test_files = FileList['test/test_pathname.rb']
51
26
  end
52
27
  end
53
28
 
54
- desc "Run the test suite for the C version."
55
- Rake::TestTask.new('test_c') do |t|
56
- task :test_c => :build
57
- t.libs << 'ext'
58
- t.libs.delete('lib')
59
- if RUBY_PLATFORM.match('mswin')
60
- t.test_files = FileList['test/tc_pathname_win.rb']
61
- else
62
- t.test_files = FileList['test/tc_pathname.rb']
63
- end
64
- end
65
-
66
- desc "Run the benchmark suite for the pure Ruby version"
29
+ desc "Run the benchmark suite"
67
30
  task :benchmark do
68
31
  sh 'ruby -Ilib examples/bench_pathname.rb'
69
32
  end
70
-
71
- desc "Run the benchmark suite for the C version"
72
- task :benchmark_c => [:build] do
73
- sh 'ruby -Iext examples/bench_pathname.rb c'
74
- end
data/lib/pathname2.rb CHANGED
@@ -34,36 +34,48 @@
34
34
  # imperator on IRC (irc.freenode.net)
35
35
  #
36
36
  # == Copyright
37
- # Copyright (c) 2005-2006 Daniel J. Berger.
37
+ # Copyright (c) 2005-2008 Daniel J. Berger.
38
38
  # Licensed under the same terms as Ruby itself.
39
39
  #
40
40
  require 'facade'
41
- require 'ftools'
42
41
  require 'fileutils'
42
+ require 'rbconfig'
43
43
 
44
- class PathnameError < StandardError; end
44
+ if Config::CONFIG['host_os'].match('mswin')
45
+ require 'windows/path'
46
+ require 'windows/file'
47
+ require 'windows/error'
48
+ require 'windows/limits'
49
+ end
45
50
 
46
51
  class Pathname < String
52
+ class Error < StandardError; end
47
53
  extend Facade
48
- facade File
49
- facade Dir
54
+
55
+ facade File, File.methods(false) - [
56
+ 'chmod', 'lchmod', 'chown', 'lchown', 'fnmatch', 'fnmatch?', 'link',
57
+ 'open', 'rename', 'symlink', 'truncate', 'utime', 'basename',
58
+ 'expand_path', 'join'
59
+ ]
60
+
61
+ facade Dir, Dir.methods(false) - ['chdir','glob','foreach','mkdir','open']
50
62
 
51
63
  alias :_plus_ :+ # Used to prevent infinite loops in some cases
52
64
 
53
- if RUBY_PLATFORM.match('mswin')
54
- require 'windows/path'
55
- require 'windows/file'
65
+ if Config::CONFIG['host_os'].match('mswin')
56
66
  include Windows::Path
57
67
  include Windows::File
68
+ include Windows::Error
69
+ include Windows::Limits
58
70
  end
59
71
 
60
- VERSION = '1.5.2'
61
- MAX_PATH = 260
72
+ VERSION = '1.6.0'
73
+ MAXPATH = 260
62
74
 
63
75
  # Creates and returns a new Pathname object.
64
76
  #
65
77
  # On platforms that define File::ALT_SEPARATOR, all forward slashes are
66
- # replaced with the value of File::ALT_SEPARATOR. On MS Windows, for
78
+ # replaced with the value of File::ALT_SEPARATOR. On MS Windows, for
67
79
  # example, all forward slashes are replaced with backslashes.
68
80
  #
69
81
  # File URL's will be converted to Pathname objects, e.g. the file URL
@@ -71,25 +83,25 @@ class Pathname < String
71
83
  # 'C:\Documents and Settings'.
72
84
  #
73
85
  def initialize(path)
74
- if path.length > MAX_PATH
75
- msg = "string too long. maximum string length is " + MAX_PATH.to_s
76
- raise PathnameError, msg
86
+ if path.length > MAXPATH
87
+ msg = "string too long. maximum string length is " + MAXPATH.to_s
88
+ raise Error, msg
77
89
  end
78
90
 
79
91
  @sep = File::ALT_SEPARATOR || File::SEPARATOR
80
- @win = RUBY_PLATFORM.match('mswin')
92
+ @win = Config::CONFIG['host_os'].match('mswin')
81
93
 
82
- # Handle File URL's. The separate methods for Windows are necessary
94
+ # Handle File URL's. The separate methods for Windows are necessary
83
95
  # because Ruby's URI class does not (currently) parse absolute file URL's
84
96
  # properly when they include a drive letter.
85
97
  if @win
86
- if PathIsURL(path)
87
- buf = 0.chr * MAX_PATH
98
+ if PathIsURL(path.dup) # Dup to avoid frozen string issues
99
+ buf = 0.chr * MAXPATH
88
100
  len = [buf.length].pack("l")
89
- if PathCreateFromUrl(path, buf, len, 0)
101
+ if PathCreateFromUrl(path, buf, len, 0) == S_OK
90
102
  path = buf.strip
91
103
  else
92
- raise PathnameError, "invalid file url: #{path}"
104
+ raise Error, "invalid file url: #{path}"
93
105
  end
94
106
  end
95
107
  else
@@ -158,7 +170,7 @@ class Pathname < String
158
170
  unless @win
159
171
  raise NotImplementedError, "not supported on this platform"
160
172
  end
161
- buf = 0.chr * MAX_PATH
173
+ buf = 0.chr * MAXPATH
162
174
  buf[0..self.length-1] = self
163
175
  PathUndecorate(buf)
164
176
  self.class.new(buf.split(0.chr).first)
@@ -172,7 +184,7 @@ class Pathname < String
172
184
  unless @win
173
185
  raise NotImplementedError, "not supported on this platform"
174
186
  end
175
- buf = 0.chr * MAX_PATH
187
+ buf = 0.chr * MAXPATH
176
188
  buf[0..self.length-1] = self
177
189
  PathUndecorate(buf)
178
190
  replace(buf.split(0.chr).first)
@@ -188,7 +200,7 @@ class Pathname < String
188
200
  unless @win
189
201
  raise NotImplementedError, "not supported on this platform"
190
202
  end
191
- buf = 0.chr * MAX_PATH
203
+ buf = 0.chr * MAXPATH
192
204
  buf[0..self.length-1] = self
193
205
  GetShortPathName(self, buf, buf.length)
194
206
  self.class.new(buf.split(0.chr).first)
@@ -203,7 +215,7 @@ class Pathname < String
203
215
  unless @win
204
216
  raise NotImplementedError, "not supported on this platform"
205
217
  end
206
- buf = 0.chr * MAX_PATH
218
+ buf = 0.chr * MAXPATH
207
219
  buf[0..self.length-1] = self
208
220
  GetLongPathName(self, buf, buf.length)
209
221
  self.class.new(buf.split(0.chr).first)
@@ -340,7 +352,7 @@ class Pathname < String
340
352
  def root
341
353
  dir = "."
342
354
  if @win
343
- buf = 0.chr * MAX_PATH
355
+ buf = 0.chr * MAXPATH
344
356
  buf[0..self.length-1] = self
345
357
 
346
358
  if PathStripToRoot(buf)
@@ -428,6 +440,10 @@ class Pathname < String
428
440
  # Because of the way the Windows version handles Pathname#clean, we need
429
441
  # a little extra help here.
430
442
  if @win
443
+ if root != base.root
444
+ msg = 'cannot determine relative paths from different root paths'
445
+ raise ArgumentError, msg
446
+ end
431
447
  if base == '..' && (self != '..' || self != '.')
432
448
  raise ArgumentError, "base directory may not contain '..'"
433
449
  end
@@ -481,7 +497,7 @@ class Pathname < String
481
497
 
482
498
  # Use the builtin PathAppend() function if on Windows - much easier
483
499
  if @win
484
- buf = 0.chr * MAX_PATH
500
+ buf = 0.chr * MAXPATH
485
501
  buf[0..self.length-1] = self
486
502
  PathAppend(buf, string)
487
503
  buf = buf.split("\0").first
@@ -526,7 +542,7 @@ class Pathname < String
526
542
  return self if self.empty?
527
543
 
528
544
  if @win
529
- path = 0.chr * MAX_PATH
545
+ path = 0.chr * MAXPATH
530
546
  if PathCanonicalize(path, self)
531
547
  return self.class.new(path.split(0.chr).first)
532
548
  else
@@ -556,7 +572,7 @@ class Pathname < String
556
572
  return self if self.empty?
557
573
 
558
574
  if @win
559
- path = 0.chr * MAX_PATH
575
+ path = 0.chr * MAXPATH
560
576
  if PathCanonicalize(path, self)
561
577
  replace(path.split(0.chr).first)
562
578
  end
@@ -731,13 +747,9 @@ class Pathname < String
731
747
  File.expand_path(self, *args)
732
748
  end
733
749
 
734
- #--
735
- # ftools facade
736
- #++
737
-
738
- # ftools File.copy
739
- def copy(*args)
740
- File.copy(self, *args)
750
+ # File.join
751
+ def join(*args)
752
+ File.join(self, *args)
741
753
  end
742
754
 
743
755
  #--
@@ -806,7 +818,11 @@ class Pathname < String
806
818
  def rm_rf(*args)
807
819
  FileUtils.rm_rf(self, *args)
808
820
  end
809
- alias rmtree rm_rf
821
+
822
+ # FileUtils.rmtree
823
+ def rmtree(*args)
824
+ FileUtils.rmtree(self, *args)
825
+ end
810
826
 
811
827
  # FileUtils.install
812
828
  def install(*args)
@@ -860,10 +876,5 @@ module Kernel
860
876
  end
861
877
 
862
878
  if $0 == __FILE__
863
- path1 = '/dev/fd0'
864
- path2 = 'link2'
865
-
866
- path = Pathname.new(path1)
867
- path = path.realpath
868
- p path
879
+ path = Pathname.new(Dir.pwd)
869
880
  end
@@ -63,7 +63,7 @@ class TC_Pathname < Test::Unit::TestCase
63
63
  end
64
64
 
65
65
  def test_version
66
- assert_equal('1.5.2', Pathname::VERSION)
66
+ assert_equal('1.6.0', Pathname::VERSION)
67
67
  end
68
68
 
69
69
  def test_file_url_path
@@ -73,9 +73,13 @@ class TC_Pathname < Test::Unit::TestCase
73
73
  def test_realpath
74
74
  assert_respond_to(@abs_path, :realpath)
75
75
  assert_equal(@pwd, Pathname.new('.').realpath)
76
- assert_raises(Errno::ENOENT){ Pathname.new('../bogus').realpath }
77
76
  assert_kind_of(Pathname, Pathname.new('/dev/stdin').realpath)
78
77
  assert(Pathname.new('/dev/stdin') != Pathname.new('/dev/stdin').realpath)
78
+ if RUBY_PLATFORM =~ /bsd|darwin|mac/i
79
+ assert_raises(Errno::ENOENT){ Pathname.new('../blahblah/bogus').realpath }
80
+ else
81
+ assert_raises(Errno::ENOENT){ Pathname.new('../bogus').realpath }
82
+ end
79
83
  end
80
84
 
81
85
  def test_realpath_platform
@@ -1,27 +1,11 @@
1
1
  ##########################################################################
2
2
  # tc_pathname_win.rb
3
3
  #
4
- # MS Windows test suite for the Pathname class. To test explicitly
5
- # against the C extension pass the letter 'c' as an argument.
4
+ # MS Windows test suite for the Pathname class. To test explicitly
5
+ # against the C extension pass the letter 'c' as an argument. You should
6
+ # use the 'rake test' task to run this test suite.
6
7
  ###########################################################################
7
- Dir.chdir ".." if File.basename(Dir.pwd) == "test"
8
- $LOAD_PATH.unshift Dir.pwd
9
- $c_extension = false
10
-
11
- # If the user passes a 'c', test against the C extension
12
- if ARGV[0] && ARGV[0].downcase == "c"
13
- $c_extension = true
14
- $LOAD_PATH.unshift Dir.pwd + "/ext"
15
- else
16
- $LOAD_PATH.unshift Dir.pwd + "/lib"
17
- end
18
-
19
- unless RUBY_PLATFORM.match("mswin")
20
- STDERR.puts("Please run 'tc_pathname.rb' instead.")
21
- exit
22
- end
23
-
24
- require 'facade' # Avoids annoying gems issue
8
+ require 'facade'
25
9
  require 'pathname2'
26
10
  require 'test/unit'
27
11
 
@@ -56,7 +40,7 @@ class TC_Pathname_MSWin < Test::Unit::TestCase
56
40
  end
57
41
 
58
42
  def test_version
59
- assert_equal("1.5.1", Pathname::VERSION)
43
+ assert_equal("1.6.0", Pathname::VERSION)
60
44
  end
61
45
 
62
46
  # Convenience method for test_plus
@@ -81,7 +65,7 @@ class TC_Pathname_MSWin < Test::Unit::TestCase
81
65
  end
82
66
 
83
67
  # Convenience method for test_relative_path_from_expected_errors
84
- def assert_relpath_err(to, from)
68
+ def assert_relative_path_error(to, from)
85
69
  assert_raise(ArgumentError) {
86
70
  Pathname.new(to).relative_path_from(from)
87
71
  }
@@ -89,7 +73,7 @@ class TC_Pathname_MSWin < Test::Unit::TestCase
89
73
 
90
74
  def test_file_urls
91
75
  assert_equal("C:\\Documents and Settings", @url_path)
92
- assert_raises(PathnameError){ Pathname.new('http://rubyforge.org') }
76
+ assert_raises(Pathname::Error){ Pathname.new('http://rubyforge.org') }
93
77
  end
94
78
 
95
79
  def test_realpath
@@ -131,11 +115,15 @@ class TC_Pathname_MSWin < Test::Unit::TestCase
131
115
 
132
116
  assert_relpath("a", "a", "b\\..")
133
117
  assert_relpath("b\\c", "b\\c", "b\\..")
118
+ end
134
119
 
135
- assert_relpath_err("c:\\", ".")
136
- assert_relpath_err(".", "c:\\")
137
- assert_relpath_err("a", "..")
138
- assert_relpath_err(".", "..")
120
+ def test_relative_path_from_expected_errors
121
+ assert_relative_path_error("c:\\", ".")
122
+ assert_relative_path_error(".", "c:\\")
123
+ assert_relative_path_error("a", "..")
124
+ assert_relative_path_error(".", "..")
125
+ assert_relative_path_error("C:\\Temp", "D:\\Temp")
126
+ assert_relative_path_error("\\\\Server\\Temp", "D:\\Temp")
139
127
  end
140
128
 
141
129
  # Convenience method to verify that the receiver was not modified
@@ -332,14 +320,11 @@ class TC_Pathname_MSWin < Test::Unit::TestCase
332
320
  assert_non_destructive
333
321
  end
334
322
 
335
- # Fails due to PathIsURL for some reason in pure Ruby
336
323
  def test_immutability
337
- if $c_extension
338
- path = "C:\\Program Files\\foo\\bar".freeze
339
- assert_equal(true, path.frozen?)
340
- assert_nothing_raised{ Pathname.new(path) }
341
- assert_nothing_raised{ Pathname.new(path).root }
342
- end
324
+ path = "C:\\Program Files\\foo\\bar".freeze
325
+ assert_equal(true, path.frozen?)
326
+ assert_nothing_raised{ Pathname.new(path) }
327
+ assert_nothing_raised{ Pathname.new(path).root }
343
328
  end
344
329
 
345
330
  def test_plus_operator
@@ -544,7 +529,6 @@ class TC_Pathname_MSWin < Test::Unit::TestCase
544
529
  File.methods(false).each{ |method|
545
530
  assert_respond_to(@fpath, method.to_sym)
546
531
  }
547
- assert_respond_to(@fpath, :catname) # ftools check
548
532
  end
549
533
 
550
534
  def test_facade_dir
@@ -586,32 +570,34 @@ class TC_Pathname_MSWin < Test::Unit::TestCase
586
570
  children.delete_if{ |e| File.basename(e) == "CVS" }
587
571
  children.delete_if{ |e| File.basename(e) == ".cvsignore" }
588
572
  children.delete_if{ |e| File.basename(e) == ".project" }
573
+ children.delete_if{ |e| File.basename(e) == ".loadpath" }
589
574
 
590
575
  assert_equal(
591
576
  [
592
577
  Dir.pwd + "/CHANGES",
593
578
  Dir.pwd + "/examples",
594
579
  Dir.pwd + "/ext",
595
- Dir.pwd + "/install.rb",
596
580
  Dir.pwd + "/lib",
597
581
  Dir.pwd + "/MANIFEST",
598
582
  Dir.pwd + "/pathname2.gemspec",
583
+ Dir.pwd + "/Rakefile",
599
584
  Dir.pwd + "/README",
600
585
  Dir.pwd + "/test"
601
- ].map{ |e| e.tr("/","\\") },
586
+ ].map{ |e| e.tr("/", "\\") },
602
587
  children
603
588
  )
604
-
589
+
605
590
  # Delete Eclipse related files
606
591
  children = @cur_path.children(false)
607
592
  children.delete("CVS")
608
593
  children.delete(".cvsignore")
609
594
  children.delete(".project")
595
+ children.delete(".loadpath")
610
596
 
611
597
  assert_equal(
612
598
  [
613
599
  "CHANGES","examples","ext","install.rb","lib",
614
- "MANIFEST", "pathname2.gemspec", "README", "test"
600
+ "MANIFEST", "pathname2.gemspec", "Rakefile", "README", "test"
615
601
  ],
616
602
  children
617
603
  )
metadata CHANGED
@@ -1,61 +1,72 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
3
- specification_version: 1
4
2
  name: pathname2
5
3
  version: !ruby/object:Gem::Version
6
- version: 1.5.2
7
- date: 2007-03-09 00:00:00 -07:00
8
- summary: An alternate implementation of the Pathname class
9
- require_paths:
10
- - lib
11
- email: djberg96@gmail.com
12
- homepage: http://www.rubyforge.org/projects/shards
13
- rubyforge_project:
14
- description: An alternate implementation of the Pathname class
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: 1.6.0
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Daniel J. Berger
31
- files:
32
- - lib/pathname2.rb
33
- - CHANGES
34
- - MANIFEST
35
- - README
36
- - Rakefile
37
- - test/tc_pathname.rb
38
- - test/tc_pathname_win.rb
39
- test_files:
40
- - test/tc_pathname.rb
41
- rdoc_options: []
42
-
43
- extra_rdoc_files:
44
- - README
45
- - CHANGES
46
- executables: []
47
-
48
- extensions: []
49
-
50
- requirements: []
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
51
11
 
12
+ date: 2008-07-15 00:00:00 -06:00
13
+ default_executable:
52
14
  dependencies:
53
15
  - !ruby/object:Gem::Dependency
54
16
  name: facade
17
+ type: :runtime
55
18
  version_requirement:
56
- version_requirements: !ruby/object:Gem::Version::Requirement
19
+ version_requirements: !ruby/object:Gem::Requirement
57
20
  requirements:
58
21
  - - ">="
59
22
  - !ruby/object:Gem::Version
60
23
  version: 1.0.0
61
24
  version:
25
+ description: An alternate implementation of the Pathname class
26
+ email: djberg96@gmail.com
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - README
33
+ - CHANGES
34
+ - MANIFEST
35
+ files:
36
+ - lib/pathname2.rb
37
+ - CHANGES
38
+ - MANIFEST
39
+ - README
40
+ - Rakefile
41
+ - CVS
42
+ - test/test_pathname.rb
43
+ - test/test_pathname_windows.rb
44
+ - test/CVS
45
+ has_rdoc: true
46
+ homepage: http://www.rubyforge.org/projects/shards
47
+ post_install_message:
48
+ rdoc_options: []
49
+
50
+ require_paths:
51
+ - lib
52
+ required_ruby_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "0"
57
+ version:
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: "0"
63
+ version:
64
+ requirements: []
65
+
66
+ rubyforge_project: shards
67
+ rubygems_version: 1.2.0
68
+ signing_key:
69
+ specification_version: 2
70
+ summary: An alternate implementation of the Pathname class
71
+ test_files:
72
+ - test/test_pathname.rb