Class: Farce::Transaction::Map
- Inherits:
-
Abstract::ConcurrentMap
- Object
- Abstract::Map
- Abstract::ConcurrentMap
- Farce::Transaction::Map
- Defined in:
- lib/farce/transaction/map.rb
Overview
A ConcurrentMap that is part of a transaction.
Reads and writes validate the keys they access, allowing concurrent changes to other keys. Size reads validate cardinality without observing contents. Enumeration, keys, getkey, and clear capture and validate the full map. Staged changes are visible through this wrapper and publish only on commit. Key validation compares current values by identity, not per-key write history. Commit captures a full snapshot for maps accessed by key. Changes after that snapshot is captured can still cause the attempt to fail.
Constant Summary
Constants included from MapOperations
Farce::Transaction::MapOperations::READ_HELPERS
Method Summary
Methods included from Unshareable
#initialize, #ractor_shareable?
Methods inherited from Abstract::ConcurrentMap
#[], #[]=, #clear, #compact!, #compact_blank!, #compare_and_set, #compare_keys_by_identity?, #compare_values_by_identity?, #delete, #delete_if, #each, #each_key, #each_value, #fetch, #get, #getkey, #keep_if, #key?, #keys, #merge!, #reject!, #reverse_merge!, #select!, #size, #store, #store_if_absent, #swap, #transform_values!, #update, #upsert, #values, #wait_until, #wait_until_changed, #wait_until_match, #wait_until_non_nil, #wait_until_value, #wait_while, #wait_while_match, #wait_while_value
Methods included from Abstract::DuplicableMap
#compact, #compact_blank, #deep_dup, #duplicable?, #except, #flatten, #invert, #merge, #reject, #reverse_merge, #select, #slice, #stringify_keys, #symbolize_keys, #to_proc, #transform_keys, #transform_values, #with_indifferent_access
Methods inherited from Abstract::Map
#[], #[]=, #as_extended_json, #as_json, #assert_valid_keys, #assoc, #bson_type, #clear, #compare_by_identity?, #compare_keys_by_identity?, #compare_values_by_identity?, #deconstruct_keys, #delete, #dig, #each, #each_key, #each_pair, #each_value, #empty?, #fetch, #fetch_values, #getkey, #has_key?, #key, #key?, #keys, #length, #rassoc, #shareable_keys?, #shareable_values?, #size, #store, #store_if_absent, #to_a, #to_bson, #to_bson_normalized_value, #to_cbor, #to_h, #to_hash, #to_json, #to_msgpack, #to_query, #to_s, #value?, #values_at, #weak_keys?, #weak_values?
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Farce::Transaction::Wrapper