tree_print 0.0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/tree_print.rb +6 -4
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 91c99bfce973ad9a16d091e9d1c0f10cae293fd7
4
- data.tar.gz: 263a39d5385fb4c4db594c29d0269c212f1205a0
3
+ metadata.gz: 93f5cbdb0a954a18bb113b32dea3c8b2dda01701
4
+ data.tar.gz: 4f3a1e0421e1c3cfc8fc713aede5fa289f37dbc8
5
5
  SHA512:
6
- metadata.gz: 0e7df375bd3c0d59c9b55c1e2a627493fea13fe89d37110f7001e17aa8f0d44d72da6a71797cdd206c5a8026d22037818a72a2b92eb85dd658045b9f8c70e38c
7
- data.tar.gz: 4cfa88faee85d93d201769bb723e3b6de6a83fc1d6de56524c55e50cd4c4a29baa3254176ac068441e5023db2fce7a97d9ae7aec396d03bb9939f2d7a2d11def
6
+ metadata.gz: 641e3371a9ab8e9545757c3c771fabb120560bf65fced820c46051ddf6bb449c261bc692aa1e56ca2123b2cfa84c11b5553e6157e6bea8e753ed08e5af4b2f89
7
+ data.tar.gz: bb3cba9828350c4d46ed6138c364cb66f53354c56037357c428e1fbf2b1a2e90e8117d733533543eb041e609fe02625c2d38e0a1d20d26c2330710dec9ca56de
@@ -4,22 +4,23 @@ module TreePrint
4
4
  height = hosts.compact.map(&:height).max
5
5
  buffer = indent(height)
6
6
  max_length = hosts.compact.map { |node| node.val.to_s.length }.max
7
- max_length = [8, max_length].min
7
+ max_length = [8, max_length].min #arbitrary cut-off for super-long strings
8
8
  str = ""
9
9
  row = ""
10
10
  max_length.times do |i|
11
11
  row = hosts.inject("") do |sum, node|
12
- sum + buffer + node.val.to_s[i] + buffer + " " rescue sum + buffer + "." + buffer + " "
12
+ sum + buffer + (node.val.to_s[i] || '.') + buffer + " " rescue sum + buffer + " " + buffer + " " #in case node is nil
13
13
  end + " \n"
14
14
  str << row
15
15
  end
16
16
  if height > 1
17
17
  (2**(height-2)).times do
18
- row = row.gsub(/ \//, '/ ').gsub(/\\ /, " \\").gsub(/ [\w|.] /, '/ \\')
18
+ row = row.gsub(/ \//, '/ ').gsub(/\\ /, " \\") #left and right slashes
19
+ .gsub(/ [\w|.] /, '/ \\') #exchange values for slashes
19
20
  str << row
20
21
  end
21
22
  end
22
- return str + tree_to_s(*hosts.flat_map{ |host|
23
+ return str + tree_to_s(*hosts.flat_map{ |host| #recursion, breadth-first
23
24
  if !host
24
25
  [nil, nil]
25
26
  else
@@ -28,6 +29,7 @@ module TreePrint
28
29
  })
29
30
  end
30
31
 
32
+ #determine proper number of spaces
31
33
  def indent(height)
32
34
  " " * (1...height).inject { |sum, n| sum + 2 ** (n-1) } rescue ""
33
35
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tree_print
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Carlson
@@ -18,7 +18,7 @@ extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - lib/tree_print.rb
21
- homepage: http://rubygems.org/gems/tree_print
21
+ homepage: https://github.com/acarl005/tree_print
22
22
  licenses:
23
23
  - MIT
24
24
  metadata: {}