tree_uzuki 0.7.2 → 0.7.4

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.
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