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



54
55
56
57
58
59
# File 'lib/story_teller/experimental/handler_dsl.rb', line 54

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

.key_for(obj) ⇒ Object



44
45
46
47
48
# File 'lib/story_teller/experimental/handler_dsl.rb', line 44

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



50
51
52
# File 'lib/story_teller/experimental/handler_dsl.rb', line 50

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