rambling-trie 2.4.0 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -0
- data/README.md +16 -10
- data/lib/rambling/trie/compressor.rb +2 -0
- data/lib/rambling/trie/configuration/properties.rb +5 -2
- data/lib/rambling/trie/configuration/provider_collection.rb +2 -2
- data/lib/rambling/trie/container.rb +12 -1
- data/lib/rambling/trie/enumerable.rb +1 -1
- data/lib/rambling/trie/nodes/node.rb +4 -4
- data/lib/rambling/trie/nodes/raw.rb +2 -1
- data/lib/rambling/trie/readers/plain_text.rb +1 -1
- data/lib/rambling/trie/serializers/file.rb +1 -3
- data/lib/rambling/trie/serializers/marshal.rb +3 -3
- data/lib/rambling/trie/serializers/yaml.rb +2 -2
- data/lib/rambling/trie/serializers/zip.rb +2 -0
- data/lib/rambling/trie/version.rb +1 -1
- data/lib/rambling/trie.rb +1 -1
- data/rambling-trie.gemspec +3 -9
- metadata +7 -122
- data/spec/assets/test_words.en_US.txt +0 -23
- data/spec/assets/test_words.es_DO.txt +0 -24
- data/spec/integration/rambling/trie_spec.rb +0 -116
- data/spec/lib/rambling/trie/comparable_spec.rb +0 -87
- data/spec/lib/rambling/trie/compressor_spec.rb +0 -111
- data/spec/lib/rambling/trie/configuration/properties_spec.rb +0 -75
- data/spec/lib/rambling/trie/configuration/provider_collection_spec.rb +0 -177
- data/spec/lib/rambling/trie/container_spec.rb +0 -466
- data/spec/lib/rambling/trie/enumerable_spec.rb +0 -50
- data/spec/lib/rambling/trie/inspectable_spec.rb +0 -62
- data/spec/lib/rambling/trie/nodes/compressed_spec.rb +0 -43
- data/spec/lib/rambling/trie/nodes/node_spec.rb +0 -9
- data/spec/lib/rambling/trie/nodes/raw_spec.rb +0 -184
- data/spec/lib/rambling/trie/readers/plain_text_spec.rb +0 -26
- data/spec/lib/rambling/trie/readers/reader_spec.rb +0 -14
- data/spec/lib/rambling/trie/serializers/file_spec.rb +0 -11
- data/spec/lib/rambling/trie/serializers/marshal_spec.rb +0 -10
- data/spec/lib/rambling/trie/serializers/serializer_spec.rb +0 -21
- data/spec/lib/rambling/trie/serializers/yaml_spec.rb +0 -10
- data/spec/lib/rambling/trie/serializers/zip_spec.rb +0 -36
- data/spec/lib/rambling/trie/stringifyable_spec.rb +0 -89
- data/spec/lib/rambling/trie_spec.rb +0 -244
- data/spec/spec_helper.rb +0 -42
- data/spec/support/config.rb +0 -15
- data/spec/support/helpers/add_word.rb +0 -20
- data/spec/support/helpers/one_line_heredoc.rb +0 -11
- data/spec/support/shared_examples/a_compressible_trie.rb +0 -46
- data/spec/support/shared_examples/a_container_partial_word.rb +0 -17
- data/spec/support/shared_examples/a_container_scan.rb +0 -14
- data/spec/support/shared_examples/a_container_word.rb +0 -43
- data/spec/support/shared_examples/a_container_words_within.rb +0 -44
- data/spec/support/shared_examples/a_serializable_trie.rb +0 -26
- data/spec/support/shared_examples/a_serializer.rb +0 -60
- data/spec/support/shared_examples/a_trie_data_structure.rb +0 -45
- data/spec/support/shared_examples/a_trie_node.rb +0 -135
- data/spec/support/shared_examples/a_trie_node_implementation.rb +0 -149
- data/spec/tmp/.gitkeep +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a489fbd736614f76449e3f4254d798e759e120985a1b141fbae17ec12330c2f
|
4
|
+
data.tar.gz: e92201410e743a5660fcbbb9703f68ee4e41366b9c4ee987a65f8fd78ea46d0f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0c8f6af0ce43902f5292829e48dfa86e3ca1b623a0742ac129af57bc10209249879f5bdf7ecb4feb65f03da6986748e8cc77f1c458816b8e1aa96063372fc5b
|
7
|
+
data.tar.gz: 1cc6eb48bf18cdace40358e3ed9371f012f164d5fb6f37e7ff99ce01a4ed0a71d18b21821c3cfef324ebf0ae59c18c2a4fe11e2c8a12044de649c75772221fcb
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -21,7 +21,7 @@ and is designed to be very fast to traverse.
|
|
21
21
|
|
22
22
|
You will need:
|
23
23
|
|
24
|
-
* Ruby
|
24
|
+
* Ruby 3.1.0 or up
|
25
25
|
* RubyGems
|
26
26
|
|
27
27
|
See [RVM][rvm], [rbenv][rbenv] or [chruby][chruby] for more information on how to manage Ruby versions.
|
@@ -90,10 +90,16 @@ trie.add 'word'
|
|
90
90
|
trie << 'word'
|
91
91
|
```
|
92
92
|
|
93
|
-
Or if you have multiple words to add, you can use `#concat`:
|
93
|
+
Or if you have multiple words to add, you can use `#concat` or `#push`:
|
94
94
|
|
95
95
|
``` ruby
|
96
96
|
trie.concat %w(a collection of words)
|
97
|
+
trie.push 'a', 'collection', 'of', 'words'
|
98
|
+
|
99
|
+
# or
|
100
|
+
words = %w(a collection of words)
|
101
|
+
trie.concat words
|
102
|
+
trie.push *words
|
97
103
|
```
|
98
104
|
|
99
105
|
And to find out if a word already exists in the trie, use `#word?` or its alias `#include?`:
|
@@ -271,11 +277,11 @@ The Rambling Trie has been tested with the following Ruby versions:
|
|
271
277
|
* 3.3.x
|
272
278
|
* 3.2.x
|
273
279
|
* 3.1.x
|
274
|
-
* 3.0.x
|
275
|
-
* 2.7.x
|
276
280
|
|
277
281
|
**No longer supported**:
|
278
282
|
|
283
|
+
* 3.0.x (EOL'ed)
|
284
|
+
* 2.7.x (EOL'ed)
|
279
285
|
* 2.6.x (EOL'ed)
|
280
286
|
* 2.5.x (EOL'ed)
|
281
287
|
* 2.4.x (EOL'ed)
|
@@ -310,7 +316,7 @@ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEM
|
|
310
316
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
311
317
|
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
312
318
|
|
313
|
-
[badge_fury_badge]: https://badge.fury.io/rb/rambling-trie.svg?version=2.
|
319
|
+
[badge_fury_badge]: https://badge.fury.io/rb/rambling-trie.svg?version=2.5.0
|
314
320
|
[badge_fury_link]: https://badge.fury.io/rb/rambling-trie
|
315
321
|
[chruby]: https://github.com/postmodern/chruby
|
316
322
|
[code_climate_grade_badge]: https://codeclimate.com/github/gonzedge/rambling-trie/badges/gpa.svg
|
@@ -327,17 +333,17 @@ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
327
333
|
[github_action_codeql_badge]: https://github.com/gonzedge/rambling-trie/actions/workflows/codeql.yml/badge.svg
|
328
334
|
[github_action_codeql_link]: https://github.com/gonzedge/rambling-trie/actions/workflows/codeql.yml
|
329
335
|
[github_user_gonzedge]: https://github.com/gonzedge
|
330
|
-
[inch_ci_badge]: https://inch-ci.org/github/gonzedge/rambling-trie.svg?branch=
|
336
|
+
[inch_ci_badge]: https://inch-ci.org/github/gonzedge/rambling-trie.svg?branch=main
|
331
337
|
[license_badge]: https://img.shields.io/badge/license-MIT-blue.svg
|
332
338
|
[license_link]: https://opensource.org/licenses/mit-license.php
|
333
|
-
[marshal]: https://ruby-doc.org/
|
339
|
+
[marshal]: https://ruby-doc.org/3.3.0/Marshal.html
|
334
340
|
[rambling_trie_configuration]: https://github.com/gonzedge/rambling-trie#configuration
|
335
|
-
[rambling_trie_contributing_guide]: https://github.com/gonzedge/rambling-trie/blob/
|
336
|
-
[rambling_trie_plain_text_reader]: https://github.com/gonzedge/rambling-trie/blob/
|
341
|
+
[rambling_trie_contributing_guide]: https://github.com/gonzedge/rambling-trie/blob/main/CONTRIBUTING.md
|
342
|
+
[rambling_trie_plain_text_reader]: https://github.com/gonzedge/rambling-trie/blob/main/lib/rambling/trie/readers/plain_text.rb
|
337
343
|
[rbenv]: https://github.com/sstephenson/rbenv
|
338
344
|
[rubydoc]: http://rubydoc.info/gems/rambling-trie
|
339
345
|
[rubydoc_github]: http://rubydoc.info/github/gonzedge/rambling-trie
|
340
346
|
[rubyzip]: https://github.com/rubyzip/rubyzip
|
341
347
|
[rvm]: https://rvm.io
|
342
348
|
[trie_wiki]: https://en.wikipedia.org/wiki/Trie
|
343
|
-
[yaml]: https://ruby-doc.org/
|
349
|
+
[yaml]: https://ruby-doc.org/3.3.0/stdlibs/yaml/YAML.html
|
@@ -22,6 +22,8 @@ module Rambling
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def merge node, other
|
25
|
+
return new_compressed_node node.letter, node.parent, node.children_tree, node.terminal? if other.nil?
|
26
|
+
|
25
27
|
letter = node.letter.to_s << other.letter.to_s
|
26
28
|
|
27
29
|
new_compressed_node letter.to_sym, node.parent, other.children_tree, other.terminal?
|
@@ -46,8 +46,11 @@ module Rambling
|
|
46
46
|
attr_writer :readers, :serializers
|
47
47
|
|
48
48
|
def reset_readers
|
49
|
-
|
50
|
-
|
49
|
+
@readers = Rambling::Trie::Configuration::ProviderCollection.new :reader, default_reader_providers
|
50
|
+
end
|
51
|
+
|
52
|
+
def default_reader_providers
|
53
|
+
{ txt: Rambling::Trie::Readers::PlainText.new }
|
51
54
|
end
|
52
55
|
|
53
56
|
def reset_serializers
|
@@ -71,7 +71,7 @@ module Rambling
|
|
71
71
|
|
72
72
|
# Get provider corresponding to a given format.
|
73
73
|
# @return [Array<Symbol>] the provider corresponding to that format.
|
74
|
-
# @see https://ruby-doc.org/
|
74
|
+
# @see https://ruby-doc.org/3.3.0/Hash.html#method-i-5B-5D
|
75
75
|
# Hash#keys
|
76
76
|
def formats
|
77
77
|
providers.keys
|
@@ -80,7 +80,7 @@ module Rambling
|
|
80
80
|
# Get provider corresponding to a given format.
|
81
81
|
# @param [Symbol] format the format to search for in the collection.
|
82
82
|
# @return [TProvider] the provider corresponding to that format.
|
83
|
-
# @see https://ruby-doc.org/
|
83
|
+
# @see https://ruby-doc.org/3.3.0/Hash.html#method-i-5B-5D Hash#[]
|
84
84
|
def [] format
|
85
85
|
providers[format]
|
86
86
|
end
|
@@ -68,6 +68,17 @@ module Rambling
|
|
68
68
|
root.partial_word? word.chars
|
69
69
|
end
|
70
70
|
|
71
|
+
# Adds all provided words to the trie.
|
72
|
+
# @param [Array<String>] words the words to add the branch from.
|
73
|
+
# @return [Array<Nodes::Node>] the collection of nodes added.
|
74
|
+
# @raise [InvalidOperation] if the trie is already compressed.
|
75
|
+
# @see #concat
|
76
|
+
# @see Nodes::Raw#add
|
77
|
+
# @see Nodes::Compressed#add
|
78
|
+
def push *words
|
79
|
+
concat words
|
80
|
+
end
|
81
|
+
|
71
82
|
# Checks if a whole word exists in the trie.
|
72
83
|
# @param [String] word the word to look for in the trie.
|
73
84
|
# @return [Boolean] +true+ only if the word is found and the last character corresponds to a terminal node,
|
@@ -155,7 +166,7 @@ module Rambling
|
|
155
166
|
|
156
167
|
# Array of words contained in the root {Nodes::Node Node}.
|
157
168
|
# @return [Array<String>] all words contained in this trie.
|
158
|
-
# @see https://ruby-doc.org/
|
169
|
+
# @see https://ruby-doc.org/3.3.0/Enumerable.html#method-i-to_a Enumerable#to_a
|
159
170
|
def to_a
|
160
171
|
root.to_a
|
161
172
|
end
|
@@ -7,7 +7,7 @@ module Rambling
|
|
7
7
|
include ::Enumerable
|
8
8
|
|
9
9
|
# Returns number of words contained in the trie
|
10
|
-
# @see https://ruby-doc.org/
|
10
|
+
# @see https://ruby-doc.org/3.3.0/Enumerable.html#method-i-count Enumerable#count
|
11
11
|
alias_method :size, :count
|
12
12
|
|
13
13
|
# Iterates over the words contained in the trie.
|
@@ -122,7 +122,7 @@ module Rambling
|
|
122
122
|
# Get {Node Node} corresponding to a given letter.
|
123
123
|
# @param [Symbol] letter the letter to search for in the node.
|
124
124
|
# @return [Node] the node corresponding to that letter.
|
125
|
-
# @see https://ruby-doc.org/
|
125
|
+
# @see https://ruby-doc.org/3.3.0/Hash.html#method-i-5B-5D Hash#[]
|
126
126
|
def [] letter
|
127
127
|
children_tree[letter]
|
128
128
|
end
|
@@ -131,7 +131,7 @@ module Rambling
|
|
131
131
|
# @param [Symbol] letter the letter to insert or update in the node's
|
132
132
|
# @param [Node] node the {Node Node} to assign to that letter.
|
133
133
|
# @return [Node] the node corresponding to the inserted or updated letter.
|
134
|
-
# @see https://ruby-doc.org/
|
134
|
+
# @see https://ruby-doc.org/3.3.0/Hash.html#method-i-5B-5D Hash#[]
|
135
135
|
def []= letter, node
|
136
136
|
children_tree[letter] = node
|
137
137
|
end
|
@@ -139,7 +139,7 @@ module Rambling
|
|
139
139
|
# Check if a {Node Node}'s children tree contains a given letter.
|
140
140
|
# @param [Symbol] letter the letter to search for in the node.
|
141
141
|
# @return [Boolean] +true+ if the letter is present, +false+ otherwise.
|
142
|
-
# @see https://ruby-doc.org/
|
142
|
+
# @see https://ruby-doc.org/3.3.0/Hash.html#method-i-has_key-3F Hash#key?
|
143
143
|
def key? letter
|
144
144
|
children_tree.key? letter
|
145
145
|
end
|
@@ -148,7 +148,7 @@ module Rambling
|
|
148
148
|
# this {Node Node}'s children tree.
|
149
149
|
# @param [Symbol] letter the letter to delete from the node's children tree.
|
150
150
|
# @return [Node] the node corresponding to the deleted letter.
|
151
|
-
# @see https://ruby-doc.org/
|
151
|
+
# @see https://ruby-doc.org/3.3.0/Hash.html#method-i-delete Hash#delete
|
152
152
|
def delete letter
|
153
153
|
children_tree.delete letter
|
154
154
|
end
|
@@ -10,7 +10,7 @@ module Rambling
|
|
10
10
|
# @yield [String] Each line read from the file.
|
11
11
|
# @return [self]
|
12
12
|
def each_word filepath
|
13
|
-
return enum_for :each_word unless block_given?
|
13
|
+
return enum_for :each_word, filepath unless block_given?
|
14
14
|
|
15
15
|
::File.foreach(filepath) { |line| yield line.chomp! }
|
16
16
|
|
@@ -17,9 +17,7 @@ module Rambling
|
|
17
17
|
# @param [String] filepath the filepath to dump the contents to.
|
18
18
|
# @return [Numeric] number of bytes written to disk.
|
19
19
|
def dump contents, filepath
|
20
|
-
::File.
|
21
|
-
f.write contents
|
22
|
-
end
|
20
|
+
::File.write filepath, contents
|
23
21
|
end
|
24
22
|
end
|
25
23
|
end
|
@@ -15,8 +15,8 @@ module Rambling
|
|
15
15
|
# Loads marshaled object from contents in filepath and deserializes it into a {Nodes::Node Node}.
|
16
16
|
# @param [String] filepath the full path of the file to load the marshaled object from.
|
17
17
|
# @return [Nodes::Node] The deserialized {Nodes::Node Node}.
|
18
|
-
# @see https://ruby-doc.org/
|
19
|
-
# @note Use of {https://ruby-doc.org/
|
18
|
+
# @see https://ruby-doc.org/3.3.0/Marshal.html#method-c-load Marshal.load
|
19
|
+
# @note Use of {https://ruby-doc.org/3.3.0/Marshal.html#method-c-load Marshal.load} is generally
|
20
20
|
# discouraged. Only use this with trusted input.
|
21
21
|
def load filepath
|
22
22
|
::Marshal.load serializer.load filepath
|
@@ -26,7 +26,7 @@ module Rambling
|
|
26
26
|
# @param [Nodes::Node] node the node to serialize
|
27
27
|
# @param [String] filepath the full path of the file to dump the marshaled object into.
|
28
28
|
# @return [Numeric] number of bytes written to disk.
|
29
|
-
# @see https://ruby-doc.org/
|
29
|
+
# @see https://ruby-doc.org/3.3.0/Marshal.html#method-c-dump Marshal.dump
|
30
30
|
def dump node, filepath
|
31
31
|
serializer.dump ::Marshal.dump(node), filepath
|
32
32
|
end
|
@@ -15,7 +15,7 @@ module Rambling
|
|
15
15
|
# Loads serialized object from YAML file in filepath and deserializes it into a {Nodes::Node Node}.
|
16
16
|
# @param [String] filepath the full path of the file to load the serialized YAML object from.
|
17
17
|
# @return [Nodes::Node] The deserialized {Nodes::Node Node}.
|
18
|
-
# @see https://ruby-doc.org/
|
18
|
+
# @see https://ruby-doc.org/3.3.0/exts/psych/Psych.html#method-c-safe_load Psych.safe_load
|
19
19
|
def load filepath
|
20
20
|
require 'yaml'
|
21
21
|
::YAML.safe_load(
|
@@ -33,7 +33,7 @@ module Rambling
|
|
33
33
|
# @param [Nodes::Node] node the node to serialize
|
34
34
|
# @param [String] filepath the full path of the file to dump the YAML object into.
|
35
35
|
# @return [Numeric] number of bytes written to disk.
|
36
|
-
# @see https://ruby-doc.org/
|
36
|
+
# @see https://ruby-doc.org/3.3.0/exts/psych/Psych.html#method-c-dump Psych.dump
|
37
37
|
def dump node, filepath
|
38
38
|
require 'yaml'
|
39
39
|
serializer.dump ::YAML.dump(node), filepath
|
data/lib/rambling/trie.rb
CHANGED
@@ -44,7 +44,7 @@ module Rambling
|
|
44
44
|
# @return [Container] the trie just loaded.
|
45
45
|
# @yield [Container] the trie just loaded.
|
46
46
|
# @see Rambling::Trie::Serializers Serializers.
|
47
|
-
# @note Use of # {https://ruby-doc.org/
|
47
|
+
# @note Use of # {https://ruby-doc.org/3.3.0/Marshal.html#method-c-load Marshal.load} is generally
|
48
48
|
# discouraged. Only use the +.marshal+ format with trusted input.
|
49
49
|
def load filepath, serializer = nil
|
50
50
|
serializer ||= serializers.resolve filepath
|
data/rambling-trie.gemspec
CHANGED
@@ -14,28 +14,22 @@ Gem::Specification.new do |gem|
|
|
14
14
|
|
15
15
|
gem.summary = 'A Ruby implementation of the trie data structure.'
|
16
16
|
gem.homepage = 'https://github.com/gonzedge/rambling-trie'
|
17
|
-
gem.date = Time.now.strftime '%Y-%m-%d'
|
18
17
|
gem.metadata = {
|
19
|
-
'changelog_uri' => 'https://github.com/gonzedge/rambling-trie/blob/
|
18
|
+
'changelog_uri' => 'https://github.com/gonzedge/rambling-trie/blob/main/CHANGELOG.md',
|
20
19
|
'documentation_uri' => 'https://www.rubydoc.info/gems/rambling-trie',
|
20
|
+
'rubygems_mfa_required' => 'true',
|
21
21
|
}
|
22
22
|
|
23
23
|
executables = `git ls-files -- bin/*`.split "\n"
|
24
24
|
files = `git ls-files -- {lib,*file,*.gemspec,LICENSE*,README*}`.split "\n"
|
25
|
-
test_files = `git ls-files -- {test,spec,features}/*`.split "\n"
|
26
25
|
|
27
26
|
gem.executables = executables.map { |f| File.basename f }
|
28
27
|
gem.files = files
|
29
|
-
gem.test_files = test_files
|
30
28
|
gem.require_paths = %w(lib)
|
31
29
|
|
32
30
|
gem.name = 'rambling-trie'
|
33
31
|
gem.license = 'MIT'
|
34
32
|
gem.version = Rambling::Trie::VERSION
|
35
33
|
gem.platform = Gem::Platform::RUBY
|
36
|
-
gem.required_ruby_version = '>=
|
37
|
-
|
38
|
-
gem.add_development_dependency 'rake', '~> 13.1'
|
39
|
-
gem.add_development_dependency 'rspec', '~> 3.12'
|
40
|
-
gem.add_development_dependency 'yard', '~> 0.9.34'
|
34
|
+
gem.required_ruby_version = '>= 3.1', '< 4'
|
41
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rambling-trie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Edgar Gonzalez
|
@@ -9,50 +9,8 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-
|
13
|
-
dependencies:
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
name: rake
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - "~>"
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: '13.1'
|
21
|
-
type: :development
|
22
|
-
prerelease: false
|
23
|
-
version_requirements: !ruby/object:Gem::Requirement
|
24
|
-
requirements:
|
25
|
-
- - "~>"
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
version: '13.1'
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: rspec
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - "~>"
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '3.12'
|
35
|
-
type: :development
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - "~>"
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '3.12'
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: yard
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - "~>"
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: 0.9.34
|
49
|
-
type: :development
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - "~>"
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 0.9.34
|
12
|
+
date: 2024-11-30 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
56
14
|
description: 'The Rambling Trie is a Ruby implementation of the trie data structure,
|
57
15
|
which includes compression abilities and is designed to be very fast to traverse. '
|
58
16
|
email:
|
@@ -96,49 +54,13 @@ files:
|
|
96
54
|
- lib/rambling/trie/stringifyable.rb
|
97
55
|
- lib/rambling/trie/version.rb
|
98
56
|
- rambling-trie.gemspec
|
99
|
-
- spec/assets/test_words.en_US.txt
|
100
|
-
- spec/assets/test_words.es_DO.txt
|
101
|
-
- spec/integration/rambling/trie_spec.rb
|
102
|
-
- spec/lib/rambling/trie/comparable_spec.rb
|
103
|
-
- spec/lib/rambling/trie/compressor_spec.rb
|
104
|
-
- spec/lib/rambling/trie/configuration/properties_spec.rb
|
105
|
-
- spec/lib/rambling/trie/configuration/provider_collection_spec.rb
|
106
|
-
- spec/lib/rambling/trie/container_spec.rb
|
107
|
-
- spec/lib/rambling/trie/enumerable_spec.rb
|
108
|
-
- spec/lib/rambling/trie/inspectable_spec.rb
|
109
|
-
- spec/lib/rambling/trie/nodes/compressed_spec.rb
|
110
|
-
- spec/lib/rambling/trie/nodes/node_spec.rb
|
111
|
-
- spec/lib/rambling/trie/nodes/raw_spec.rb
|
112
|
-
- spec/lib/rambling/trie/readers/plain_text_spec.rb
|
113
|
-
- spec/lib/rambling/trie/readers/reader_spec.rb
|
114
|
-
- spec/lib/rambling/trie/serializers/file_spec.rb
|
115
|
-
- spec/lib/rambling/trie/serializers/marshal_spec.rb
|
116
|
-
- spec/lib/rambling/trie/serializers/serializer_spec.rb
|
117
|
-
- spec/lib/rambling/trie/serializers/yaml_spec.rb
|
118
|
-
- spec/lib/rambling/trie/serializers/zip_spec.rb
|
119
|
-
- spec/lib/rambling/trie/stringifyable_spec.rb
|
120
|
-
- spec/lib/rambling/trie_spec.rb
|
121
|
-
- spec/spec_helper.rb
|
122
|
-
- spec/support/config.rb
|
123
|
-
- spec/support/helpers/add_word.rb
|
124
|
-
- spec/support/helpers/one_line_heredoc.rb
|
125
|
-
- spec/support/shared_examples/a_compressible_trie.rb
|
126
|
-
- spec/support/shared_examples/a_container_partial_word.rb
|
127
|
-
- spec/support/shared_examples/a_container_scan.rb
|
128
|
-
- spec/support/shared_examples/a_container_word.rb
|
129
|
-
- spec/support/shared_examples/a_container_words_within.rb
|
130
|
-
- spec/support/shared_examples/a_serializable_trie.rb
|
131
|
-
- spec/support/shared_examples/a_serializer.rb
|
132
|
-
- spec/support/shared_examples/a_trie_data_structure.rb
|
133
|
-
- spec/support/shared_examples/a_trie_node.rb
|
134
|
-
- spec/support/shared_examples/a_trie_node_implementation.rb
|
135
|
-
- spec/tmp/.gitkeep
|
136
57
|
homepage: https://github.com/gonzedge/rambling-trie
|
137
58
|
licenses:
|
138
59
|
- MIT
|
139
60
|
metadata:
|
140
|
-
changelog_uri: https://github.com/gonzedge/rambling-trie/blob/
|
61
|
+
changelog_uri: https://github.com/gonzedge/rambling-trie/blob/main/CHANGELOG.md
|
141
62
|
documentation_uri: https://www.rubydoc.info/gems/rambling-trie
|
63
|
+
rubygems_mfa_required: 'true'
|
142
64
|
post_install_message:
|
143
65
|
rdoc_options: []
|
144
66
|
require_paths:
|
@@ -147,7 +69,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
147
69
|
requirements:
|
148
70
|
- - ">="
|
149
71
|
- !ruby/object:Gem::Version
|
150
|
-
version: '
|
72
|
+
version: '3.1'
|
151
73
|
- - "<"
|
152
74
|
- !ruby/object:Gem::Version
|
153
75
|
version: '4'
|
@@ -161,41 +83,4 @@ rubygems_version: 3.5.3
|
|
161
83
|
signing_key:
|
162
84
|
specification_version: 4
|
163
85
|
summary: A Ruby implementation of the trie data structure.
|
164
|
-
test_files:
|
165
|
-
- spec/assets/test_words.en_US.txt
|
166
|
-
- spec/assets/test_words.es_DO.txt
|
167
|
-
- spec/integration/rambling/trie_spec.rb
|
168
|
-
- spec/lib/rambling/trie/comparable_spec.rb
|
169
|
-
- spec/lib/rambling/trie/compressor_spec.rb
|
170
|
-
- spec/lib/rambling/trie/configuration/properties_spec.rb
|
171
|
-
- spec/lib/rambling/trie/configuration/provider_collection_spec.rb
|
172
|
-
- spec/lib/rambling/trie/container_spec.rb
|
173
|
-
- spec/lib/rambling/trie/enumerable_spec.rb
|
174
|
-
- spec/lib/rambling/trie/inspectable_spec.rb
|
175
|
-
- spec/lib/rambling/trie/nodes/compressed_spec.rb
|
176
|
-
- spec/lib/rambling/trie/nodes/node_spec.rb
|
177
|
-
- spec/lib/rambling/trie/nodes/raw_spec.rb
|
178
|
-
- spec/lib/rambling/trie/readers/plain_text_spec.rb
|
179
|
-
- spec/lib/rambling/trie/readers/reader_spec.rb
|
180
|
-
- spec/lib/rambling/trie/serializers/file_spec.rb
|
181
|
-
- spec/lib/rambling/trie/serializers/marshal_spec.rb
|
182
|
-
- spec/lib/rambling/trie/serializers/serializer_spec.rb
|
183
|
-
- spec/lib/rambling/trie/serializers/yaml_spec.rb
|
184
|
-
- spec/lib/rambling/trie/serializers/zip_spec.rb
|
185
|
-
- spec/lib/rambling/trie/stringifyable_spec.rb
|
186
|
-
- spec/lib/rambling/trie_spec.rb
|
187
|
-
- spec/spec_helper.rb
|
188
|
-
- spec/support/config.rb
|
189
|
-
- spec/support/helpers/add_word.rb
|
190
|
-
- spec/support/helpers/one_line_heredoc.rb
|
191
|
-
- spec/support/shared_examples/a_compressible_trie.rb
|
192
|
-
- spec/support/shared_examples/a_container_partial_word.rb
|
193
|
-
- spec/support/shared_examples/a_container_scan.rb
|
194
|
-
- spec/support/shared_examples/a_container_word.rb
|
195
|
-
- spec/support/shared_examples/a_container_words_within.rb
|
196
|
-
- spec/support/shared_examples/a_serializable_trie.rb
|
197
|
-
- spec/support/shared_examples/a_serializer.rb
|
198
|
-
- spec/support/shared_examples/a_trie_data_structure.rb
|
199
|
-
- spec/support/shared_examples/a_trie_node.rb
|
200
|
-
- spec/support/shared_examples/a_trie_node_implementation.rb
|
201
|
-
- spec/tmp/.gitkeep
|
86
|
+
test_files: []
|