rubytree 1.0.2 → 2.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.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubytree
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anupam Sengupta
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-29 00:00:00.000000000 Z
11
+ date: 2022-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -16,178 +16,195 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.6.1
19
+ version: '2.0'
20
+ - - ">"
21
+ - !ruby/object:Gem::Version
22
+ version: 2.3.1
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
- version: 2.6.1
29
+ version: '2.0'
30
+ - - ">"
31
+ - !ruby/object:Gem::Version
32
+ version: 2.3.1
27
33
  - !ruby/object:Gem::Dependency
28
- name: structured_warnings
34
+ name: bundler
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: 0.4.0
34
- type: :runtime
39
+ version: '2.3'
40
+ type: :development
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
44
  - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: 0.4.0
46
+ version: '2.3'
41
47
  - !ruby/object:Gem::Dependency
42
- name: bundler
48
+ name: rake
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: 2.3.4
53
+ version: '13.0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: 2.3.4
60
+ version: '13.0'
55
61
  - !ruby/object:Gem::Dependency
56
- name: coveralls
62
+ name: rdoc
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - ">="
65
+ - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: 0.8.23
67
+ version: '6.0'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
- - - ">="
72
+ - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: 0.8.23
74
+ version: '6.0'
69
75
  - !ruby/object:Gem::Dependency
70
- name: rake
76
+ name: rspec
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
- - - ">="
79
+ - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: 13.0.6
81
+ version: '3.0'
82
+ - - ">"
83
+ - !ruby/object:Gem::Version
84
+ version: '3.10'
76
85
  type: :development
77
86
  prerelease: false
78
87
  version_requirements: !ruby/object:Gem::Requirement
79
88
  requirements:
80
- - - ">="
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '3.0'
92
+ - - ">"
81
93
  - !ruby/object:Gem::Version
82
- version: 13.0.6
94
+ version: '3.10'
83
95
  - !ruby/object:Gem::Dependency
84
- name: rdoc
96
+ name: rtagstask
85
97
  requirement: !ruby/object:Gem::Requirement
86
98
  requirements:
87
- - - ">="
99
+ - - "~>"
88
100
  - !ruby/object:Gem::Version
89
- version: 6.4.0
101
+ version: 0.0.4
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
93
105
  requirements:
94
- - - ">="
106
+ - - "~>"
95
107
  - !ruby/object:Gem::Version
96
- version: 6.4.0
108
+ version: 0.0.4
97
109
  - !ruby/object:Gem::Dependency
98
- name: rspec
110
+ name: rubocop
99
111
  requirement: !ruby/object:Gem::Requirement
100
112
  requirements:
101
113
  - - "~>"
102
114
  - !ruby/object:Gem::Version
103
- version: 3.10.0
115
+ version: '1.0'
104
116
  type: :development
105
117
  prerelease: false
106
118
  version_requirements: !ruby/object:Gem::Requirement
107
119
  requirements:
108
120
  - - "~>"
109
121
  - !ruby/object:Gem::Version
110
- version: 3.10.0
122
+ version: '1.0'
111
123
  - !ruby/object:Gem::Dependency
112
- name: rtagstask
124
+ name: rubocop-rake
113
125
  requirement: !ruby/object:Gem::Requirement
114
126
  requirements:
115
127
  - - "~>"
116
128
  - !ruby/object:Gem::Version
117
- version: 0.0.4
129
+ version: '0.0'
118
130
  type: :development
119
131
  prerelease: false
120
132
  version_requirements: !ruby/object:Gem::Requirement
121
133
  requirements:
122
134
  - - "~>"
123
135
  - !ruby/object:Gem::Version
124
- version: 0.0.4
136
+ version: '0.0'
125
137
  - !ruby/object:Gem::Dependency
126
- name: rubocop
138
+ name: rubocop-rspec
127
139
  requirement: !ruby/object:Gem::Requirement
128
140
  requirements:
129
- - - ">="
141
+ - - "~>"
130
142
  - !ruby/object:Gem::Version
131
- version: 1.24.0
143
+ version: '2.0'
132
144
  type: :development
133
145
  prerelease: false
134
146
  version_requirements: !ruby/object:Gem::Requirement
135
147
  requirements:
136
- - - ">="
148
+ - - "~>"
137
149
  - !ruby/object:Gem::Version
138
- version: 1.24.0
150
+ version: '2.0'
139
151
  - !ruby/object:Gem::Dependency
140
152
  name: test-unit
141
153
  requirement: !ruby/object:Gem::Requirement
142
154
  requirements:
143
- - - ">="
155
+ - - "~>"
144
156
  - !ruby/object:Gem::Version
145
- version: 3.5.3
157
+ version: '3.0'
146
158
  type: :development
147
159
  prerelease: false
148
160
  version_requirements: !ruby/object:Gem::Requirement
149
161
  requirements:
150
- - - ">="
162
+ - - "~>"
151
163
  - !ruby/object:Gem::Version
152
- version: 3.5.3
164
+ version: '3.0'
153
165
  - !ruby/object:Gem::Dependency
154
166
  name: yard
155
167
  requirement: !ruby/object:Gem::Requirement
156
168
  requirements:
157
169
  - - "~>"
158
170
  - !ruby/object:Gem::Version
159
- version: 0.9.27
171
+ version: '0.0'
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: 0.9.20
160
175
  type: :development
161
176
  prerelease: false
162
177
  version_requirements: !ruby/object:Gem::Requirement
163
178
  requirements:
164
179
  - - "~>"
165
180
  - !ruby/object:Gem::Version
166
- version: 0.9.27
181
+ version: '0.0'
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: 0.9.20
167
185
  description: |2+
186
+ RubyTree is a pure Ruby implementation of the generic tree data
187
+ structure. It provides a node-based model to store named nodes in the tree,
188
+ and provides simple APIs to access, modify and traverse the structure.
168
189
 
169
- RubyTree is a pure Ruby implementation of the generic tree data structure. It
170
- provides a node-based model to store named nodes in the tree, and provides
171
- simple APIs to access, modify and traverse the structure.
190
+ The implementation is node-centric, where individual nodes in the tree are
191
+ the primary structural elements. All common tree-traversal methods
192
+ (pre-order, post-order, and breadth-first) are supported.
172
193
 
173
- The implementation is node-centric, where individual nodes in the tree are the
174
- primary structural elements. All common tree-traversal methods (pre-order,
175
- post-order, and breadth-first) are supported.
176
-
177
- The library mixes in the Enumerable and Comparable modules to allow access to
178
- the tree as a standard collection (iteration, comparison, etc.).
194
+ The library mixes in the Enumerable and Comparable modules to allow access
195
+ to the tree as a standard collection (iteration, comparison, etc.).
179
196
 
180
197
  A Binary tree is also provided, which provides the in-order traversal in
181
198
  addition to the other methods.
182
199
 
183
- RubyTree supports importing from, and exporting to JSON, and also supports the
184
- Ruby's standard object marshaling.
200
+ RubyTree supports importing from, and exporting to JSON, and also supports
201
+ the Ruby's standard object marshaling.
185
202
 
186
203
  This is a BSD licensed open source project, and is hosted at
187
- http://github.com/evolve75/RubyTree, and is available as a standard gem from
188
- http://rubygems.org/gems/rubytree.
204
+ <https://github.com/evolve75/RubyTree>, and is available as a standard gem
205
+ from <https://rubygems.org/gems/rubytree>.
189
206
 
190
- The home page for RubyTree is at http://rubytree.anupamsg.me.
207
+ The home page for RubyTree is at <http://rubytree.anupamsg.me>.
191
208
 
192
209
  email: anupamsg@gmail.com
193
210
  executables: []
@@ -195,14 +212,14 @@ extensions: []
195
212
  extra_rdoc_files:
196
213
  - README.md
197
214
  - LICENSE.md
198
- - API-CHANGES.rdoc
199
- - History.rdoc
215
+ - API-CHANGES.md
216
+ - History.md
200
217
  files:
201
218
  - ".gemtest"
202
- - API-CHANGES.rdoc
219
+ - API-CHANGES.md
203
220
  - Gemfile
204
221
  - Gemfile.lock
205
- - History.rdoc
222
+ - History.md
206
223
  - LICENSE.md
207
224
  - README.md
208
225
  - Rakefile
@@ -212,7 +229,6 @@ files:
212
229
  - lib/tree.rb
213
230
  - lib/tree/binarytree.rb
214
231
  - lib/tree/tree_deps.rb
215
- - lib/tree/utils/camel_case_method_handler.rb
216
232
  - lib/tree/utils/hash_converter.rb
217
233
  - lib/tree/utils/json_converter.rb
218
234
  - lib/tree/utils/metrics_methods.rb
@@ -221,7 +237,6 @@ files:
221
237
  - lib/tree/utils/utils.rb
222
238
  - lib/tree/version.rb
223
239
  - rubytree.gemspec
224
- - setup.rb
225
240
  - spec/spec_helper.rb
226
241
  - spec/tree_spec.rb
227
242
  - test/run_test.rb
@@ -233,18 +248,37 @@ files:
233
248
  homepage: http://rubytree.anupamsg.me
234
249
  licenses:
235
250
  - BSD-3-Clause-Clear
236
- metadata: {}
251
+ metadata:
252
+ rubygems_mfa_required: 'true'
237
253
  post_install_message: |2
238
254
  ========================================================================
239
255
  Thank you for installing RubyTree.
240
256
 
241
- Note:: As of 1.0.1, RubyTree can only support MRI Ruby >= 2.7.x
257
+ Note::
258
+
259
+ - 2.0.0 is a major release with BREAKING API changes.
260
+ See `API-CHANGES.md` for details.
261
+
262
+ - `Tree::TreeNode#depth` method has been removed (it was broken).
263
+
264
+ - Support for `CamelCase` methods names has bee removed.
265
+
266
+ - The predicate methods no longer have `is_` or `has_` prefixes. However,
267
+ aliases with these prefixes exist to support existing client code.
268
+
269
+ - Use of integers as node names does not require the optional
270
+ `num_as_name` flag.
271
+
272
+ - `structured_warnings` is no longer a dependency.
273
+
274
+ - Explicit support for rbx Ruby has been removed.
242
275
 
243
- Details of the API changes are documented in the API-CHANGES file.
244
276
  ========================================================================
245
277
  rdoc_options:
246
278
  - "--title"
247
- - Rubytree Documentation
279
+ - 'Rubytree Documentation: rubytree-2.0.0'
280
+ - "--main"
281
+ - README.md
248
282
  - "--quiet"
249
283
  require_paths:
250
284
  - lib
@@ -252,7 +286,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
252
286
  requirements:
253
287
  - - ">="
254
288
  - !ruby/object:Gem::Version
255
- version: '2.7'
289
+ version: '2.6'
256
290
  required_rubygems_version: !ruby/object:Gem::Requirement
257
291
  requirements:
258
292
  - - ">="
@@ -262,7 +296,7 @@ requirements: []
262
296
  rubygems_version: 3.1.4
263
297
  signing_key:
264
298
  specification_version: 4
265
- summary: A generic tree data structure.
299
+ summary: A generic tree data structure for Ruby.
266
300
  test_files:
267
301
  - test/test_binarytree.rb
268
302
  - test/test_subclassed_node.rb
