key_tree 0.5.2 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|