pathstring 0.0.2 → 0.0.3

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/lib/pathstring.rb CHANGED
@@ -58,11 +58,11 @@ class Pathstring < String
58
58
 
59
59
  # (re)set the relative origin
60
60
  # set the relative facade in the process
61
- def with_relative_root(root)
61
+ def with_relative_root(*root)
62
62
  # Tap because i like tap
63
63
  # No, tap because i want this to be chainable with `new` for example
64
64
  tap do |p|
65
- relative_root_with root
65
+ relative_root_with File.join(root)
66
66
  relative_with @absolute.relative_path_from(@relative_root)
67
67
  end
68
68
  end
@@ -1,3 +1,3 @@
1
1
  class Pathstring < String
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -7,18 +7,18 @@ class PathstringRoot < Pathstring
7
7
  # last selected element
8
8
  attr_reader :last
9
9
 
10
- attr_writer :element_class # ?
10
+ attr_writer :branching_class
11
11
 
12
12
  # Useful memoize.
13
13
  # Needed to be done here because i
14
14
  # really don't want to do it enroot
15
15
  def select(path)
16
- @last = enroot path
16
+ @last = enroot path if path
17
17
  end
18
18
 
19
19
  # instantiate with parameter and set the right facade
20
20
  def enroot(path)
21
- element_class.new(path, self).tap { |e| e.relative! }
21
+ branching_class.new(path, self).tap { |e| e.relative! }
22
22
  end
23
23
 
24
24
  # list of an element's children as instances of the
@@ -31,13 +31,18 @@ class PathstringRoot < Pathstring
31
31
  nil
32
32
  end
33
33
 
34
+ # a little utility method to make PathstringRoot complete
35
+ def read(path=nil)
36
+ (select(path) || @last).read rescue nil
37
+ end
38
+
34
39
  private
35
40
 
36
- def element_class
41
+ def branching_class
37
42
  # inject is a funny way to do recursive stuff
38
43
  # (here to find a constant starting from Object)
39
44
  # Plip::Plap::PlopRoot will instantiate Plip::Plap::Plop objects
40
- @element_class ||= self.class.name.sub(/Root$/, '').split('::').inject(Object) do |constant, chunk|
45
+ @branching_class ||= self.class.name.sub(/Root$/, '').split('::').inject(Object) do |constant, chunk|
41
46
  constant = constant.const_get chunk
42
47
  end
43
48
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pathstring
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-23 00:00:00.000000000 Z
12
+ date: 2013-01-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pedlar