class Wongi::Engine::GeneratorTracker
Public Class Methods
new()
click to toggle source
# File lib/wongi-engine/generator_tracker.rb, line 3 def initialize @by_wme = Hash.new { |h, k| h[k] = Set.new } @by_token = Hash.new { |h, k| h[k] = Set.new } end
Public Instance Methods
add(wme, token)
click to toggle source
# File lib/wongi-engine/generator_tracker.rb, line 8 def add(wme, token) @by_wme[wme].add(token) @by_token[token.object_id].add(wme) end
for_token(token)
click to toggle source
# File lib/wongi-engine/generator_tracker.rb, line 17 def for_token(token) @by_token.has_key?(token.object_id) ? @by_token[token.object_id] : Set.new end
for_wme(wme)
click to toggle source
# File lib/wongi-engine/generator_tracker.rb, line 13 def for_wme(wme) @by_wme.has_key?(wme) ? @by_wme[wme] : Set.new end
remove_token(token)
click to toggle source
# File lib/wongi-engine/generator_tracker.rb, line 21 def remove_token(token) wmes = for_token(token) @by_token.delete(token.object_id) wmes.each do |wme| next unless @by_wme.key?(wme) @by_wme[wme].delete(token) @by_wme.delete(wme) if @by_wme[wme].empty? end end