Class: SolidCache::MaglevHash
- Inherits:
-
Object
- Object
- SolidCache::MaglevHash
- Defined in:
- lib/solid_cache/maglev_hash.rb
Defined Under Namespace
Classes: Preferences
Constant Summary collapse
- TABLE_SIZE =
Must be prime
2053
Instance Attribute Summary collapse
-
#nodes ⇒ Object
readonly
Returns the value of attribute nodes.
Instance Method Summary collapse
-
#initialize(nodes) ⇒ MaglevHash
constructor
A new instance of MaglevHash.
- #node(key) ⇒ Object
Constructor Details
#initialize(nodes) ⇒ MaglevHash
Returns a new instance of MaglevHash.
10 11 12 13 14 15 16 |
# File 'lib/solid_cache/maglev_hash.rb', line 10 def initialize(nodes) raise ArgumentError, "No nodes specified" if nodes.count == 0 raise ArgumentError, "Maximum node count is #{TABLE_SIZE}" if nodes.count > TABLE_SIZE @nodes = nodes.uniq.sort @lookup = build_lookup end |
Instance Attribute Details
#nodes ⇒ Object (readonly)
Returns the value of attribute nodes.
5 6 7 |
# File 'lib/solid_cache/maglev_hash.rb', line 5 def nodes @nodes end |
Instance Method Details
#node(key) ⇒ Object
18 19 20 |
# File 'lib/solid_cache/maglev_hash.rb', line 18 def node(key) nodes[lookup[quick_hash(key) % TABLE_SIZE]] end |