epitools 0.4.7 → 0.4.8

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.7
1
+ 0.4.8
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{epitools}
8
- s.version = "0.4.7"
8
+ s.version = "0.4.8"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["epitron"]
@@ -1,15 +1,30 @@
1
1
  require 'epitools/basetypes'
2
2
 
3
+ class String
4
+ def to_path
5
+ Path.new(self)
6
+ end
7
+ end
8
+
3
9
  class Path
10
+
4
11
 
5
12
  ## initializers
6
13
 
7
14
  def initialize(newpath)
8
15
  self.path = newpath
9
16
  end
17
+
18
+ def self.glob(str)
19
+ Dir[str].map { |entry| new(entry) }
20
+ end
10
21
 
11
- def self.[](newpath)
12
- new(newpath)
22
+ def self.[](str)
23
+ if str =~ /[\?\*]/ and not str =~ /\\[\?\*]/ # contains glob chars? (unescaped)
24
+ glob(str)
25
+ else
26
+ new(str)
27
+ end
13
28
  end
14
29
 
15
30
 
@@ -61,6 +76,7 @@ class Path
61
76
  end
62
77
  end
63
78
 
79
+
64
80
  ## readers
65
81
 
66
82
  attr_reader :dirs, :base, :ext
@@ -127,5 +143,14 @@ class Path
127
143
  alias_method :pathname, :path
128
144
  alias_method :to_s, :path
129
145
  alias_method :directory?, :dir?
146
+
147
+
148
+ ## comparisons
149
+
150
+ include Comparable
151
+
152
+ def <=>(other)
153
+ self.path <=> other.path
154
+ end
130
155
 
131
156
  end
@@ -18,7 +18,7 @@ describe Path do
18
18
  path.filename.should == "blah"
19
19
  path.ext.should == nil
20
20
 
21
- abs_path = File.join(File.absolute_path(".."), "hello.mp3")
21
+ abs_path = File.join(File.expand_path(".."), "hello.mp3")
22
22
  path.dir.should == abs_path
23
23
  end
24
24
 
@@ -58,4 +58,24 @@ describe Path do
58
58
  path.mtime.class.should == Time
59
59
  end
60
60
 
61
+ it "globs" do
62
+ path = Path.new(__FILE__)
63
+ glob = path.dir + "/*spec.rb"
64
+ specs = Path.glob(glob)
65
+ path.in?(specs).should == true
66
+ end
67
+
68
+ it "Path[file] and Path[glob]s" do
69
+ path = Path.new(__FILE__)
70
+ path.should == Path[__FILE__]
71
+
72
+ glob = path.dir + "/*spec.rb"
73
+ specs = Path.glob(glob)
74
+ Path[glob].should == specs
75
+ end
76
+
77
+ it "String#to_paths" do
78
+ __FILE__.to_path.should == Path.new(__FILE__)
79
+ end
80
+
61
81
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epitools
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 7
10
- version: 0.4.7
9
+ - 8
10
+ version: 0.4.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - epitron