Module: Farce::Unsafe

Includes:
Unshared
Defined in:
lib/farce/unsafe.rb,
lib/farce/unsafe/lfu_map.rb,
lib/farce/unsafe/lru_map.rb,
lib/farce/unsafe/tree_map.rb

Overview

Module holding classes with instances which are not thread-safe and cannot be shared between Ractors.

Defined Under Namespace

Classes: LFUMap, LRUMap, TreeMap

Constant Summary

Constants included from Unshared

Farce::Unshared::Counter, Farce::Unshared::Flag

Class Method Summary collapse

Class Method Details

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

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

Examples:

Farce::Unsafe.enfarce({ foo: ["bar"] })
# =>  #<Farce::Unsafe::Map {foo: #<Farce::Unsafe::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:



27
# File 'lib/farce/unsafe.rb', line 27

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