Class: Webmidi::Middleware::Filter

Inherits:
Base
  • Object
show all
Defined in:
lib/webmidi/middleware/filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, channels: nil, types: nil, include_system: true, **options) ⇒ Filter

Returns a new instance of Filter.



6
7
8
9
10
11
# File 'lib/webmidi/middleware/filter.rb', line 6

def initialize(app, channels: nil, types: nil, include_system: true, **options)
  super(app, **options)
  @channels = channels
  @types = types
  @include_system = include_system
end

Instance Method Details

#call(message) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/webmidi/middleware/filter.rb', line 13

def call(message)
  return nil if @channels && !message.channel && !@include_system
  return nil if @channels && message.channel && !@channels.include?(message.channel)
  return nil if @types && !@types.any? { |t| message.is_a?(t) }

  @app.call(message)
end