tree_graph 0.2.1 → 0.2.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
- SHA1:
3
- metadata.gz: ab015d3d94eff12b6296b6e1525c1834aaa93993
4
- data.tar.gz: 2aef11ef5ecc266b6f222b1ac2174d1cf109e1b1
2
+ SHA256:
3
+ metadata.gz: 549de5663f06ffc375593a6fd2822f7ee880d836a4d0b8be15ad45e2b069ca48
4
+ data.tar.gz: 29a53608756a4aa918af5013926acb89c4134001999cede4ae902e8c0d0dea05
5
5
  SHA512:
6
- metadata.gz: 7aa9c7f03dc01db31e7bf558183b3127e222367cee62cadd47107ba43deb6285d9e398f61905c34792a331a3e10c5b97c8ac739530b19b9b5e36911be6344628
7
- data.tar.gz: 94fa4cdc237b6a8ef0f765e158d09c1784c643506f9abb07c4fd2ad7de63da96fdb28e31b957d3e1a47124f46f485e66f65b148cc197c325b594419bf3f230f0
6
+ metadata.gz: 6ab51ef607180e7d67040c524b4a427df610f0b8951916717d10c0dde111a3e45bb8c14f28204809f5cabbf7f9d47add6d2e85838e455319972f1d4885084699
7
+ data.tar.gz: e156f4b085477285e49d9fc363082719eeeaadf5c94560d253bd4455541e7c062fcdf4dd21081b4b529cb06ba257e03b95cbae5c6f44ff757f9da922fe3d0d09
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
  /tmp/
10
10
  *.swp
11
11
  *.gem
12
+ .tool-versions
data/README.md CHANGED
@@ -20,7 +20,9 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- In Node class, `include TreeGraph`, then implement two methods, `label_for_tree_graph` and `children_for_tree_graph`(which return thing responds to `each`). Then you can call `tree_graph` and `tree_graph_bottom_up` on that Node object.
23
+ In Node class, `include TreeGraph`, then implement two methods, `label_for_tree_graph` and `children_for_tree_graph`(which return thing responds to `each`). Then you can call `tree_graph`, `tree_graph_bottom_up` and `tree_graph_bottom_up_in_same_order` on that Node object.
24
+
25
+ By default, `::Object#label_for_tree_graph` call `to_s`, and `::Object#children_for_tree_graph` return empty array.
24
26
 
25
27
  Or checkout [test/tree_graph_test.rb](https://github.com/turnon/tree_graph/blob/master/test/tree_graph_test.rb) to see how to use.
26
28
 
@@ -1,3 +1,3 @@
1
1
  module TreeGraph
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.4"
3
3
  end
data/lib/tree_graph.rb CHANGED
@@ -10,6 +10,22 @@ module TreeGraph
10
10
  BottomUp.new(self).tree_graph
11
11
  end
12
12
 
13
+ def tree_graph_bottom_up_in_same_order
14
+ BottomUpInSameOrder.new(self).tree_graph
15
+ end
16
+
17
+ EMPTY_ARRAY = []
18
+
19
+ class ::Object
20
+ def label_for_tree_graph
21
+ to_s
22
+ end
23
+
24
+ def children_for_tree_graph
25
+ EMPTY_ARRAY
26
+ end
27
+ end
28
+
13
29
  module Node
14
30
 
15
31
  attr_accessor :is_last
@@ -20,13 +36,15 @@ module TreeGraph
20
36
  end
21
37
 
22
38
  def children_nodes
23
- children = []
24
- raw_node.children_for_tree_graph.each do |c|
25
- children << self.class.new(c, self)
39
+ children.map do |c|
40
+ self.class.new(c, self)
41
+ end.tap do |nodes|
42
+ nodes.last.is_last = true unless nodes.empty?
26
43
  end
27
- return children if children.empty?
28
- children.last.is_last = true
29
- children
44
+ end
45
+
46
+ def children
47
+ raw_node.children_for_tree_graph
30
48
  end
31
49
 
32
50
  def level
@@ -38,7 +56,7 @@ module TreeGraph
38
56
  end
39
57
 
40
58
  def ancestors
41
- return [] unless parent
59
+ return EMPTY_ARRAY unless parent
42
60
  parent.ancestors + [parent]
43
61
  end
44
62
 
@@ -79,4 +97,10 @@ module TreeGraph
79
97
  is_last ? '┌─' : '├─'
80
98
  end
81
99
  end
100
+
101
+ class BottomUpInSameOrder < BottomUp
102
+ def children
103
+ super.reverse
104
+ end
105
+ end
82
106
  end
data/tree_graph.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_development_dependency "bundler", "~> 1.14"
24
- spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "bundler", ">= 2.2.33"
24
+ spec.add_development_dependency "rake", ">= 12.3.3"
25
25
  spec.add_development_dependency "minitest", "~> 5.0"
26
26
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tree_graph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - ken
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-28 00:00:00.000000000 Z
11
+ date: 2022-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.14'
19
+ version: 2.2.33
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.14'
26
+ version: 2.2.33
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: 12.3.3
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: 12.3.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -89,8 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
91
  requirements: []
92
- rubyforge_project:
93
- rubygems_version: 2.6.8
92
+ rubygems_version: 3.1.6
94
93
  signing_key:
95
94
  specification_version: 4
96
95
  summary: A mixin to help you generate tree graph