Class: Reality::Facets::ExtensionManager

Inherits:
Object
  • Object
show all
Defined in:
lib/reality/facets/extension_manager.rb

Overview

nodoc

Instance Method Summary collapse

Constructor Details

#initializeExtensionManager

Returns a new instance of ExtensionManager.



18
19
20
# File 'lib/reality/facets/extension_manager.rb', line 18

def initialize
  @locked = false
end

Instance Method Details

#instance_extension(extension) ⇒ Object

Add a ruby module that will be applied to all extension objects



28
29
30
31
# File 'lib/reality/facets/extension_manager.rb', line 28

def instance_extension(extension)
  Facets.error("Attempting to define instance extension #{extension} after extension manager is locked") if locked?
  instance_extension_list << extension
end

#instance_extensionsObject

An array of modules that should be mixed in to every extension object



23
24
25
# File 'lib/reality/facets/extension_manager.rb', line 23

def instance_extensions
  instance_extension_list.dup
end

#lock!Object



43
44
45
# File 'lib/reality/facets/extension_manager.rb', line 43

def lock!
  @locked = true
end

#locked?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/reality/facets/extension_manager.rb', line 47

def locked?
  !!(@locked ||= nil)
end

#singleton_extension(extension) ⇒ Object



38
39
40
41
# File 'lib/reality/facets/extension_manager.rb', line 38

def singleton_extension(extension)
  Facets.error("Attempting to define singleton extension #{extension} after extension manager is locked") if locked?
  singleton_extension_list << extension
end

#singleton_extensionsObject

An array of modules that should be mixed in to the singleton class of extension objects



34
35
36
# File 'lib/reality/facets/extension_manager.rb', line 34

def singleton_extensions
  singleton_extension_list.dup
end