rubytree 0.9.7 → 2.0.0

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