Module: Lite::Containers::TopN
- Defined in:
- lib/lite/containers/top_n.rb,
lib/lite/containers/top_n/heap.rb,
lib/lite/containers/top_n/deque.rb,
lib/lite/containers/top_n/error.rb,
lib/lite/containers/top_n/abstract.rb,
lib/lite/containers/top_n/avl_tree.rb
Defined Under Namespace
Modules: Abstract, Deque
Classes: AvlTree, Error, Heap
Class Method Summary
collapse
Class Method Details
.instance(backend, type, limit: nil, filter: nil, **backend_options) ⇒ Object
16
17
18
19
20
21
22
|
# File 'lib/lite/containers/top_n.rb', line 16
def self.instance(backend, type, limit: nil, filter: nil, **backend_options)
limit = Integer(limit) unless limit.nil?
raise Error, "Expected positive integer or nil for limit, got '#{limit}'" unless limit.nil? || limit.positive?
wrapper_class = wrapper_class(backend)
wrapper_class.instance type, limit: limit, filter: filter, **backend_options
end
|
.register_backend(name, backend) ⇒ Object
8
9
10
|
# File 'lib/lite/containers/top_n.rb', line 8
def self.register_backend(name, backend)
registry[name] = backend
end
|
.registry ⇒ Object
12
13
14
|
# File 'lib/lite/containers/top_n.rb', line 12
def self.registry
@registry ||= {}
end
|
.wrapper_class(name) ⇒ Object
24
25
26
27
28
|
# File 'lib/lite/containers/top_n.rb', line 24
def self.wrapper_class(name)
raise Error, "Unexpected backend: #{name}" unless registry.key?(name)
registry[name]
end
|