path2 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/path2/version.rb +3 -0
  2. data/lib/path2.rb +25 -4
  3. metadata +4 -3
@@ -0,0 +1,3 @@
1
+ class Path
2
+ VERSION = "0.2.1"
3
+ end
data/lib/path2.rb CHANGED
@@ -5,7 +5,21 @@ class Path
5
5
  def initialize(*args)
6
6
  @options = args.last.is_a?(Hash) ? args.pop : {}
7
7
  @options[:recursive] ||= false
8
- @entries = build_entries(*args)
8
+ @options[:short] ||= false
9
+ @root = args.first
10
+ @entries = build_entries(@root)
11
+ end
12
+
13
+ def current
14
+ File.expand_path(@root)
15
+ end
16
+
17
+ def exists?(path = nil)
18
+ if path
19
+ File.exists?([current, path].join("/"))
20
+ else
21
+ File.exists?(current)
22
+ end
9
23
  end
10
24
 
11
25
  def find(arg)
@@ -13,7 +27,13 @@ class Path
13
27
  end
14
28
 
15
29
  def join(path)
16
- Path.new(find(path))
30
+ Path.new([@root, path].join("/"), @options)
31
+ end
32
+
33
+ def walk(path)
34
+ yield Path.new([@root, path].join("/"), @options)
35
+ ensure
36
+ self
17
37
  end
18
38
 
19
39
  def grep(pattern)
@@ -44,8 +64,9 @@ class Path
44
64
  end
45
65
  end
46
66
 
47
- def build_entries(*paths)
48
- paths.map{|path| dir(File.expand_path(path)) }.flatten.uniq
67
+ def build_entries(path)
68
+ path = File.expand_path(path) if @options[:short]
69
+ dir(path).uniq
49
70
  end
50
71
 
51
72
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: path2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -19,6 +19,7 @@ extra_rdoc_files: []
19
19
  files:
20
20
  - README.md
21
21
  - LICENSE
22
+ - lib/path2/version.rb
22
23
  - lib/path2.rb
23
24
  homepage: http://github.com/bry4n/path2
24
25
  licenses: []
@@ -34,7 +35,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
34
35
  version: '0'
35
36
  segments:
36
37
  - 0
37
- hash: -1513887647798597346
38
+ hash: 4230538922531212955
38
39
  required_rubygems_version: !ruby/object:Gem::Requirement
39
40
  none: false
40
41
  requirements:
@@ -43,7 +44,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
43
44
  version: '0'
44
45
  segments:
45
46
  - 0
46
- hash: -1513887647798597346
47
+ hash: 4230538922531212955
47
48
  requirements: []
48
49
  rubyforge_project:
49
50
  rubygems_version: 1.8.11