forester 4.3.0 → 5.0.0
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 +4 -4
- data/.gitignore +16 -1
- data/.travis.yml +4 -5
- data/CHANGELOG.md +14 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +1 -1
- data/{LICENSE → LICENSE.txt} +5 -5
- data/README.md +60 -24
- data/Rakefile +4 -4
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/forester.gemspec +28 -20
- data/lib/forester.rb +13 -11
- data/lib/forester/tree_factory.rb +18 -49
- data/lib/forester/tree_node.rb +68 -80
- data/lib/forester/tree_node_ext/iterators.rb +57 -0
- data/lib/forester/tree_node_ext/mutators.rb +36 -43
- data/lib/forester/tree_node_ext/serializers.rb +48 -0
- data/lib/forester/tree_node_ext/validators.rb +21 -24
- data/lib/forester/version.rb +1 -15
- metadata +78 -50
- data/lib/forester/node_content/base.rb +0 -9
- data/lib/forester/node_content/dictionary.rb +0 -91
- data/lib/forester/node_content/factory.rb +0 -25
- data/lib/forester/node_content/list.rb +0 -31
- data/lib/forester/tree_node_ext/aggregators.rb +0 -101
- data/lib/forester/tree_node_ext/views.rb +0 -34
- data/test/minitest_helper.rb +0 -41
- data/test/test_ad_hoc_tree.rb +0 -48
- data/test/test_aggregators.rb +0 -105
- data/test/test_mutators.rb +0 -97
- data/test/test_tree_factory.rb +0 -30
- data/test/test_tree_node.rb +0 -44
- data/test/test_validators.rb +0 -240
- data/test/test_views.rb +0 -22
- data/test/trees/simple_tree.yml +0 -61
data/test/test_views.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'minitest_helper'
|
2
|
-
|
3
|
-
class TestViews < Forester::Test
|
4
|
-
|
5
|
-
def test_as_root_hash
|
6
|
-
hash = YAML.load_file(PATH_TO_SIMPLE_TREE)
|
7
|
-
add_empty_children_keys(hash['root'])
|
8
|
-
|
9
|
-
expected = hash['root']
|
10
|
-
actual = tree.as_root_hash(stringify_keys: true)
|
11
|
-
|
12
|
-
assert_equal expected, actual
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def add_empty_children_keys(hash)
|
18
|
-
hash['children'] = hash.fetch('children', [])
|
19
|
-
hash['children'].each { |child| add_empty_children_keys(child) }
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
data/test/trees/simple_tree.yml
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
---
|
2
|
-
root:
|
3
|
-
name: root
|
4
|
-
value: 0
|
5
|
-
strings:
|
6
|
-
- This is the root
|
7
|
-
children:
|
8
|
-
- name: First node of level 1
|
9
|
-
value: 1
|
10
|
-
color: Green
|
11
|
-
tone: Dark
|
12
|
-
tags:
|
13
|
-
- First tag
|
14
|
-
- Second tag
|
15
|
-
- Third tag
|
16
|
-
children:
|
17
|
-
- name: First node of level 2
|
18
|
-
value: 2
|
19
|
-
strings:
|
20
|
-
- Already in level 2
|
21
|
-
- I want to be the very best
|
22
|
-
- like no one ever was
|
23
|
-
- name: Second node of level 2
|
24
|
-
special: No other node has this field
|
25
|
-
value: 3
|
26
|
-
strings:
|
27
|
-
- I have a sibling to my left
|
28
|
-
- She wants to catch them all
|
29
|
-
- name: Second node of level 1
|
30
|
-
value: 4
|
31
|
-
color: Green
|
32
|
-
tone: Dark
|
33
|
-
children:
|
34
|
-
- name: Third node of level 2
|
35
|
-
value: 5
|
36
|
-
children:
|
37
|
-
- name: First node of level 3
|
38
|
-
value: 6
|
39
|
-
tags:
|
40
|
-
- Second tag
|
41
|
-
- Third tag
|
42
|
-
strings:
|
43
|
-
- Reached level 3
|
44
|
-
- It's dark
|
45
|
-
- name: Second node of level 3
|
46
|
-
value: 7
|
47
|
-
strings:
|
48
|
-
- A hidden secret lies in the deepest leaves...
|
49
|
-
- Just kidding.
|
50
|
-
children:
|
51
|
-
- name: First node of level 4
|
52
|
-
value: 8
|
53
|
-
color: Yellow
|
54
|
-
- name: Second node of level 4
|
55
|
-
value: 9
|
56
|
-
color: Yellow
|
57
|
-
tags:
|
58
|
-
- Third tag
|
59
|
-
strings:
|
60
|
-
- Could forester handle trees with hundreds of levels?
|
61
|
-
- Maybe.
|