lib/key_vortex/adapter/memory.rb in key-vortex-0.2.5 vs lib/key_vortex/adapter/memory.rb in key-vortex-1.0.0
- old
+ new
@@ -3,28 +3,48 @@
require "key_vortex"
require "key_vortex/adapter"
class KeyVortex
class Adapter
+ # An in-memory implementation of an adapter. While typically not
+ # useful in production, it can provide a convenient implementation
+ # for unit testing.
class Memory < KeyVortex::Adapter
+ # A pass-through to the constructor which is used by
+ # {KeyVortex.vortex}.
+ # @param items [Hash]
+ # @param limitations [Array of KeyVortex::Limitation]
+ # @return [KeyVortex::Adapter::Memory]
def self.build(items: {}, limitations: [])
new(items, limitations: limitations)
end
+ # Create a new instance of the in-memory adapter. By default, it
+ # has no limitations, but since it's most likely testing an
+ # adapter which is more restrictive, it accepts a list of
+ # limitations to apply.
+ # @param items [Hash] The seed values that should be considered already saved.
+ # @param limitations [Array of KeyVortex::Limitation]
def initialize(items, limitations: [])
super()
@items = items
limitations.each { |limit| register_limitation(limit) }
end
+ # Save the record to the provided hash using {Record#key} as the
+ # key.
+ # @param record [Record]
def save(record)
@items[record.key] = record
end
- def find(id)
- @items[id]
+ # @param key [String]
+ # @return [Record, nil] The record with {Record#key} set to key
+ def find(key)
+ @items[key]
end
+ # Remove the record with {Record#key} set to key
def remove(key)
@items.delete(key)
end
end
end