midi-message 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -21,7 +21,12 @@ module MIDIMessage
21
21
 
22
22
  def process_single(message)
23
23
  val = message.send(@property)
24
- result = @bandwidth.map { |bw| val >= bw.min && val <= bw.max ? message : nil }
24
+ result = @bandwidth.map do |bw|
25
+ case bw
26
+ when Range then val >= bw.min && val <= bw.max ? message : nil
27
+ when Numeric then val == bw ? message : nil
28
+ end
29
+ end
25
30
  result.include?(message) ^ @reject ? message : nil
26
31
  end
27
32
 
@@ -8,7 +8,7 @@ module MIDIMessage
8
8
 
9
9
  def self.included(base)
10
10
  base.extend(ClassMethods)
11
- #base.send(:attr_reader, :message)
11
+ base.send(:attr_reader, :name)
12
12
  end
13
13
 
14
14
  def process(messages = nil)
@@ -29,6 +29,7 @@ module MIDIMessage
29
29
 
30
30
  def initialize_processor(options)
31
31
  @message = options[:message]
32
+ @name = options[:name]
32
33
  end
33
34
 
34
35
  end
data/lib/midi-message.rb CHANGED
@@ -11,7 +11,7 @@ module MIDIMessage
11
11
  module Process
12
12
  end
13
13
 
14
- VERSION = "0.3.0"
14
+ VERSION = "0.3.1"
15
15
 
16
16
  end
17
17
 
data/test/test_filter.rb CHANGED
@@ -92,4 +92,24 @@ class FilterTest < Test::Unit::TestCase
92
92
  assert_equal(msg, outp)
93
93
  end
94
94
 
95
+ def test_numeric_note_accept
96
+ msg1 = MIDIMessage::NoteOn["C4"].new(0, 100)
97
+ msg2 = MIDIMessage::NoteOn["C5"].new(0, 100)
98
+ f = Filter.new(:note, 60)
99
+ outp = f.process(msg1)
100
+ assert_equal(msg1, outp)
101
+ outp = f.process(msg2)
102
+ assert_equal(nil, outp)
103
+ end
104
+
105
+ def test_numeric_note_reject
106
+ msg1 = MIDIMessage::NoteOn["C4"].new(0, 100)
107
+ msg2 = MIDIMessage::NoteOn["C5"].new(0, 100)
108
+ f = Filter.new(:note, 60, :reject => true)
109
+ outp = f.process(msg1)
110
+ assert_equal(nil, outp)
111
+ outp = f.process(msg2)
112
+ assert_equal(msg2, outp)
113
+ end
114
+
95
115
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: midi-message
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: