lib/fluq/handler/base.rb in fluq-0.7.5 vs lib/fluq/handler/base.rb in fluq-0.8.0
- old
+ new
@@ -6,47 +6,38 @@
# @return [String] handler type
def self.type
@type ||= name.split("::")[-1].downcase
end
- # @attr_reader [FluQ::Reactor] reactor
- attr_reader :reactor
-
# @attr_reader [String] name unique name
attr_reader :name
# @attr_reader [Hash] config
attr_reader :config
- # @attr_reader [Regexp] pattern
- attr_reader :pattern
-
# @param [Hash] options
# @option options [String] :name a (unique) handler identifier
- # @option options [String] :pattern tag pattern to match
# @example
#
# class MyHandler < FluQ::Handler::Base
# end
- # MyHandler.new(reactor, pattern: "visits.*")
+ # MyHandler.new
#
- def initialize(reactor, options = {})
- @reactor = reactor
+ def initialize(options = {})
@config = defaults.merge(options)
- @name = config[:name] || generate_name
- @pattern = generate_pattern
+ @name = config[:name] || self.class.type
end
- # @return [Boolean] true if event matches
- def match?(event)
- !!(pattern =~ event.tag)
+ # @param [Array<FluQ::Event>] events
+ # @return [Array<FluQ::Event>] filtered events
+ def filter(events)
+ events
end
- # @param [Array<FluQ::Event>] events
- # @return [Array<FluQ::Event>] matching events
- def select(events)
- events.select {|e| match?(e) }
+ # @return [Timers] timers
+ def timers
+ @timers ||= Timers.new
end
# @abstract callback, called on each event
# @param [Array<FluQ::Event>] the event stream
def on_events(events)
@@ -54,27 +45,9 @@
protected
# Configuration defaults
def defaults
- { pattern: /./, timeout: 60 }
- end
-
- # @return [String] generated name
- def generate_name
- suffix = [Digest::MD5.digest(config[:pattern].to_s)].pack("m0").tr('+/=lIO0', 'pqrsxyz')[0,6]
- [self.class.type, suffix].join("-")
- end
-
- def generate_pattern
- return config[:pattern] if Regexp === config[:pattern]
-
- string = Regexp.quote(config[:pattern])
- string.gsub!("\\*", ".*")
- string.gsub!("\\?", ".")
- string.gsub!(/\\\{(.+?)\\\}/) do |match|
- "(?:#{$1.split(",").join("|")})"
- end
- Regexp.new "^#{string}$"
+ { timeout: 60 }
end
end