rubytree 1.0.2 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
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.1
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: 2023-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -16,203 +16,242 @@ 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
+ - - "~>"
81
90
  - !ruby/object:Gem::Version
82
- version: 13.0.6
91
+ version: '3.0'
92
+ - - ">"
93
+ - !ruby/object:Gem::Version
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
+ - - "~>"
149
+ - !ruby/object:Gem::Version
150
+ version: '2.0'
151
+ - !ruby/object:Gem::Dependency
152
+ name: simplecov
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - "~>"
137
156
  - !ruby/object:Gem::Version
138
- version: 1.24.0
157
+ version: '0.21'
158
+ type: :development
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: '0.21'
165
+ - !ruby/object:Gem::Dependency
166
+ name: simplecov-lcov
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: '0.8'
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: '0.8'
139
179
  - !ruby/object:Gem::Dependency
140
180
  name: test-unit
141
181
  requirement: !ruby/object:Gem::Requirement
142
182
  requirements:
143
- - - ">="
183
+ - - "~>"
144
184
  - !ruby/object:Gem::Version
145
- version: 3.5.3
185
+ version: '3.0'
146
186
  type: :development
147
187
  prerelease: false
148
188
  version_requirements: !ruby/object:Gem::Requirement
149
189
  requirements:
150
- - - ">="
190
+ - - "~>"
151
191
  - !ruby/object:Gem::Version
152
- version: 3.5.3
192
+ version: '3.0'
153
193
  - !ruby/object:Gem::Dependency
154
194
  name: yard
155
195
  requirement: !ruby/object:Gem::Requirement
156
196
  requirements:
157
197
  - - "~>"
158
198
  - !ruby/object:Gem::Version
159
- version: 0.9.27
199
+ version: '0.0'
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 0.9.20
160
203
  type: :development
161
204
  prerelease: false
162
205
  version_requirements: !ruby/object:Gem::Requirement
163
206
  requirements:
164
207
  - - "~>"
165
208
  - !ruby/object:Gem::Version
166
- version: 0.9.27
167
- description: |2+
168
-
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.
172
-
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.).
209
+ version: '0.0'
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: 0.9.20
213
+ description: |2
179
214
 
180
- A Binary tree is also provided, which provides the in-order traversal in
181
- addition to the other methods.
215
+ RubyTree is a Ruby implementation of the generic tree data structure. It
216
+ provides simple APIs to store named nodes, and to access, modify, and
217
+ traverse the tree.
182
218
 
183
- RubyTree supports importing from, and exporting to JSON, and also supports the
184
- Ruby's standard object marshaling.
219
+ The data model is node-centric, where nodes in the tree are the primary
220
+ structural elements. It supports all common tree-traversal methods (pre-order,
221
+ post-order, and breadth first).
185
222
 
186
- 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.
223
+ RubyTree mixes in the Enumerable and Comparable modules and behaves like a
224
+ standard Ruby collection (iteration, comparison, etc.).
189
225
 
190
- The home page for RubyTree is at http://rubytree.anupamsg.me.
226
+ RubyTree also includes a binary tree implementation, which provides in-order
227
+ node traversal besides the other methods.
191
228
 
229
+ RubyTree can import from and export to JSON, and supports Ruby’s object
230
+ marshaling.
192
231
  email: anupamsg@gmail.com
193
232
  executables: []
194
233
  extensions: []
195
234
  extra_rdoc_files:
196
235
  - README.md
197
236
  - LICENSE.md
198
- - API-CHANGES.rdoc
199
- - History.rdoc
237
+ - API-CHANGES.md
238
+ - History.md
200
239
  files:
201
240
  - ".gemtest"
202
- - API-CHANGES.rdoc
241
+ - API-CHANGES.md
203
242
  - Gemfile
204
243
  - Gemfile.lock
205
- - History.rdoc
244
+ - History.md
206
245
  - LICENSE.md
207
246
  - README.md
208
247
  - Rakefile
248
+ - TAGS
209
249
  - TODO.org
210
250
  - examples/example_basic.rb
211
251
  - lib/rubytree.rb
212
252
  - lib/tree.rb
213
253
  - lib/tree/binarytree.rb
214
254
  - lib/tree/tree_deps.rb
215
- - lib/tree/utils/camel_case_method_handler.rb
216
255
  - lib/tree/utils/hash_converter.rb
217
256
  - lib/tree/utils/json_converter.rb
218
257
  - lib/tree/utils/metrics_methods.rb
@@ -221,7 +260,6 @@ files:
221
260
  - lib/tree/utils/utils.rb
222
261
  - lib/tree/version.rb
223
262
  - rubytree.gemspec
224
- - setup.rb
225
263
  - spec/spec_helper.rb
226
264
  - spec/tree_spec.rb
227
265
  - test/run_test.rb
@@ -232,19 +270,38 @@ files:
232
270
  - test/test_tree.rb
233
271
  homepage: http://rubytree.anupamsg.me
234
272
  licenses:
235
- - BSD-3-Clause-Clear
236
- metadata: {}
273
+ - BSD-2-Clause
274
+ metadata:
275
+ rubygems_mfa_required: 'true'
237
276
  post_install_message: |2
238
277
  ========================================================================
239
278
  Thank you for installing RubyTree.
240
279
 
241
- Note:: As of 1.0.1, RubyTree can only support MRI Ruby >= 2.7.x
280
+ Note::
281
+
282
+ - 2.0.0 is a major release with BREAKING API changes.
283
+ See `API-CHANGES.md` for details.
284
+
285
+ - `Tree::TreeNode#depth` method has been removed (it was broken).
286
+
287
+ - Support for `CamelCase` methods names has bee removed.
288
+
289
+ - The predicate methods no longer have `is_` or `has_` prefixes. However,
290
+ aliases with these prefixes exist to support existing client code.
291
+
292
+ - Use of integers as node names does not require the optional
293
+ `num_as_name` flag.
294
+
295
+ - `structured_warnings` is no longer a dependency.
296
+
297
+ - Explicit support for rbx Ruby has been removed.
242
298
 
243
- Details of the API changes are documented in the API-CHANGES file.
244
299
  ========================================================================
245
300
  rdoc_options:
246
301
  - "--title"
247
- - Rubytree Documentation
302
+ - 'Rubytree Documentation: rubytree-2.0.1'
303
+ - "--main"
304
+ - README.md
248
305
  - "--quiet"
249
306
  require_paths:
250
307
  - lib
@@ -252,7 +309,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
252
309
  requirements:
253
310
  - - ">="
254
311
  - !ruby/object:Gem::Version
255
- version: '2.7'
312
+ version: '2.6'
256
313
  required_rubygems_version: !ruby/object:Gem::Requirement
257
314
  requirements:
258
315
  - - ">="
@@ -262,10 +319,5 @@ requirements: []
262
319
  rubygems_version: 3.1.4
263
320
  signing_key:
264
321
  specification_version: 4
265
- summary: A generic tree data structure.
266
- test_files:
267
- - test/test_binarytree.rb
268
- - test/test_subclassed_node.rb
269
- - test/test_tree.rb
270
- - test/test_thread_and_fiber.rb
271
- - test/test_rubytree_require.rb
322
+ summary: A generic tree data structure for Ruby.
323
+ test_files: []
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: