Module: Lite::Containers::AvlTree::Interfaces::KeyExtractionStrategy::Implicit

Includes:
Lite::Containers::Abstract::ImplicitKey, Abstract
Included in:
Lite::Containers::AvlTree::ImplicitKey
Defined in:
lib/lite/containers/avl_tree/interfaces/key_extraction_strategy/implicit.rb

Defined Under Namespace

Modules: Instance Classes: Node

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Lite::Containers::Abstract::ImplicitKey

#<<

Methods included from Abstract

enforce_exclusion, enforce_exclusion!, register, registry

Class Method Details

.included(base) ⇒ Object



29
30
31
32
# File 'lib/lite/containers/avl_tree/interfaces/key_extraction_strategy/implicit.rb', line 29

def self.included(base)
  Abstract.enforce_exclusion!(base, self)
  base.extend Instance
end

Instance Method Details

#initialize(*args, key_extractor:, **opts) ⇒ Object



34
35
36
37
# File 'lib/lite/containers/avl_tree/interfaces/key_extraction_strategy/implicit.rb', line 34

def initialize(*args, key_extractor:, **opts)
  @key_extractor = key_extractor
  super(*args, **opts)
end

#push(value) ⇒ Object



39
40
41
42
# File 'lib/lite/containers/avl_tree/interfaces/key_extraction_strategy/implicit.rb', line 39

def push(value)
  key = extract_key(value)
  insert_pair key, value
end