Class: Hooksler::Route

Inherits:
Object
  • Object
show all
Defined in:
lib/hooksler/route.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, to, params = {}) ⇒ Route

Returns a new instance of Route.



9
10
11
12
13
14
15
16
# File 'lib/hooksler/route.rb', line 9

def initialize(name, to, params = {})
  fail "TO must be Hooksler::Channel::Output" unless to.class.is_a? Hooksler::Channel::Output

  @name = name
  @to = to
  @filters = [*params.delete(:filter)]
  @params = params
end

Instance Attribute Details

#fromObject (readonly)

Returns the value of attribute from.



5
6
7
# File 'lib/hooksler/route.rb', line 5

def from
  @from
end

#nameObject (readonly)

Returns the value of attribute name.



7
8
9
# File 'lib/hooksler/route.rb', line 7

def name
  @name
end

#toObject (readonly)

Returns the value of attribute to.



6
7
8
# File 'lib/hooksler/route.rb', line 6

def to
  @to
end

Instance Method Details

#process(message) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/hooksler/route.rb', line 18

def process(message)
  return unless @to
  return unless @to.respond_to? :dump

  message = @filters.inject(message) do |msg, filter| 
    next unless validate_message! msg
    filter.call(msg, @params)
  end
       
  @to.dump message if validate_message! message
end