class Gamefic::Binding
Attributes
Public Class Methods
Source
# File lib/gamefic/binding.rb, line 20 def for(object) registry.fetch(object, []).last end
Source
# File lib/gamefic/binding.rb, line 31 def initialize(narrative, code) @narrative = narrative @code = code end
@param narrative [Narrative] @param code [Proc]
Source
# File lib/gamefic/binding.rb, line 15 def pop(object) registry[object].pop registry.delete(object) if registry[object].empty? end
Source
# File lib/gamefic/binding.rb, line 10 def push(object, narrative) registry[object] ||= [] registry[object].push narrative end
Public Instance Methods
Source
# File lib/gamefic/binding.rb, line 36 def call(*args) args.each { |arg| Binding.push arg, @narrative } @narrative.instance_exec(*args, &@code) ensure args.each { |arg| Binding.pop arg } end
Also aliased as: []