data/API-CHANGES.rdoc DELETED
@@ -1,99 +0,0 @@
1
- # @markup rdoc
2
-
3
- = API Changes in RubyTree
4
-
5
- This file documents various API level changes that have been made to the
6
- RubyTree package.
7
-
8
- Note: API level changes are expected to reduce dramatically after the 1.x
9
- release. In most cases, an alternative will be provided to ensure relatively
10
- smooth transition to the new APIs.
11
-
12
- == Release 0.9.5 Changes
13
-
14
- - The {Tree::TreeNode#add} method now provides 'move' semantics, if a child
15
- which is on an existing tree is added to another tree, or location on the same
16
- tree. In this situation, the child node is removed from its old position, and
17
- added to the new parent node. After the add operation is complete, the child
18
- no longer exists on the old tree/location.
19
-
20
- == Release 0.9.3 Changes
21
-
22
- - The validation for unique node names has changed in the {Tree::TreeNode#add}
23
- method. RubyTree no longer enforces globally unique names. The node-names need
24
- to be unique only between the sibling nodes.
25
-
26
- == Release 0.9.0 Changes
27
-
28
- - New post-ordered traversal via the {Tree::TreeNode#postordered_each} method.
29
-
30
- - The Binary Tree implementation now supports in-order traversal via the
31
- {Tree::BinaryTreeNode#inordered_each} method.
32
-
33
- - RubyTree now mixes in the {http://ruby-doc.org/core-1.8.7/Comparable.html
34
- Comparable} module.
35
-
36
- - The traversal methods ({Tree::TreeNode#each},
37
- {Tree::TreeNode#preordered_each}, {Tree::TreeNode#postordered_each} and
38
- {Tree::TreeNode#breadth_each}) now correctly return an
39
- {http://ruby-doc.org/core-1.8.7/Enumerable.html Enumerator} as the return
40
- value when no block is given, and return the receiver node if a block was
41
- provided. This is consistent with how the standard Ruby collections work.
42
-
43
- == Release 0.8.3 Changes
44
-
45
- - {Tree::TreeNode#siblings} will now return an empty array for the root node.
46
-
47
- == Release 0.8.0 Changes
48
-
49
- - Added the ability to specify an optional insertion position in the
50
- {Tree::TreeNode#add} method. Idea and original code contributed by Dirk.
51
-
52
- - Added a new method {Tree::TreeNode#detached_subtree_copy} to allow cloning
53
- the entire tree. This method is also aliased to {Tree::TreeNode#dup}. Idea
54
- and original code contributed by Vincenzo Farruggia.
55
-
56
- - Converted all CamelCase method names to the canonical ruby_method_names
57
- (underscore separated). The CamelCase methods can still be invoked, but will
58
- throw a Deprecated warning.
59
-
60
- == Release 0.7.0 Changes
61
-
62
- - Converted all exceptions thrown on invalid method arguments to from
63
- 'RuntimeError' to 'ArgumentError'. This impacts the following methods:
64
-
65
- - {Tree::TreeNode#initialize}
66
- - {Tree::TreeNode#add}
67
- - {Tree::TreeNode#[]}
68
- - {Tree::BinaryTreeNode#add}
69
-
70
- - Added {Tree::Utils::TreeMetricsHandler#level Tree::TreeNode#level} as an alias
71
- for {Tree::Utils::TreeMetricsHandler#node_depth Tree::TreeNode#node_depth}
72
-
73
- - Added new methods {Tree::Utils::TreeMetricsHandler#in_degree
74
- Tree::TreeNode#in_degree} and {Tree::Utils::TreeMetricsHandler#out_degree
75
- Tree::TreeNode#out_degree} to report the node's degree stats
76
-
77
- - {Tree::TreeNode#is_only_child?} now returns +true+ for a root node.
78
-
79
- - {Tree::TreeNode#next_sibling} and {Tree::TreeNode#previous_sibling} now
80
- return +nil+ for a root node.
81
-
82
- - {Tree::TreeNode#add} and {Tree::TreeNode#<<} now throw an ArgumentError
83
- exception if a +nil+ node is passed as an argument.
84
-
85
- - Added new methods {Tree::Utils::JSONConverter#to_json Tree::TreeNode#to_json}
86
- and {Tree::Utils::JSONConverter::ClassMethods#json_create
87
- Tree::TreeNode#json_create} to convert to/from the JSON format. Thanks to
88
- Dirk[http://github.com/railsbros-dirk] for this change.
89
-
90
- == Release 0.6.1 Changes
91
-
92
- - Deprecated the {Tree::Utils::TreeMetricsHandler#depth} method as it was
93
- returning an incorrect depth value. Have introduced a new replacement method
94
- {Tree::Utils::TreeMetricsHandler#node_depth} which returns the correct result.
95
-
96
- # Local Variables:
97
- # mode: rdoc
98
- # coding: utf-8-unix
99
- # End: