key_tree 0.5.2 → 0.8.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/.github/workflows/ruby.yml +37 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +15 -4
- data/CHANGELOG.md +222 -0
- data/Gemfile +4 -8
- data/README.md +6 -1
- data/Rakefile +2 -0
- data/bin/console +5 -4
- data/bin/setup +0 -1
- data/key_tree.gemspec +20 -7
- data/lib/key_tree.rb +70 -70
- data/lib/key_tree/forest.rb +58 -26
- data/lib/key_tree/loader.rb +19 -16
- data/lib/key_tree/loader/nil.rb +2 -0
- data/lib/key_tree/meta_data.rb +3 -1
- data/lib/key_tree/path.rb +32 -40
- data/lib/key_tree/refine/deep_hash.rb +157 -0
- data/lib/key_tree/refinements.rb +40 -0
- data/lib/key_tree/tree.rb +101 -74
- data/lib/key_tree/version.rb +8 -4
- data/ruby-keytree.sublime-project +8 -0
- metadata +110 -21
- data/.travis.yml +0 -5
- data/RELEASE_NOTES.md +0 -97
data/.travis.yml
DELETED
data/RELEASE_NOTES.md
DELETED
@@ -1,97 +0,0 @@
|
|
1
|
-
# Release Notes
|
2
|
-
|
3
|
-
## v0.5.2 – 2018-05-19
|
4
|
-
|
5
|
-
### Bug fixes
|
6
|
-
|
7
|
-
#### Conform to Hash#fetch API
|
8
|
-
`Tree#fetch` confused its block argument with `#default_proc`, but they
|
9
|
-
have different arguments, so that didn't work out well.
|
10
|
-
|
11
|
-
* 0bd0a6e8 Use proper method to retreive values from trees
|
12
|
-
* 14128a6a Conform to Hash#fetch API
|
13
|
-
|
14
|
-
## v0.5.1 – 2018-05-19
|
15
|
-
|
16
|
-
### New methods
|
17
|
-
|
18
|
-
* `KeyTree::Tree#default_key?(key)`
|
19
|
-
* `KeyTree::Tree#format(fmtstr)`
|
20
|
-
* `KeyTree::Tree#to_h(string_keys: false)`
|
21
|
-
* `KeyTree::Tree#to_json`
|
22
|
-
* `KeyTree::Tree#to_yaml`
|
23
|
-
|
24
|
-
### Bug fixes
|
25
|
-
|
26
|
-
#### Make forests aware of default values in trees
|
27
|
-
|
28
|
-
Ensure that forests pick up default values from a tree.
|
29
|
-
|
30
|
-
* ebd1cb06 Return trees and forests untouched
|
31
|
-
* 3451a430 Propagate default_proc in fetch
|
32
|
-
* e121a4c4 Consider trees to have a key if #default_key?
|
33
|
-
* 50bc56ec Detect if a default_proc yields a key value
|
34
|
-
|
35
|
-
### New features
|
36
|
-
|
37
|
-
#### Key tree content exporters
|
38
|
-
|
39
|
-
Support for exporting the contents of a key tree to Hash, JSON, and YAML.
|
40
|
-
Also includes a convenience string formatter, that fills format strings
|
41
|
-
with values from a `Tree`.
|
42
|
-
|
43
|
-
* 9b5f05f0 Make exported hash key format selectable
|
44
|
-
* e3434d7e Add custom format method
|
45
|
-
* fa6a9b16 Serialize the contents of a tree to json or yaml
|
46
|
-
* 3fc6466b Convert a tree back into nested hashes
|
47
|
-
* e5aecd8b Split symbols into key paths
|
48
|
-
|
49
|
-
## v0.5.0 – 2018-04-17
|
50
|
-
|
51
|
-
### Changed methods
|
52
|
-
|
53
|
-
* `KeyTree.load(type, serialization, prefix: nil)`
|
54
|
-
* `KeyTree::Forest#[key] { |key, original, incoming| }`
|
55
|
-
* `KeyTree::Forest#fetch(key) { |key, original, incoming| }`
|
56
|
-
* `KeyTree::Forest#flatten { |key, original, incoming| }`
|
57
|
-
* `KeyTree::Tree#merge { |key, original, incoming| }`
|
58
|
-
* `KeyTree::Tree#merge! { |key, original, incoming| }`
|
59
|
-
|
60
|
-
### New methods
|
61
|
-
|
62
|
-
* `KeyTree::Loader.fallback(loader)`
|
63
|
-
|
64
|
-
### New features
|
65
|
-
|
66
|
-
#### Merge value selection
|
67
|
-
Improve merge related methods in `KeyTree::Tree`, and `KeyTree::Forest`
|
68
|
-
to take a `Hash#merge` style block argument, to allow control of the result when a key i present on both sides of a merge operation.
|
69
|
-
|
70
|
-
* 083b25c Add merge value selector to Forest#[]
|
71
|
-
* e813e55 Add merge value selection to Forest#fetch
|
72
|
-
* 581bc82 Add method to get list of trees with key
|
73
|
-
* 0f66f03 Pass merge value selector via Forest#flatten
|
74
|
-
* df9b80e Pass any merge selection block to super
|
75
|
-
|
76
|
-
#### Key prefix for file loading
|
77
|
-
When a key file has a name like `prefix@name.ext`, the `prefix` part will be prepended to all keys loaded from the file.
|
78
|
-
|
79
|
-
* fbe333a Changed call syntax for KeyTree.load
|
80
|
-
* 595902c Load keytree with prefix from files with @ in name
|
81
|
-
* d23a7e1 Allow prepending a prefix when loading keys
|
82
|
-
|
83
|
-
#### Fallback for KeyTree loaders
|
84
|
-
Allow a fallback class for handling loading of file types where no loader is specified, e.g. to ignore all files with unrecognized extension for `KeyTree.load_all`.
|
85
|
-
|
86
|
-
* a9d096c Add tree loader fallback
|
87
|
-
|
88
|
-
### Bug fixes
|
89
|
-
|
90
|
-
#### Proper breadth first flattening
|
91
|
-
|
92
|
-
* ff327f2 Use tree enumarator for Forest#key? and #prefix?
|
93
|
-
* 74fa15d Rewrite Forest#[]
|
94
|
-
* 177de08 Use tree enumerator in Forest#[]
|
95
|
-
* d161fe1 Use tree enumerator in Forest#flatten
|
96
|
-
* b0c94df Add breadth-first enumerator for trees
|
97
|
-
* 3468f28 Remove forest vs tree sorting nonsense
|