Module: Rambling::Trie

Defined in:
lib/rambling/trie.rb,
lib/rambling/trie/nodes.rb,
lib/rambling/trie/readers.rb,
lib/rambling/trie/version.rb,
lib/rambling/trie/container.rb,
lib/rambling/trie/nodes/raw.rb,
lib/rambling/trie/comparable.rb,
lib/rambling/trie/compressor.rb,
lib/rambling/trie/enumerable.rb,
lib/rambling/trie/nodes/node.rb,
lib/rambling/trie/inspectable.rb,
lib/rambling/trie/serializers.rb,
lib/rambling/trie/compressible.rb,
lib/rambling/trie/configuration.rb,
lib/rambling/trie/nodes/missing.rb,
lib/rambling/trie/stringifyable.rb,
lib/rambling/trie/readers/reader.rb,
lib/rambling/trie/not_implemented.rb,
lib/rambling/trie/serializers/zip.rb,
lib/rambling/trie/nodes/compressed.rb,
lib/rambling/trie/serializers/file.rb,
lib/rambling/trie/serializers/yaml.rb,
lib/rambling/trie/invalid_operation.rb,
lib/rambling/trie/readers/plain_text.rb,
lib/rambling/trie/serializers/marshal.rb,
lib/rambling/trie/serializers/serializer.rb,
lib/rambling/trie/configuration/properties.rb,
lib/rambling/trie/configuration/provider_collection.rb,
sig/lib/rambling/trie.rbs,
sig/lib/rambling/trie/container.rbs,
sig/lib/rambling/trie/nodes/raw.rbs,
sig/lib/rambling/trie/comparable.rbs,
sig/lib/rambling/trie/compressor.rbs,
sig/lib/rambling/trie/enumerable.rbs,
sig/lib/rambling/trie/nodes/node.rbs,
sig/lib/rambling/trie/inspectable.rbs,
sig/lib/rambling/trie/compressible.rbs,
sig/lib/rambling/trie/nodes/missing.rbs,
sig/lib/rambling/trie/stringifyable.rbs,
sig/lib/rambling/trie/readers/reader.rbs,
sig/lib/rambling/trie/not_implemented.rbs,
sig/lib/rambling/trie/serializers/zip.rbs,
sig/lib/rambling/trie/nodes/compressed.rbs,
sig/lib/rambling/trie/serializers/file.rbs,
sig/lib/rambling/trie/serializers/yaml.rbs,
sig/lib/rambling/trie/invalid_operation.rbs,
sig/lib/rambling/trie/readers/plain_text.rbs,
sig/lib/rambling/trie/serializers/marshal.rbs,
sig/lib/rambling/trie/serializers/serializer.rbs,
sig/lib/rambling/trie/configuration/properties.rbs,
sig/lib/rambling/trie/configuration/provider_collection.rbs

Overview

:reek:IrresponsibleModule (unclear why this is necessary here but not in other submodules)

Defined Under Namespace

Modules: Comparable, Compressible, Configuration, Enumerable, Inspectable, Nodes, Readers, Serializers, Stringifyable Classes: Compressor, Container, InvalidOperation

Constant Summary collapse

PROPERTIES_MUTEX =

Returns:

  • (Mutex)
Mutex.new
VERSION =

Current version of the rambling-trie.

Returns:

  • (String)
'2.7.0'

Class Method Summary collapse

Class Method Details

.config {|Configuration::Properties| ... } ⇒ Configuration::Properties

Provides configuration properties for the Rambling::Trie gem.

Yields:

Returns:



72
73
74
75
# File 'lib/rambling/trie.rb', line 72

def config
  yield properties if block_given?
  properties
end

.create(filepath = nil, reader = nil) {|Container| ... } ⇒ Container

Creates a new Rambling::Trie. Entry point for the rambling-trie API.

Parameters:

  • filepath (String, nil) (defaults to: nil)

    the file to load the words from.

  • reader (Readers::Reader, nil) (defaults to: nil)

    the file parser to get each word.

Yields:

Returns:

See Also:



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/rambling/trie.rb', line 23

def create filepath = nil, reader = nil
  root = root_builder.call

  Rambling::Trie::Container.new root, compressor do |container|
    if filepath
      input_reader = reader || readers.resolve(filepath) || raise(ArgumentError, "no reader for #{filepath}")
      input_reader.each_word(filepath) { |word| container << word }
    end

    yield container if block_given? # steep:ignore
  end
end

.dump(trie, filepath, serializer = nil) ⇒ void

This method returns an undefined value.

Dumps an existing trie from memory into disk. By default, it will deduce the correct way to serialize based on the file extension. Available formats are yml, marshal, and zip versions of all the previous formats. You can also define your own.

Parameters:

  • trie (Container)

    the trie to dump into disk.

  • filepath (String)

    the file to dump to serialized trie into.

  • serializer (Serializers::Serializer, nil) (defaults to: nil)

    the object responsible for trie serialization.

See Also:



64
65
66
67
# File 'lib/rambling/trie.rb', line 64

def dump trie, filepath, serializer = nil
  serializer ||= serializers.resolve filepath
  (serializer || raise).dump trie.root, filepath
end

.load(filepath, serializer = nil) {|Container| ... } ⇒ Container

Note:

Use of # Marshal.load is generally discouraged. Only use the .marshal format with trusted input.

Loads an existing trie from disk into memory. By default, it will deduce the correct way to deserialize based on the file extension. Available formats are yml, marshal, and zip versions of all the previous formats. You can also define your own.

Parameters:

  • filepath (String)

    the file to load the words from.

  • serializer (Serializer, nil) (defaults to: nil)

    the object responsible for loading the trie from disk.

Yields:

Returns:

See Also:



47
48
49
50
51
52
53
# File 'lib/rambling/trie.rb', line 47

def load filepath, serializer = nil
  serializer ||= serializers.resolve filepath
  root = (serializer || raise).load filepath
  Rambling::Trie::Container.new root, compressor do |container|
    yield container if block_given? # steep:ignore
  end
end