Class: Fiber

Inherits:
Object
  • Object
show all
Includes:
FixBorkedKeys, Storage
Defined in:
lib/fiber/storage.rb,
lib/fiber/storage/version.rb

Defined Under Namespace

Modules: FixBorkedKeys, Storage

Constant Summary

Constants included from Storage

Storage::VERSION

Class Method Summary collapse

Methods included from Storage

#__storage__, #initialize, #storage, #storage=

Methods included from FixBorkedKeys

#[], #[]=

Class Method Details

.[](key) ⇒ Object

Get a value from the current fiber’s storage.

Raises:

  • (TypeError)


43
44
45
46
47
# File 'lib/fiber/storage.rb', line 43

def self.[] key
	raise TypeError, "Key must be symbol!" unless key.is_a?(Symbol)
	
	self.current.__storage__[key]
end

.[]=(key, value) ⇒ Object

Set a value in the current fiber’s storage.

Raises:

  • (TypeError)


50
51
52
53
54
# File 'lib/fiber/storage.rb', line 50

def self.[]= key, value
	raise TypeError, "Key must be symbol!" unless key.is_a?(Symbol)
	
	self.current.__storage__[key] = value
end

.__borked_keys__Object



56
57
58
59
60
61
62
# File 'lib/fiber/storage.rb', line 56

def self.__borked_keys__
	!Fiber.new do
		key = :"#{self.object_id}.key"
		Fiber[key] = true
		Fiber[key]
	end.resume
end