rubytree 1.0.2 → 2.0.0

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.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: