Class: FluQ::Handler::Base

Inherits:
Object
  • Object
show all
Includes:
Mixins::Loggable
Defined in:
lib/fluq/handler/base.rb

Direct Known Subclasses

Log, Null, Test

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Mixins::Loggable

#logger

Constructor Details

#initialize(reactor, options = {}) ⇒ Base

Returns a new instance of Base.

Examples:


class MyHandler < FluQ::Handler::Base
end
MyHandler.new(reactor, pattern: "visits.*")

Parameters:

  • options (Hash) (defaults to: {})

Options Hash (options):

  • :name (String)

    a (unique) handler identifier

  • :pattern (String)

    tag pattern to match



32
33
34
35
36
37
# File 'lib/fluq/handler/base.rb', line 32

def initialize(reactor, options = {})
  @reactor = reactor
  @config  = defaults.merge(options)
  @name    = config[:name] || generate_name
  @pattern = generate_pattern
end

Instance Attribute Details

#configObject (readonly)



18
19
20
# File 'lib/fluq/handler/base.rb', line 18

def config
  @config
end

#nameObject (readonly)



15
16
17
# File 'lib/fluq/handler/base.rb', line 15

def name
  @name
end

#patternObject (readonly)



21
22
23
# File 'lib/fluq/handler/base.rb', line 21

def pattern
  @pattern
end

#reactorObject (readonly)



12
13
14
# File 'lib/fluq/handler/base.rb', line 12

def reactor
  @reactor
end

Class Method Details

.typeString

Returns handler type.

Returns:

  • (String)

    handler type



7
8
9
# File 'lib/fluq/handler/base.rb', line 7

def self.type
  @type ||= name.split("::")[-1].downcase
end

Instance Method Details

#match?(event) ⇒ Boolean

Returns true if event matches.

Returns:

  • (Boolean)

    true if event matches



40
41
42
# File 'lib/fluq/handler/base.rb', line 40

def match?(event)
  !!(pattern =~ event.tag)
end

#on_events(events) ⇒ Object

This method is abstract.

callback, called on each event

Parameters:



52
53
# File 'lib/fluq/handler/base.rb', line 52

def on_events(events)
end

#select(events) ⇒ Array<FluQ::Event>

Returns matching events.

Parameters:

Returns:



46
47
48
# File 'lib/fluq/handler/base.rb', line 46

def select(events)
  events.select {|e| match?(e) }
end