dirtravel 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/doc/_index.html CHANGED
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
6
  <title>
7
- Documentation by YARD 0.8.6.1
7
+ Documentation by YARD 0.8.7.6
8
8
 
9
9
  </title>
10
10
 
@@ -15,7 +15,7 @@
15
15
  <script type="text/javascript" charset="utf-8">
16
16
  hasFrames = window.top.frames.main ? true : false;
17
17
  relpath = '';
18
- framesUrl = "frames.html#!" + escape(window.location.href);
18
+ framesUrl = "frames.html#!_index.html";
19
19
  </script>
20
20
 
21
21
 
@@ -56,7 +56,7 @@
56
56
 
57
57
  <iframe id="search_frame"></iframe>
58
58
 
59
- <div id="content"><h1 class="noborder title">Documentation by YARD 0.8.6.1</h1>
59
+ <div id="content"><h1 class="noborder title">Documentation by YARD 0.8.7.6</h1>
60
60
  <div id="listing">
61
61
  <h1 class="alphaindex">Alphabetic Index</h1>
62
62
 
@@ -163,9 +163,9 @@
163
163
  </div>
164
164
 
165
165
  <div id="footer">
166
- Generated on Thu Jan 23 19:01:13 2014 by
166
+ Generated on Sun Apr 19 15:01:49 2015 by
167
167
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
168
- 0.8.6.1 (ruby-1.9.3).
168
+ 0.8.7.6 (ruby-2.1.2).
169
169
  </div>
170
170
 
171
171
  </body>
data/doc/class_list.html CHANGED
@@ -15,11 +15,16 @@
15
15
  <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
16
16
 
17
17
 
18
+ <title>Class List</title>
18
19
  <base id="base_target" target="_parent" />
19
20
  </head>
20
21
  <body>
21
22
  <script type="text/javascript" charset="utf-8">
