rubytree 0.9.7 → 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,87 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubytree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.7
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anupam Sengupta
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-31 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
- name: structured_warnings
14
+ name: json
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.2'
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: '0.2'
29
+ version: '2.0'
30
+ - - ">"
31
+ - !ruby/object:Gem::Version
32
+ version: 2.3.1
27
33
  - !ruby/object:Gem::Dependency
28
- name: json
34
+ name: bundler
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '1.8'
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: '1.8'
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: '1.7'
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: '1.7'
60
+ version: '13.0'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: rdoc
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '4.2'
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: '4.2'
74
+ version: '6.0'
69
75
  - !ruby/object:Gem::Dependency
70
- name: yard
76
+ name: rspec
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: '0.8'
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: '0.8'
91
+ version: '3.0'
92
+ - - ">"
93
+ - !ruby/object:Gem::Version
94
+ version: '3.10'
83
95
  - !ruby/object:Gem::Dependency
84
96
  name: rtagstask
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: 0.0.4
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: 0.0.4
109
+ - !ruby/object:Gem::Dependency
110
+ name: rubocop
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '1.0'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '1.0'
123
+ - !ruby/object:Gem::Dependency
124
+ name: rubocop-rake
85
125
  requirement: !ruby/object:Gem::Requirement
86
126
  requirements:
87
127
  - - "~>"
@@ -95,43 +135,76 @@ dependencies:
95
135
  - !ruby/object:Gem::Version
96
136
  version: '0.0'
97
137
  - !ruby/object:Gem::Dependency
98
- name: rspec
138
+ name: rubocop-rspec
99
139
  requirement: !ruby/object:Gem::Requirement
100
140
  requirements:
101
141
  - - "~>"
102
142
  - !ruby/object:Gem::Version
103
- version: '3.4'
143
+ version: '2.0'
104
144
  type: :development
105
145
  prerelease: false
106
146
  version_requirements: !ruby/object:Gem::Requirement
107
147
  requirements:
108
148
  - - "~>"
109
149
  - !ruby/object:Gem::Version
110
- version: '3.4'
150
+ version: '2.0'
151
+ - !ruby/object:Gem::Dependency
152
+ name: test-unit
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - "~>"
156
+ - !ruby/object:Gem::Version
157
+ version: '3.0'
158
+ type: :development
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: '3.0'
165
+ - !ruby/object:Gem::Dependency
166
+ name: yard
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: '0.0'
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: 0.9.20
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '0.0'
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: 0.9.20
111
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.
112
189
 
113
- RubyTree is a pure Ruby implementation of the generic tree data structure. It
114
- provides a node-based model to store named nodes in the tree, and provides
115
- 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.
116
193
 
117
- The implementation is node-centric, where individual nodes in the tree are the
118
- primary structural elements. All common tree-traversal methods (pre-order,
119
- post-order, and breadth-first) are supported.
120
-
121
- The library mixes in the Enumerable and Comparable modules to allow access to
122
- 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.).
123
196
 
124
197
  A Binary tree is also provided, which provides the in-order traversal in
125
198
  addition to the other methods.
126
199
 
127
- RubyTree supports importing from, and exporting to JSON, and also supports the
128
- Ruby's standard object marshaling.
200
+ RubyTree supports importing from, and exporting to JSON, and also supports
201
+ the Ruby's standard object marshaling.
129
202
 
130
203
  This is a BSD licensed open source project, and is hosted at
131
- http://github.com/evolve75/RubyTree, and is available as a standard gem from
132
- 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>.
133
206
 
134
- The home page for RubyTree is at http://rubytree.anupamsg.me.
207
+ The home page for RubyTree is at <http://rubytree.anupamsg.me>.
135
208
 
136
209
  email: anupamsg@gmail.com
137
210
  executables: []
@@ -139,26 +212,23 @@ extensions: []
139
212
  extra_rdoc_files:
140
213
  - README.md
141
214
  - LICENSE.md
142
- - API-CHANGES.rdoc
143
- - History.rdoc
215
+ - API-CHANGES.md
216
+ - History.md
144
217
  files:
145
218
  - ".gemtest"
146
- - API-CHANGES.rdoc
219
+ - API-CHANGES.md
147
220
  - Gemfile
148
221
  - Gemfile.lock
149
- - History.rdoc
222
+ - History.md
150
223
  - LICENSE.md
151
224
  - README.md
152
225
  - Rakefile
153
- - TAGS
154
226
  - TODO.org
155
227
  - examples/example_basic.rb
156
- - gem_graph.png
157
228
  - lib/rubytree.rb
158
229
  - lib/tree.rb
159
230
  - lib/tree/binarytree.rb
160
231
  - lib/tree/tree_deps.rb
161
- - lib/tree/utils/camel_case_method_handler.rb
162
232
  - lib/tree/utils/hash_converter.rb
163
233
  - lib/tree/utils/json_converter.rb
164
234
  - lib/tree/utils/metrics_methods.rb
@@ -167,7 +237,6 @@ files:
167
237
  - lib/tree/utils/utils.rb
168
238
  - lib/tree/version.rb
169
239
  - rubytree.gemspec
170
- - setup.rb
171
240
  - spec/spec_helper.rb
172
241
  - spec/tree_spec.rb
173
242
  - test/run_test.rb
@@ -178,19 +247,38 @@ files:
178
247
  - test/test_tree.rb
179
248
  homepage: http://rubytree.anupamsg.me
180
249
  licenses:
181
- - BSD
182
- metadata: {}
250
+ - BSD-3-Clause-Clear
251
+ metadata:
252
+ rubygems_mfa_required: 'true'
183
253
  post_install_message: |2
184
254
  ========================================================================
185
255
  Thank you for installing RubyTree.
186
256
 
187
- Note:: As of 0.9.5, the Tree::TreeNode#add method has 'move' semantics.
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.
188
275
 
189
- Details of the API changes are documented in the API-CHANGES file.
190
276
  ========================================================================
191
277
  rdoc_options:
192
278
  - "--title"
193
- - Rubytree Documentation
279
+ - 'Rubytree Documentation: rubytree-2.0.0'
280
+ - "--main"
281
+ - README.md
194
282
  - "--quiet"
195
283
  require_paths:
196
284
  - lib
@@ -198,21 +286,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
198
286
  requirements:
199
287
  - - ">="
200
288
  - !ruby/object:Gem::Version
201
- version: 1.8.7
289
+ version: '2.6'
202
290
  required_rubygems_version: !ruby/object:Gem::Requirement
203
291
  requirements:
204
292
  - - ">="
205
293
  - !ruby/object:Gem::Version
206
294
  version: '0'
207
295
  requirements: []
208
- rubyforge_project:
209
- rubygems_version: 2.4.6
210
- signing_key:
296
+ rubygems_version: 3.1.4
297
+ signing_key:
211
298
  specification_version: 4
212
- summary: A generic tree data structure.
299
+ summary: A generic tree data structure for Ruby.
213
300
  test_files:
214
301
  - test/test_binarytree.rb
215
- - test/test_rubytree_require.rb
216
302
  - test/test_subclassed_node.rb
217
- - test/test_thread_and_fiber.rb
218
303
  - test/test_tree.rb
304
+ - test/test_thread_and_fiber.rb
305
+ - test/test_rubytree_require.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: