tree.rb 0.3.1 → 0.3.2

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/bin/tree.rb CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  cwd = File.expand_path( File.join( File.dirname(__FILE__), "..", "lib" ) )
6
6
  $:.unshift(cwd) unless $:.include?(cwd)
7
- require 'treevisitor_cli'
7
+ require 'tree_rb_cli'
8
8
 
9
9
  include TreeRb
10
10
  exit CliTree.run
data/lib/tree_rb.rb ADDED
@@ -0,0 +1,40 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ #
4
+ # std lib
5
+ #
6
+ require 'pathname'
7
+ require 'yaml'
8
+
9
+ #
10
+ # rubygems
11
+ #
12
+ # require 'rubygems' # rubygems must be loaded from binary file (tree.rb) so $LOAD_PATH is not modified
13
+ require 'json'
14
+ require 'ansi/code'
15
+
16
+ #
17
+ # treevisitor
18
+ #
19
+
20
+ require "tree_rb/version"
21
+ require "tree_rb/abs_node"
22
+ require 'tree_rb/leaf_node'
23
+ require 'tree_rb/tree_node'
24
+ require 'tree_rb/basic_tree_node_visitor'
25
+ require 'tree_rb/tree_node_visitor'
26
+
27
+ require 'tree_rb/directory_walker'
28
+
29
+ #
30
+ # visitors
31
+ #
32
+ require 'tree_rb/visitors/block_tree_node_visitor'
33
+ require 'tree_rb/visitors/build_dir_tree_visitor'
34
+ require 'tree_rb/visitors/callback_tree_node_visitor2'
35
+ require 'tree_rb/visitors/clone_tree_node_visitor'
36
+ require 'tree_rb/visitors/depth_tree_node_visitor'
37
+ require 'tree_rb/visitors/print_dir_tree_visitor'
38
+ require 'tree_rb/visitors/directory_to_hash_visitor'
39
+
40
+ require 'tree_rb/util/dir_processor'
@@ -74,6 +74,10 @@ module TreeRb
74
74
  # end colorize
75
75
  #
76
76
 
77
+ opts.on("-s", "Print the size of each file in bytes along with the name.") do
78
+ options[:show_size] = true
79
+ end
80
+
77
81
  begin
78
82
  rest = opts.parse(argv)
79
83
  rescue OptionParser::InvalidOption => e
@@ -106,9 +110,11 @@ module TreeRb
106
110
  when 'build-dir'
107
111
  # TODO: capture CTRL^C
108
112
  # http://ruby-doc.org/core-1.9.3/Kernel.html#method-i-trap
109
- Kernel.trap('INT') { put "User interrupted exit"; exit }
113
+ Signal.trap('INT') { put "User interrupted exit"; exit }
110
114
 
111
115
  visitor = BuildDirTreeVisitor.new
116
+ visitor.show_size = options[:show_size]
117
+
112
118
  dtw.run(visitor)
113
119
 
114
120
  puts visitor.root.to_str('', options[:colorize])
@@ -275,7 +275,7 @@ module TreeRb
275
275
 
276
276
 
277
277
  @visitor.enter_node(dirname)
278
- entries.each { |basename|
278
+ entries.each do |basename|
279
279
  begin
280
280
  next if basename == "." or basename == ".." # ignore always "." and ".."
281
281
  pathname = File.join(dirname, basename)
@@ -292,7 +292,7 @@ module TreeRb
292
292
  rescue Errno::EPERM
293
293
  $stderr.puts e
294
294
  end
295
- }
295
+ end
296
296
 
297
297
  @visitor.exit_node(dirname)
298
298
  end
@@ -1,4 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  module TreeRb
3
- VERSION="0.3.1"
3
+ VERSION="0.3.2"
4
4
  end
@@ -1,5 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  module TreeRb
3
+
3
4
  #
4
5
  # Builds a TreeNode from a filesystem directory
5
6
  # It similar to CloneTreeNodeVisitor
@@ -13,13 +14,14 @@ module TreeRb
13
14
  #
14
15
  attr_reader :nr_directories
15
16
 
16
-
17
17
  #
18
18
  # Number of visited directory (nr_leaves)
19
19
  # @see AbsNode#nr_leaves
20
20
  #
21
21
  attr_reader :nr_files
