Module: Inform::Behavior

Defined in:
lib/story_teller/experimental/handler_dsl.rb

Overview

The Inform::Behavior module

Defined Under Namespace

Classes: Registry

Constant Summary collapse

REGISTRY =
Registry.new

Class Method Summary collapse

Class Method Details

.attach(obj) ⇒ Object



39
40
41
42
43
44
# File 'lib/story_teller/experimental/handler_dsl.rb', line 39

def self.attach(obj)
  if (mod = Inform::Behavior::REGISTRY[key_for(obj)])
    obj.extend(mod)
  end
  obj
end

.key_for(obj) ⇒ Object



29
30
31
32
33
# File 'lib/story_teller/experimental/handler_dsl.rb', line 29

def self.key_for(obj)
  return obj.identity if obj.respond_to?(:identity) &&
    !(obj.identity.nil? || obj.identity.empty?)
  "<##{obj.class}:#{obj.name}>"
end

.register(obj, mod) ⇒ Object



35
36
37
# File 'lib/story_teller/experimental/handler_dsl.rb', line 35

def self.register(obj, mod)
  Inform::Behavior::REGISTRY[key_for(obj)] = mod
end