tree_uzuki 0.7.2 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2caf22d2ab177a8257ef5a108d54337bc0cbd207d977c9c4f360e447da927050
4
- data.tar.gz: ae750495d32cf63b9d2ffcaabb4492d21c71d0ead4e251be4a6d52bc9990d8fc
3
+ metadata.gz: 2c188b2ac037a1a13b0958a7e8db1747d616d40adeee138f86d373c6c0c1e96d
4
+ data.tar.gz: 61ebae945f37f5b423ca715d65385ba95b5504c52085d334808b9d933c372812
5
5
  SHA512:
6
- metadata.gz: a562ff1cc7082d2a3afeff097d603e4538516e00ad7323e88c9ec5839dc2de151f9d7f9d8e1dff0014e78d8e77bff652941aa21ee4ea367f0ce9a222eaac5402
7
- data.tar.gz: 5cc0ce16318b456252683a351247786cfdae78d8ec467cab13cb06a46324d1865408230aeb5f80ee75629a73729d05382bf0bcb9125de95cce5ccf6973f64f61
6
+ metadata.gz: 9ab2f07d981bb4100a7fa1ab3d815e26f0ca83896783866fdf4d17de3037b142523783e29a70c0fe328b8de6e99a757d28bf2c0fd909fce20dfa748ced5ece9c
7
+ data.tar.gz: 1e6ce79b87c40a11123c7a95535316accc8df00561ce595fb9a9e6bc079f14073d60e4edf519985e8dd830c46a472ef4ccab11377ca2f6ceae7d11db1b6ca2b3
@@ -1,6 +1,6 @@
1
- # frozen_string_literal: true
1
+ #!/usr/bin/env ruby
2
2
 
3
- # !/usr/bin/env ruby
3
+ # frozen_string_literal: true
4
4
 
5
5
  require 'tree'
6
6
 
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # frozen_string_literal: true
4
+
5
+ require 'tree'
6
+
7
+ if ARGV.empty?
8
+ tree = Tree.new
9
+ tree.run
10
+ path_array, directories, files, tree_data, root = tree.run_results
11
+ tree_data, root, files, directories = Scanner.new.scan_multithread(path_array,
12
+ directories,
13
+ files,
14
+ tree_data,
15
+ root)
16
+ TreeRender.new.render(tree_data, root, files, directories)
17
+ else
18
+ tree = Tree.new(ARGV[0])
19
+ tree.run
20
+ path_array, directories, files, tree_data, root = tree.run_results
21
+ tree_data, root, files, directories = Scanner.new.scan_multithread(path_array,
22
+ directories,
23
+ files,
24
+ tree_data,
25
+ root)
26
+ TreeRender.new.render(tree_data, root, files, directories)
27
+ end
@@ -24,9 +24,29 @@ class Scanner
24
24
  end
25
25
  end
26
26
  if folders_arr.empty?
27
- return [tree_data, root, files, directories]
27
+ [tree_data, root, files, directories]
28
28
  else
29
29
  scan(folders_arr, directories, files, tree_data, root)
30
30
  end
31
31
  end
32
+
33
+ def scan_multithread(path_array, directories, files, tree_data, root)
34
+ threads = []
35
+ path_array.each do |n|
36
+ threads << Thread.new do
37
+ n.find do |v|
38
+ next if v == n
39
+
40
+ tree_data << v
41
+ if v.file?
42
+ files += 1
43
+ else
44
+ directories += 1
45
+ end
46
+ end
47
+ end
48
+ end
49
+ threads.each(&:join)
50
+ [tree_data, root, files, directories]
51
+ end
32
52
  end
@@ -13,11 +13,8 @@ class TreeRender
13
13
  turn = '└── '
14
14
  space = ' '
15
15
  tree_data.sort!
16
- i = tree_data.length
17
- loop do
18
- i -= 1
19
- break if i == -1
20
-
16
+ i = tree_data.length - 1
17
+ while i != -1
21
18
  leaf_level = tree_data[i].to_s.count('/') - root.to_s.count('/')
22
19
  @final_hash[i] = []
23
20
  if leaf_level == 1
@@ -46,10 +43,12 @@ class TreeRender
46
43
  @final_hash[i][index] = turn
47
44
  end
48
45
  end
46
+ i -= 1
49
47
  end
50
48
  puts root
51
49
  @final_hash = @final_hash.each.sort_by { |k, _| k }
52
50
  @final_hash.each { |_, v| puts v.join }
51
+ puts
53
52
  puts "#{files} files, #{directories} directories"
54
53
  end
55
54
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tree_uzuki
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sunset Uzuki
@@ -14,10 +14,12 @@ description: Directory tree
14
14
  email: 10seansov@gmail.com
15
15
  executables:
16
16
  - tree_uzuki
17
+ - tree_uzuki_m
17
18
  extensions: []
18
19
  extra_rdoc_files: []
19
20
  files:
20
21
  - bin/tree_uzuki
22
+ - bin/tree_uzuki_m
21
23
  - lib/tree.rb
22
24
  - lib/tree/scanner.rb
23
25
  - lib/tree/tree_render.rb