22
- if (window.top.frames.main) {
23
+ var hasFrames = false;
24
+ try {
25
+ hasFrames = window.top.frames.main ? true : false;
26
+ } catch (e) { }
27
+ if (hasFrames) {
23
28
  document.getElementById('base_target').target = 'main';
24
29
  document.body.className = 'frames';
25
30
  }
data/doc/css/style.css CHANGED
@@ -291,6 +291,7 @@ li.r2 { background: #fafafa; }
291
291
  -moz-box-shadow: -2px 2px 6px #bbb;
292
292
  z-index: 5000;
293
293
  position: relative;
294
+ overflow-x: auto;
294
295
  }
295
296
  #toc.nofloat { float: none; max-width: none; border: none; padding: 0; margin: 20px 0; -webkit-box-shadow: none; -moz-box-shadow: none; }
296
297
  #toc.nofloat.hidden { padding: 0; background: 0; margin-bottom: 5px; }
@@ -324,9 +325,9 @@ pre.code .dot + pre.code .id,
324
325
  pre.code .rubyid_to_i pre.code .rubyid_each { color: #0085FF; }
325
326
  pre.code .comment { color: #0066FF; }
326
327
  pre.code .const, pre.code .constant { color: #585CF6; }
328
+ pre.code .label,
327
329
  pre.code .symbol { color: #C5060B; }
328
330
  pre.code .kw,
329
- pre.code .label,
330
331
  pre.code .rubyid_require,
331
332
  pre.code .rubyid_extend,
332
333
  pre.code .rubyid_include { color: #0000FF; }
@@ -2,11 +2,11 @@
2
2
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
3
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
4
  <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII" />
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
6
  <title>
7
7
  File: CHANGELOG
8
8
 
9
- &mdash; Documentation by YARD 0.8.6.1
9
+ &mdash; Documentation by YARD 0.8.7.6
10
10
 
11
11
  </title>
12
12
 
@@ -17,7 +17,7 @@
17
17
  <script type="text/javascript" charset="utf-8">
18
18
  hasFrames = window.top.frames.main ? true : false;
19
19
  relpath = '';
20
- framesUrl = "frames.html#!" + escape(window.location.href);
20
+ framesUrl = "frames.html#!file.CHANGELOG.html";
21
21
  </script>
22
22
 
23
23
 
@@ -62,30 +62,33 @@
62
62
  <iframe id="search_frame"></iframe>
63
63
 
64
64
  <div id="content"><div id='filecontents'>
65
- <h1>Version history</h1>
66
- <dl class="rdoc-list"><dt>0.0.5</dt>
65
+ <h1 id="label-Version+history">Version history</h1>
66
+ <dl class="rdoc-list label-list"><dt>0.0.6
67
+ <dd>
68
+ <p>Test file bugfix. Document improvements.</p>
69
+ </dd><dt>0.0.5
67
70
  <dd>
68
71
  <p>Abspath as Travel data member.</p>
69
- </dd><dt>0.0.4</dt>
72
+ </dd><dt>0.0.4
70
73
  <dd>
71
74
  <p>Fix for relative path conversion in Travel.filetree.</p>
72
- </dd><dt>0.0.3</dt>
75
+ </dd><dt>0.0.3
73
76
  <dd>
74
77
  <p>Entry#tip, Entry#relative?, Entry#rename methods added. New option for
75
78
  Travel.filetree, :inclusive. It uses one-up directory as root.</p>
76
- </dd><dt>0.0.2</dt>
79
+ </dd><dt>0.0.2
77
80
  <dd>
78
81
  <p>Comment typo.</p>
79
- </dd><dt>0.0.1</dt>
82
+ </dd><dt>0.0.1
80
83
  <dd>
81
84
  <p>Initial version.</p>
82
85
  </dd></dl>
83
86
  </div></div>
84
87
 
85
88
  <div id="footer">
86
- Generated on Thu Jan 23 19:01:13 2014 by
89
+ Generated on Sun Apr 19 15:01:49 2015 by
87
90
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
88
- 0.8.6.1 (ruby-1.9.3).
91
+ 0.8.7.6 (ruby-2.1.2).
89
92
  </div>
90
93
 
91
94
  </body>
data/doc/file.README.html CHANGED
@@ -2,11 +2,11 @@
2
2
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
3
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
4
  <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII" />
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
6
  <title>
7
7
  File: README
8
8
 
9
- &mdash; Documentation by YARD 0.8.6.1
9
+ &mdash; Documentation by YARD 0.8.7.6
10
10
 
11
11
  </title>
12
12
 
@@ -17,7 +17,7 @@
17
17
  <script type="text/javascript" charset="utf-8">
18
18
  hasFrames = window.top.frames.main ? true : false;
19
19
  relpath = '';
20
- framesUrl = "frames.html#!" + escape(window.location.href);
20
+ framesUrl = "frames.html#!file.README.html";
21
21
  </script>
22
22
 
23
23
 
@@ -62,22 +62,22 @@
62
62
  <iframe id="search_frame"></iframe>
63
63
 
64
64
  <div id="content"><div id='filecontents'>
65
- <h1>DirTravel</h1>
65
+ <h1 id="label-DirTravel">DirTravel</h1>
66
66
 
67
- <h2>Description</h2>
67
+ <h2 id="label-Description">Description</h2>
68
68
 
69
- <p>DirTravel provides filesystem directory content organized as a RubyTree
69
+ <p><span class='object_link'><a href="DirTravel.html" title="DirTravel (module)">DirTravel</a></span> provides filesystem directory content organized as a RubyTree
70
70
  structure. This structure can be conveniently accessed in various ways.</p>
71
71
 
72
- <h2>Documentation</h2>
72
+ <h2 id="label-Documentation">Documentation</h2>
73
73
 
74
- <p>Main documentation is generated from DirTravel source.</p>
74
+ <p>Main documentation is generated from <span class='object_link'><a href="DirTravel.html" title="DirTravel (module)">DirTravel</a></span> source.</p>
75
75
  </div></div>
76
76
 
77
77
  <div id="footer">
78
- Generated on Thu Jan 23 19:01:13 2014 by
78
+ Generated on Sun Apr 19 15:01:49 2015 by
79
79
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
80
- 0.8.6.1 (ruby-1.9.3).
80
+ 0.8.7.6 (ruby-2.1.2).
81
81
  </div>
82
82
 
83
83
  </body>
data/doc/file_list.html CHANGED
@@ -15,11 +15,16 @@
15
15
  <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
16
16
 
17
17
 
18
+ <title>File List</title>
18
19
  <base id="base_target" target="_parent" />
19
20
  </head>
20
21
  <body>
21
22
  <script type="text/javascript" charset="utf-8">
22
- if (window.top.frames.main) {
23
+ var hasFrames = false;
24
+ try {
25
+ hasFrames = window.top.frames.main ? true : false;
26
+ } catch (e) { }
27
+ if (hasFrames) {
23
28
  document.getElementById('base_target').target = 'main';
24
29
  document.body.className = 'frames';
25
30
  }
data/doc/frames.html CHANGED
@@ -4,18 +4,16 @@
4
4
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
5
  <head>
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
- <title>Documentation by YARD 0.8.6.1</title>
7
+ <title>Documentation by YARD 0.8.7.6</title>
8
8
  </head>
9
9
  <script type="text/javascript" charset="utf-8">
10
10
  window.onload = function() {
11
- var match = window.location.hash.match(/^#!(.+)/);
12
- var name = 'index.html';
13
- if (match) {
14
- name = unescape(match[1]);
15
- }
11
+ var match = unescape(window.location.hash).match(/^#!(.+)/);
12
+ var name = match ? match[1] : 'index.html';
13
+ name = name.replace(/^(\w+):\/\//, '').replace(/^\/\//, '');
16
14
  document.writeln('<frameset cols="20%,*">' +
17
15
  '<frame name="list" src="class_list.html" />' +
18
- '<frame name="main" src="' + name + '" />' +
16
+ '<frame name="main" src="' + escape(name) + '" />' +
19
17
  '</frameset>');
20
18
  }
21
19
  </script>
data/doc/index.html CHANGED
@@ -2,11 +2,11 @@
2
2
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
3
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
4
  <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII" />
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
6
  <title>
7
7
  File: README
8
8
 
9
- &mdash; Documentation by YARD 0.8.6.1
9
+ &mdash; Documentation by YARD 0.8.7.6
10
10
 
11
11
  </title>
12
12
 
@@ -17,7 +17,7 @@
17
17
  <script type="text/javascript" charset="utf-8">
18
18
  hasFrames = window.top.frames.main ? true : false;
19
19
  relpath = '';
20
- framesUrl = "frames.html#!" + escape(window.location.href);
20
+ framesUrl = "frames.html#!file.README.html";
21
21
  </script>
22
22
 
23
23
 
@@ -62,22 +62,22 @@
62
62
  <iframe id="search_frame"></iframe>
63
63
 
64
64
  <div id="content"><div id='filecontents'>
65
- <h1>DirTravel</h1>
65
+ <h1 id="label-DirTravel">DirTravel</h1>
66
66
 
67
- <h2>Description</h2>
67
+ <h2 id="label-Description">Description</h2>
68
68
 
69
- <p>DirTravel provides filesystem directory content organized as a RubyTree
69
+ <p><span class='object_link'><a href="DirTravel.html" title="DirTravel (module)">DirTravel</a></span> provides filesystem directory content organized as a RubyTree
70
70
  structure. This structure can be conveniently accessed in various ways.</p>
71
71
 
72
- <h2>Documentation</h2>
72
+ <h2 id="label-Documentation">Documentation</h2>
73
73
 
74
- <p>Main documentation is generated from DirTravel source.</p>
74
+ <p>Main documentation is generated from <span class='object_link'><a href="DirTravel.html" title="DirTravel (module)">DirTravel</a></span> source.</p>
75
75
  </div></div>
76
76
 
77
77
  <div id="footer">
78
- Generated on Thu Jan 23 19:01:13 2014 by
78
+ Generated on Sun Apr 19 15:01:49 2015 by
79
79
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
80
- 0.8.6.1 (ruby-1.9.3).
80
+ 0.8.7.6 (ruby-2.1.2).
81
81
  </div>
82
82
 
83
83
  </body>
data/doc/js/app.js CHANGED
@@ -78,7 +78,12 @@ function framesInit() {
78
78
  if (hasFrames) {
79
79
  document.body.className = 'frames';
80
80
  $('#menu .noframes a').attr('href', document.location);
81
- window.top.document.title = $('html head title').text();
81
+ try {
82
+ window.top.document.title = $('html head title').text();
83
+ } catch(error) {
84
+ // some browsers will not allow this when serving from file://
85
+ // but we don't want to stop the world.
86
+ }
82
87
  }
83
88
  else {
84
89
  $('#menu .noframes a').text('frames').attr('href', framesUrl);
@@ -211,4 +216,4 @@ $(linkSummaries);
211
216
  $(keyboardShortcuts);
212
217
  $(summaryToggle);
213
218
  $(fixOutsideWorldLinks);
214
- $(generateTOC);
219
+ $(generateTOC);
data/doc/js/full_list.js CHANGED
@@ -111,11 +111,11 @@ clicked = null;
111
111
  function linkList() {
112
112
  $('#full_list li, #full_list li a:last').click(function(evt) {
113
113
  if ($(this).hasClass('toggle')) return true;
114
- if ($(this).find('.object_link a').length === 0) {
115
- $(this).children('a.toggle').click();
116
- return false;
117
- }
118
114
  if (this.tagName.toLowerCase() == "li") {
115
+ if ($(this).find('.object_link a').length === 0) {
116
+ $(this).children('a.toggle').click();
117
+ return false;
118
+ }
119
119
  var toggle = $(this).children('a.toggle');
120
120
  if (toggle.size() > 0 && evt.pageX < toggle.offset().left) {
121
121
  toggle.click();
@@ -123,9 +123,12 @@ function linkList() {
123
123
  }
124
124
  }
125
125
  if (clicked) clicked.removeClass('clicked');
126
- var win = window.top.frames.main ? window.top.frames.main : window.parent;
126
+ var win;
127
+ try {
128
+ win = window.top.frames.main ? window.top.frames.main : window.parent;
129
+ } catch (e) { win = window.parent; }
127
130
  if (this.tagName.toLowerCase() == "a") {
128
- clicked = $(this).parent('li').addClass('clicked');
131
+ clicked = $(this).parents('li').addClass('clicked');
129
132
  win.location = this.href;
130
133
  }
131
134
  else {
data/doc/method_list.html CHANGED
@@ -15,11 +15,16 @@
15
15
  <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
16
16
 
17
17
 
18
+ <title>Method List</title>
18
19
  <base id="base_target" target="_parent" />
19
20
  </head>
20
21
  <body>
21
22
  <script type="text/javascript" charset="utf-8">
22
- if (window.top.frames.main) {
23
+ var hasFrames = false;
24
+ try {
25
+ hasFrames = window.top.frames.main ? true : false;
26
+ } catch (e) { }
27
+ if (hasFrames) {
23
28
  document.getElementById('base_target').target = 'main';
24
29
  document.body.className = 'frames';
25
30
  }
@@ -190,6 +195,12 @@
190
195
  </li>
191
196
 
192
197
 
198
+ <li class="r1 ">
199
+ <span class='object_link'><a href="DirTravel.html#version-class_method" title="DirTravel.version (method)">version</a></span>
200
+ <small>DirTravel</small>
201
+ </li>
202
+
203
+
193
204
  </ul>
194
205
  </div>
195
206
  </body>
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Top Level Namespace
8
8
 
9
- &mdash; Documentation by YARD 0.8.6.1
9
+ &mdash; Documentation by YARD 0.8.7.6
10
10
 
11
11
  </title>
12
12
 
@@ -17,7 +17,7 @@
17
17
  <script type="text/javascript" charset="utf-8">
18
18
  hasFrames = window.top.frames.main ? true : false;
19
19
  relpath = '';
20
- framesUrl = "frames.html#!" + escape(window.location.href);
20
+ framesUrl = "frames.html#!top-level-namespace.html";
21
21
  </script>
22
22
 
23
23
 
@@ -103,9 +103,9 @@
103
103
  </div>
104
104
 
105
105
  <div id="footer">
106
- Generated on Thu Jan 23 19:01:13 2014 by
106
+ Generated on Sun Apr 19 15:01:49 2015 by
107
107
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
108
- 0.8.6.1 (ruby-1.9.3).
108
+ 0.8.7.6 (ruby-2.1.2).
109
109
  </div>
110
110
 
111
111
  </body>
data/lib/dirtravel.rb CHANGED
@@ -1,15 +1,15 @@
1
- # DirTravel is a library for getting information about files and
1
+ # {DirTravel} is a library for getting information about files and
2
2
  # directories recursively to a tree structure. This library extends
3
3
  # the RubyTree classes to include directory and files info. Please
4
4
  # refer to RubyTree documentation for RubyTree related features.
5
5
  #
6
- # A proxy object "DirTravel::Travel" is used to gather the directory
6
+ # A proxy object {DirTravel::Travel} is used to gather the directory
7
7
  # content. The "filetree" class method provides interface for getting
8
- # the content with few options (see: DirTravel::Travel.filetree for
8
+ # the content with few options (see: {DirTravel::Travel.filetree} for
9
9
  # details).
10
10
  #
11
- # See the DirTravel::Entry methods doc for possibilities in examining
12
- # the directory hierachy.
11
+ # See the {DirTravel::Entry} methods doc for possibilities in
12
+ # examining the directory hierachy.
13
13
  #
14
14
  #
15
15
  # Examples:
@@ -28,24 +28,30 @@
28
28
  # puts i.abspath
29
29
  # end
30
30
  #
31
- # # Get MP3 files and create a list of all album directories
32
- # # (assuming ".../<album>/<song>" hierarhcy).
31
+ # # Get MP3 files and create a list of all album directories.
32
+ # # Assume: ".../<album>/<song>" hierarhcy
33
+ # #
33
34
  # d = DirTravel::Travel.filetree( '.', { :suffix => '.mp3' } )
34
35
  # albums = d.select_level( d.node_height - 1 )
35
36
  #
36
37
 
37
38
  module DirTravel
38
-
39
+
39
40
  require 'rubytree'
40
41
 
41
42
 
43
+ # {DirTravel} error.
42
44
  class DirTravelError < RuntimeError; end
43
-
45
+
44
46
 
45
47
  # Extend RubyTree base class with file and directory features.
46
48
  class Entry < Tree::TreeNode
49
+
50
+ # Node name.
47
51
  attr_accessor :name
48
52
 
53
+ # Set name for {Entry} (Dir/File).
54
+ # Initialize abspath.
49
55
  def initialize( name )
50
56
  super( name, nil )
51
57
  @abspath = nil
@@ -103,7 +109,7 @@ module DirTravel
103
109
 
104
110
 
105
111
  # Relative path of parenting directory.
106
- #
112
+ #
107
113
  # @param basedir [Entry] Starting level for the hierarchy.
108
114
  # @return [String] Containing directory.
109
115
  def dir( basedir = self )
@@ -114,7 +120,7 @@ module DirTravel
114
120
  # Select all siblings from given node depth.
115
121
  #
116
122
  # @param level [Integer] Selected level in hierachy. Level is
117
- # number of steps down in hierarhcy.
123
+ # number of steps down in hierarhcy.
118
124
  # @return [Array] Array of siblings in selected hierarchy.
119
125
  def select_level( level )
120
126
  select do |i| i.node_depth == level; end
@@ -127,23 +133,25 @@ module DirTravel
127
133
  end
128
134
 
129
135
 
130
- # File.stat data for the Entry.
136
+ # File.stat data for the {Entry}.
131
137
  def stat
132
138
  File.stat( path )
133
139
  end
134
140
 
135
- # Relative path Entry.
141
+
142
+ # Relative path {Entry}.
136
143
  def relative?
137
144
  @name[0] != '/'
138
145
  end
139
146
 
147
+
140
148
  # Rename node.
141
149
  #
142
- # @param name [String] If name is abspath then Entry becomes
150
+ # @param name [String] If name is abspath then {Entry} becomes
143
151
  # abspath.
144
152
  def rename( name )
145
153
  @name = name
146
-
154
+
147
155
  # Absolute or relative path?
148
156
  if name[0] == "/"
149
157
  @abspath = name
@@ -153,15 +161,16 @@ module DirTravel
153
161
  end
154
162
 
155
163
  end
156
-
164
+
157
165
 
158
166
  # Directory type entry.
159
167
  class DirEntry < Entry
160
168
 
161
- # Instantiate.
169
+ # Set name and abspath if given.
162
170
  #
163
171
  # @param name [String] Directory name.
164
- # @param abspath [String] Set abspath if given.
172
+ # @param abspath [String] Set abspath if given. Otherwise it
173
+ # is generated from pieces.
165
174
  def initialize( name, abspath = nil )
166
175
  super( name )
167
176
  if abspath
@@ -170,25 +179,33 @@ module DirTravel
170
179
  end
171
180
 
172
181
  end
173
-
174
-
182
+
183
+
175
184
  # File type entry.
176
185
  class FileEntry < Entry
177
186
  attr_reader :suffix, :basename
178
-
187
+
188
+ # Set name, suffix, and basename.
189
+ #
190
+ # @param name [String] File name.
179
191
  def initialize( name )
180
192
  super( name )
181
193
  @suffix = File.extname( name )
182
194
  @basename = File.basename( name, @suffix )
183
195
  end
184
-
196
+
185
197
  end
186
198
 
187
199
 
188
200
  # Create directory recursion tree (with
189
- # Travel.filetree). Optionally filter with suffix and modify
190
- # tree building with options Hash (see below).
191
- #
201
+ # {Travel.filetree}). Optionally filter with suffix and modify tree
202
+ # building with options Hash (see below).
203
+ #
204
+ # If basedir is absolute path, the root name is the search
205
+ # path. If basedir is relative path, before search the current
206
+ # directory is changed to referenced directory and root name is
207
+ # the current directory, single level.
208
+ #
192
209
  # == Parameters:
193
210
  # sort::
194
211
  # Sort directory entries (default: false).
@@ -204,65 +221,104 @@ module DirTravel
204
221
 
205
222
  class Travel
206
223
 
207
- # Root DirEntry of Travel.
224
+ # Root {DirEntry} of {Travel}.
208
225
  attr_accessor :root
209
226
 
210
- # Default options for Travel.
227
+ # Default options for {Travel}.
211
228
  attr_accessor :defaults
212
229
 
213
- # Starting directory for Travel.
230
+ # Starting directory for {Travel}.
214
231
  attr_accessor :basedir
215
232
  attr_accessor :abspath
216
-
217
- # Create directory recursion tree.
233
+
234
+
235
+ # Create directory recursion tree and return root.
236
+ #
218
237
  # @param basedir [String] Starting directory (top).
219
- # @param options [Hash] Hash optionally including keys: :sort, :suffix, :files.
220
- # @return [DirEntry] Root item of the file system hierarchy.
238
+ # @param options [Hash] {Travel} options.
239
+ # @return [DirEntry] Root of the file travel hierarchy.
221
240
  def Travel.filetree( basedir = '.', options = {} )
222
241
 
242
+ # Non-nil if directory needs to be changed.
223
243
  pwd = nil
224
244
 
225
245
  if basedir[0] == '/'
246
+
247
+ # Absolue path.
226
248
  t = Travel.new( basedir, basedir, options )
227
249
  t.travel
250
+
228
251
  else
252
+
253
+ # Relative path.
254
+
255
+ # Store current directory before chdir.
229
256
  pwd = Dir.pwd
257
+
258
+ # Generate target directory for chdir. One up from
259
+ # the reference.
230
260
  full = File.absolute_path( basedir )
231
261
  base = File.basename( full )
232
262
  dir = File.dirname( full )
263
+
264
+ # Goto target.
233
265
  Dir.chdir( dir )
266
+
234
267
  t = Travel.new( base, full, options )
235
268
  t.travel
236
269
  end
237
270
 
271
+
238
272
  if t.defaults[ :inclusive ]
273
+
274
+ # With inclusive the root is changed to one-up from
275
+ # target.
276
+
277
+ # One up from root.
239
278
  uppath = File.dirname( t.root.abspath )
240
- path = uppath
241
279
  if t.root.relative?
242
280
  path = File.basename( uppath )
281
+ else
282
+ path = uppath
243
283
  end
284
+
285
+ # Create the "one-up" root.
244
286
  newRoot = DirEntry.new( path, uppath )
287
+
288
+ # Rename old root.
245
289
  t.root.rename( t.root.tip )
290
+
291
+ # Add to one-up root.
246
292
  newRoot.add( t.root )
293
+
294
+ # Set root to one-up root.
247
295
  t.root = newRoot
248
296
  end
249
297
 
298
+ # Return back to start directory if dir changed.
250
299
  Dir.chdir( pwd ) if pwd
251
300
 
301
+ # Return root {DirEntry}.
252
302
  t.root
253
303
  end
254
304
 
255
305
 
306
+ # Create directory recursion object. Overlay options on top of
307
+ # defaults. Initialize root {DirEntry}.
308
+ #
309
+ # @param basedir [String] Starting directory (top).
310
+ # @param abspath [String] Absolute path for root.
311
+ # @param options [Hash] {Travel} options.
256
312
  def initialize( basedir, abspath, options = {} )
257
313
  @basedir = basedir
258
314
  @abspath = abspath
259
315
 
260
316
  @defaults = {
261
- :suffix => nil,
262
- :sort => false,
263
- :files => true,
264
- :inclusive => false,
265
- }
317
+ :suffix => nil,
318
+ :sort => false,
319
+ :files => true,
320
+ :inclusive => false,
321
+ }
266
322
 
267
323
  @defaults.merge!( options )
268
324
 
@@ -288,7 +344,7 @@ module DirTravel
288
344
  list.each do |i|
289
345
 
290
346
  if File.file?( dir + '/' + i )
291
-
347
+
292
348
  # File entry.
293
349
 
294
350
  if ( !suffix || suffix == File.extname( i ) ) &&
@@ -325,5 +381,8 @@ module DirTravel
325
381
 
326
382
  end
327
383
 
328
-
384
+
329
385
  end
386
+
387
+
388
+ require_relative 'version'