22
22
 
23
+ attr_accessor :show_size
24
+
23
25
  def initialize
24
26
  super
25
27
  @root = nil
@@ -49,7 +51,14 @@ module TreeRb
49
51
  def visit_leaf( pathname )
50
52
  @nr_files += 1
51
53
  # connect the leaf_node created to the last tree_node on the stack
52
- LeafNode.new( File.basename(pathname), @stack.last )
54
+ stat = File.lstat(pathname)
55
+ # stat.symlink?
56
+ if show_size
57
+ str = "#{File.basename(pathname)} #{stat.size}"
58
+ else
59
+ str = "#{File.basename(pathname)}"
60
+ end
61
+ LeafNode.new( str, @stack.last )
53
62
  end
54
63
 
55
64
  end
@@ -0,0 +1,18 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # cli
4
+ #
5
+
6
+ require 'optparse'
7
+ require 'treevisitor'
8
+
9
+ begin
10
+ require 'Win32/Console/ANSI' if RUBY_PLATFORM =~ /win32/
11
+ rescue LoadError
12
+ puts 'You must gem install win32console to use color on Windows'
13
+ end
14
+
15
+ #
16
+ # gem
17
+ #
18
+ require "tree_rb/cli/cli_tree"
data/lib/treevisitor.rb CHANGED
@@ -1,40 +1,2 @@
1
1
  # -*- coding: utf-8 -*-
2
-
3
- #
4
- # std lib
5
- #
6
- require 'pathname'
7
- require 'yaml'
8
-
9
- #
10
- # rubygems
11
- #
12
- # require 'rubygems' # rubygems must be loaded from binary file (tree.rb) so $LOAD_PATH is not modified
13
- require 'json'
14
- require 'ansi/code'
15
-
16
- #
17
- # treevisitor
18
- #
19
-
20
- require "tree_rb/version"
21
- require "tree_rb/abs_node"
22
- require 'tree_rb/leaf_node'
23
- require 'tree_rb/tree_node'
24
- require 'tree_rb/basic_tree_node_visitor'
25
- require 'tree_rb/tree_node_visitor'
26
-
27
- require 'tree_rb/directory_walker'
28
-
29
- #
30
- # visitors
31
- #
32
- require 'tree_rb/visitors/block_tree_node_visitor'
33
- require 'tree_rb/visitors/build_dir_tree_visitor'
34
- require 'tree_rb/visitors/callback_tree_node_visitor2'
35
- require 'tree_rb/visitors/clone_tree_node_visitor'
36
- require 'tree_rb/visitors/depth_tree_node_visitor'
37
- require 'tree_rb/visitors/print_dir_tree_visitor'
38
- require 'tree_rb/visitors/directory_to_hash_visitor'
39
-
40
- require 'tree_rb/util/dir_processor'
2
+ require 'tree_rb'
@@ -1,18 +1,3 @@
1
1
  # -*- coding: utf-8 -*-
2
- #
3
- # cli
4
- #
5
-
6
- require 'optparse'
7
- require 'treevisitor'
8
-
9
- begin
10
- require 'Win32/Console/ANSI' if RUBY_PLATFORM =~ /win32/
11
- rescue LoadError
12
- puts 'You must gem install win32console to use color on Windows'
13
- end
14
-
15
- #
16
- # gem
17
- #
18
- require "tree_rb/cli/cli_tree"
2
+ warn "use require 'tree_rb_cli' instead of require 'treevisitor_cli'"
3
+ require 'tree_rb_cli'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tree.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
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: 2012-08-15 00:00:00.000000000 Z
12
+ date: 2012-08-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -124,55 +124,57 @@ files:
124
124
  - Rakefile
125
125
  - tree.rb.gemspec
126
126
  - .gemtest
127
- - lib/treevisitor_cli.rb
127
+ - lib/treevisitor.rb
128
128
  - lib/tree_visitor.rb
129
- - lib/tree_rb/cli/cli_tree.rb
129
+ - lib/tree_rb_cli.rb
130
130
  - lib/tree_rb/util/dir_processor.rb
131
+ - lib/tree_rb/abs_node.rb
132
+ - lib/tree_rb/version.rb
131
133
  - lib/tree_rb/directory_walker.rb
