Module: Farce::Unshared

Included in:
Unsafe
Defined in:
lib/farce/unshared.rb,
lib/farce/unshared/map.rb,
lib/farce/unshared/set.rb,
lib/farce/unshared/atom.rb,
lib/farce/unshared/flag.rb,
lib/farce/unshared/lazy.rb,
lib/farce/unshared/lease.rb,
lib/farce/unshared/queue.rb,
lib/farce/unshared/vector.rb,
lib/farce/unshared/counter.rb,
lib/farce/unshared/lfu_map.rb,
lib/farce/unshared/lru_map.rb,
lib/farce/unshared/lazy_ref.rb,
lib/farce/unshared/molecule.rb,
lib/farce/unshared/tree_map.rb,
lib/farce/unshared/weak_map.rb,
lib/farce/unshared/weak_set.rb,
lib/farce/unshared/lease_map.rb,
lib/farce/unshared/weak_atom.rb,
lib/farce/unshared/lease_pool.rb,
lib/farce/unshared/sorted_set.rb,
lib/farce/unshared/timer_queue.rb,
lib/farce/unshared/weak_key_map.rb,
lib/farce/unshared/priority_queue.rb,
lib/farce/unshared/weak_value_map.rb

Overview

Thread-safe containers for values used within one Ractor.

Defined Under Namespace

Classes: Atom, LFUMap, LRUMap, Lazy, LazyRef, Lease, LeaseMap, LeasePool, Map, Molecule, PriorityQueue, Queue, Set, SortedSet, TimerQueue, TreeMap, Vector, WeakAtom, WeakKeyMap, WeakMap, WeakSet, WeakValueMap

Constant Summary collapse

Flag =

Alias for Flag so Farce::Unshared can be more easily used as a namespace.

Farce::Flag
Counter =

Alias for Counter so Farce::Unshared can be more easily used as a namespace.

Farce::Counter

Class Method Summary collapse

Class Method Details

.enfarce(object, freeze: nil) {|object| ... } ⇒ BasicObject

Converts vanilla Ruby objects into their Farce::Unshared equivalents.

Examples:

Farce::Unshared.enfarce({ foo: ["bar"] })
# =>  #<Farce::Unshared::Map {foo: #<Farce::Unshared::Vector ["bar"]>}>

Parameters:

  • object (BasicObject) —

    The root object to convert

  • freeze (Boolean, nil) (defaults to: nil) —

    Whether to freeze the converted objects. If set to nil (default), the freezing behavior will depend on the original object's frozen state.

Yields:

  • (object) —

    Optional block, called with any object that doesn't have a specific conversion defined.

Yield Parameters:

  • object (BasicObject) —

    the object to convert

Yield Returns:

  • (BasicObject) —

    the converted object

Returns:

  • (BasicObject) —

    the converted object

See Also:



26
# File 'lib/farce/unshared.rb', line 26

def self.enfarce(object, **, &) = Internal::Converter.new(self, **, &).convert(object)