Sha256: 45c3ee775c422a04c12f1eb0b5e30bdc5e9031552a597f63f28635d67fccd1f9
Contents?: true
Size: 979 Bytes
Versions: 2
Compression:
Stored size: 979 Bytes
Contents
module RShade class EventObserver attr_reader :event_processor, :config # @param [RShade::Config::Store] config # @param [RShade::EventProcessor] event_store def initialize(config, event_processor) @event_processor = event_processor @config = config @level = 0 @hook = Hash.new(0) @hook[:enter] = 1 @hook[:leave] = -1 end # @param [:enter, :leave, :other] type # @param [RShade::Event] event def call(event, type) @level += @hook[type] return unless pass?(event) enter(event) if type == :enter leave(event) if type == :leave other(event) if type == :other end private def enter(event) event_processor.enter event, @level end def leave(event) event_processor.leave event, @level end def other(event) event_processor.other event, @level end def pass?(event) config.filter_composition.call(event) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rshade-0.1.9.1 | lib/rshade/event_observer.rb |
rshade-0.1.9 | lib/rshade/event_observer.rb |