tree_uzuki 0.3.0 → 0.4.1

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: 91f34dc7c852bdd77dbae1793a240ba435eda065fef72bc03e806ef156700c94
4
- data.tar.gz: a19fdd49773ea201e5bcf6d86d0990e685351a0881edbd1aa97472328ccfdac6
3
+ metadata.gz: e479ff9ef2011dbdbd9e32af736ff736d56659e6f8dc4904be6aa90bd1462954
4
+ data.tar.gz: 3a11a45e98d716e693b0206ad26a9cd160c55bf50739686683d8f25804c66277
5
5
  SHA512:
6
- metadata.gz: 540eba3c0a706d2e9d6741cb9c3a31c0680920330962d0e0c6c7d9ac691dde7d9369c1f05a3321b538918ea55fa6a69ffe9aa89309ff1c2275a3f36df50db3e6
7
- data.tar.gz: 4a8c10267da3170738c6d14dc39244f8ea0250c1dc3e2528dca529fed14119f3425b6dd9fd3df0e1402f5cf206a6c2a96507d9b58fd70fe77247defdaa2c211c
6
+ metadata.gz: eb1d4de9ad758955c5f44852054c93f36b119fc8ccc69529d53933dc903b23a67261cd9107942b4f4cd08b2feb1c694640e77f5127a5773317586dd4fdb6f7ae
7
+ data.tar.gz: f5d9f38dbe226f551173799c7c6350db9d0b46c6f7d2974549b28f12aebcc1cb0e518a49187513394469d8224a01cb46de5d81bc94d47aa4f97b2d70a180625d
data/bin/tree_uzuki CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  require 'tree'
5
5
  if ARGV.empty?
6
- puts Tree.runner()
6
+ puts Tree.run()
7
7
  else
8
- puts Tree.runner(ARGV[0])
8
+ puts Tree.run(ARGV[0])
9
9
  end
@@ -1,39 +1,35 @@
1
1
  require 'pathname'
2
2
 
3
-
4
3
  class Tree_render
5
- def render(tree_data,root)
4
+ def rendering(tree_data,root)
6
5
  final_hash = {}
7
6
  branch = "├── "
8
7
  pipe = "│ "
9
8
  turn = "└── "
10
9
  space = " "
11
-
12
10
  tree_data.sort!
13
- i = tree_data.length
14
- loop do i-=1
15
- break if i == -1
16
- leaf_level = tree_data[i].to_s.count('/') - root.to_s.count('/')
17
- final_hash[i] = Array.new
11
+ tree_data.reverse_each do |i|
12
+ leaf_level = i.to_s.count('/') - root.to_s.count('/')
13
+ final_hash[tree_data.index(i)] = Array.new
18
14
  if leaf_level == 1
19
- final_hash[i] << branch
20
- final_hash[i] << File.basename(tree_data[i])
15
+ final_hash[tree_data.index(i)] << branch
16
+ final_hash[tree_data.index(i)] << File.basename(i)
21
17
  else
22
- final_hash[i] << space
23
- (leaf_level-2).times {final_hash[i] << space}
24
- final_hash[i] << branch
25
- final_hash[i] << File.basename(tree_data[i])
18
+ final_hash[tree_data.index(i)] << space
19
+ (leaf_level-2).times {final_hash[tree_data.index(i)] << space}
20
+ final_hash[tree_data.index(i)] << branch
21
+ final_hash[tree_data.index(i)] << File.basename(i)
26
22
  end
27
- for index in (0..final_hash[i].size)
28
- next if final_hash[i+1] == nil
29
- if final_hash[i][index] == space && (final_hash[i+1][index] == branch ||
30
- final_hash[i+1][index] == pipe ||
31
- final_hash[i+1][index] == turn)
32
- final_hash[i][index] = pipe
33
- elsif final_hash[i][index] == branch && (final_hash[i+1][index] != branch &&
34
- final_hash[i+1][index] != pipe &&
35
- final_hash[i+1][index] != turn)
36
- final_hash[i][index] = turn
23
+ final_hash.each_with_index do |obj ,index|
24
+ next if final_hash[tree_data.index(i)+1] == nil
25
+ if final_hash[tree_data.index(i)][index] == space && (final_hash[tree_data.index(i)+1][index] == branch ||
26
+ final_hash[tree_data.index(i)+1][index] == pipe ||
27
+ final_hash[tree_data.index(i)+1][index] == turn)
28
+ final_hash[tree_data.index(i)][index] = pipe
29
+ elsif final_hash[tree_data.index(i)][index] == branch && (final_hash[tree_data.index(i)+1][index] != branch &&
30
+ final_hash[tree_data.index(i)+1][index] != pipe &&
31
+ final_hash[tree_data.index(i)+1][index] != turn)
32
+ final_hash[tree_data.index(i)][index] = turn
37
33
  end
38
34
  end
39
35
  end
data/lib/tree/walker.rb CHANGED
@@ -1,29 +1,26 @@
1
1
  require 'pathname'
2
2
 
3
-
4
3
  class Walker
5
- def dir_walker (path_array, directories, files, level, tree_data)
6
- level += 1
4
+ def dir_walk (path_array, directories, files, tree_data)
7
5
  folders_arr = []
8
- for i in (0..path_array.length-1)
9
- if path_array[i].file?
6
+ path_array.each do |i|
7
+ if i.file?
10
8
  files += 1
11
9
  next
12
10
  else
13
- directories += 1
14
- path_array[i].each_child do |dir|
11
+ directories += 1
12
+ i.each_child do |dir|
15
13
  folders_arr << dir
16
14
  tree_data << dir
17
- path_array[i] = dir
18
- end
19
- end
15
+ i = dir
16
+ end
17
+ end
20
18
  end
21
19
  if folders_arr.empty?
22
20
  tree_data << "#{directories} directories, #{files} files"
23
21
  return tree_data
24
-
25
22
  else
26
- dir_walker(folders_arr, directories, files, level, tree_data)
23
+ dir_walk(folders_arr, directories, files, tree_data)
27
24
  end
28
25
  end
29
26
  end
data/lib/tree.rb CHANGED
@@ -3,8 +3,7 @@ require 'tree/walker'
3
3
  require 'tree/tree_render'
4
4
 
5
5
  class Tree
6
- def self.runner(root = Dir.pwd)
7
- level = 0
6
+ def self.run(root = Dir.pwd)
8
7
  tree_data = []
9
8
  directories = 0
10
9
  files = 0
@@ -14,10 +13,10 @@ class Tree
14
13
  path_array << dir
15
14
  tree_data << dir
16
15
  end
17
- tree_data = Walker.new.dir_walker(path_array, directories, files, level, tree_data)
16
+ tree_data = Walker.new.dir_walk(path_array, directories, files, tree_data)
18
17
  files = tree_data.last
19
18
  tree_data.pop
20
- Tree_render.new.render(tree_data, root)
19
+ Tree_render.new.rendering(tree_data, root)
21
20
  puts files
22
21
  end
23
22
  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.3.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sunset Uzuki