132
- - lib/tree_rb/visitors/print_dir_tree_visitor.rb
134
+ - lib/tree_rb/tree_node.rb
135
+ - lib/tree_rb/basic_tree_node_visitor.rb
136
+ - lib/tree_rb/tree_node_visitor.rb
137
+ - lib/tree_rb/cli/cli_tree.rb
138
+ - lib/tree_rb/visitors/block_tree_node_visitor.rb
139
+ - lib/tree_rb/visitors/flat_print_tree_node_visitors.rb
140
+ - lib/tree_rb/visitors/clone_tree_node_visitor.rb
133
141
  - lib/tree_rb/visitors/build_dir_tree_visitor.rb
142
+ - lib/tree_rb/visitors/directory_to_hash_visitor.rb
134
143
  - lib/tree_rb/visitors/depth_tree_node_visitor.rb
135
- - lib/tree_rb/visitors/print_tree_node_visitor.rb
136
144
  - lib/tree_rb/visitors/callback_tree_node_visitor2.rb
137
- - lib/tree_rb/visitors/directory_to_hash_visitor.rb
138
- - lib/tree_rb/visitors/flat_print_tree_node_visitors.rb
139
- - lib/tree_rb/visitors/block_tree_node_visitor.rb
140
- - lib/tree_rb/visitors/clone_tree_node_visitor.rb
141
- - lib/tree_rb/abs_node.rb
145
+ - lib/tree_rb/visitors/print_tree_node_visitor.rb
146
+ - lib/tree_rb/visitors/print_dir_tree_visitor.rb
142
147
  - lib/tree_rb/leaf_node.rb
143
- - lib/tree_rb/tree_node_visitor.rb
144
- - lib/tree_rb/tree_node.rb
145
- - lib/tree_rb/basic_tree_node_visitor.rb
146
- - lib/tree_rb/version.rb
147
- - lib/treevisitor.rb
148
+ - lib/tree_rb.rb
149
+ - lib/treevisitor_cli.rb
148
150
  - tasks/rspec.rake
149
151
  - tasks/yard.rake
150
- - examples/directory_walker/print_files.rb
151
152
  - examples/directory_walker/directory_without_subdirectory.rb
152
153
  - examples/directory_walker/find_files.rb
153
- - examples/protovis/treevisitor.png
154
+ - examples/directory_walker/print_files.rb
155
+ - examples/protovis/treevisitor.js
154
156
  - examples/protovis/protovis-r3.2.js
155
157
  - examples/protovis/index.html
156
- - examples/protovis/treevisitor.js
158
+ - examples/protovis/treevisitor.png
157
159
  - examples/protovis/directory_to_json_visitor.rb
158
- - spec/spec_helper.rb
159
- - spec/tree_rb/cli/cli_tree_spec.rb
160
+ - spec/tree_rb/tree_node_paths_spec.rb
160
161
  - spec/tree_rb/util/dir_processor_spec.rb
161
- - spec/tree_rb/visitors/depth_tree_node_visitor_spec.rb
162
- - spec/tree_rb/visitors/callback_tree_node_visitor2_spec.rb
163
- - spec/tree_rb/visitors/block_tree_node_visitor_spec.rb
164
- - spec/tree_rb/visitors/tree_node_visitors_spec.rb
165
- - spec/tree_rb/tree_dsl_with_derived_class_spec.rb
162
+ - spec/tree_rb/tree_node_spec.rb
166
163
  - spec/tree_rb/directory_walker_spec.rb
167
164
  - spec/tree_rb/tree_dsl_spec.rb
168
- - spec/tree_rb/tree_node_paths_spec.rb
169
165
  - spec/tree_rb/tree_dsl_with_derived_class1_spec.rb
166
+ - spec/tree_rb/cli/cli_tree_spec.rb
167
+ - spec/tree_rb/visitors/depth_tree_node_visitor_spec.rb
168
+ - spec/tree_rb/visitors/tree_node_visitors_spec.rb
169
+ - spec/tree_rb/visitors/block_tree_node_visitor_spec.rb
170
+ - spec/tree_rb/visitors/callback_tree_node_visitor2_spec.rb
171
+ - spec/tree_rb/tree_dsl_with_derived_class_spec.rb
170
172
  - spec/tree_rb/tree_node_visitor_delegate_spec.rb
171
- - spec/tree_rb/tree_node_spec.rb
172
173
  - spec/tree_rb/tree_node_visitor_dsl_spec.rb
173
- - spec/fixtures/test_dir_1/dir.1/dir.1.2/file.1.2.1
174
- - spec/fixtures/test_dir_1/dir.1/file.1.1
174
+ - spec/spec_helper.rb
175
175
  - spec/fixtures/test_dir_1/dir.2/file.2.1
176
+ - spec/fixtures/test_dir_1/dir.1/file.1.1
177
+ - spec/fixtures/test_dir_1/dir.1/dir.1.2/file.1.2.1
176
178
  - spec/fixtures/test_dir_2/[Dsube]/sub/.gitkeep
177
179
  - spec/fixtures/test_dir_1/.dir_with_dot/dummy.txt
178
180
  - bin/tree.rb
@@ -188,12 +190,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
188
190
  - - ! '>='
189
191
  - !ruby/object:Gem::Version
190
192
  version: '0'
193
+ segments:
194
+ - 0
195
+ hash: 3293516785273926334
191
196
  required_rubygems_version: !ruby/object:Gem::Requirement
192
197
  none: false
193
198
  requirements:
194
199
  - - ! '>='
195
200
  - !ruby/object:Gem::Version
196
201
  version: '0'
202
+ segments:
203
+ - 0
204
+ hash: 3293516785273926334
197
205
  requirements: []
198
206
  rubyforge_project:
199
207
  rubygems_version: 1.8.24
@@ -202,24 +210,24 @@ specification_version: 3
202
210
  summary: tree.rb is a 'clone' of tree unix command. The gem implements a library to
203
211
  mange tree structures.
204
212
  test_files:
205
- - spec/spec_helper.rb
206
- - spec/tree_rb/cli/cli_tree_spec.rb
213
+ - spec/tree_rb/tree_node_paths_spec.rb
207
214
  - spec/tree_rb/util/dir_processor_spec.rb
208
- - spec/tree_rb/visitors/depth_tree_node_visitor_spec.rb
209
- - spec/tree_rb/visitors/callback_tree_node_visitor2_spec.rb
210
- - spec/tree_rb/visitors/block_tree_node_visitor_spec.rb
211
- - spec/tree_rb/visitors/tree_node_visitors_spec.rb
212
- - spec/tree_rb/tree_dsl_with_derived_class_spec.rb
215
+ - spec/tree_rb/tree_node_spec.rb
213
216
  - spec/tree_rb/directory_walker_spec.rb
214
217
  - spec/tree_rb/tree_dsl_spec.rb
215
- - spec/tree_rb/tree_node_paths_spec.rb
216
218
  - spec/tree_rb/tree_dsl_with_derived_class1_spec.rb
219
+ - spec/tree_rb/cli/cli_tree_spec.rb
220
+ - spec/tree_rb/visitors/depth_tree_node_visitor_spec.rb
221
+ - spec/tree_rb/visitors/tree_node_visitors_spec.rb
222
+ - spec/tree_rb/visitors/block_tree_node_visitor_spec.rb
223
+ - spec/tree_rb/visitors/callback_tree_node_visitor2_spec.rb
224
+ - spec/tree_rb/tree_dsl_with_derived_class_spec.rb
217
225
  - spec/tree_rb/tree_node_visitor_delegate_spec.rb
218
- - spec/tree_rb/tree_node_spec.rb
219
226
  - spec/tree_rb/tree_node_visitor_dsl_spec.rb
220
- - spec/fixtures/test_dir_1/dir.1/dir.1.2/file.1.2.1
221
- - spec/fixtures/test_dir_1/dir.1/file.1.1
227
+ - spec/spec_helper.rb
222
228
  - spec/fixtures/test_dir_1/dir.2/file.2.1
229
+ - spec/fixtures/test_dir_1/dir.1/file.1.1
230
+ - spec/fixtures/test_dir_1/dir.1/dir.1.2/file.1.2.1
223
231
  - spec/fixtures/test_dir_2/[Dsube]/sub/.gitkeep
224
232
  - spec/fixtures/test_dir_1/.dir_with_dot/dummy.txt
225
233
  has_rdoc: