ruby-audio 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -6,7 +6,7 @@ require 'spec/rake/spectask'
6
6
 
7
7
  spec = Gem::Specification.new do |s|
8
8
  s.name = 'ruby-audio'
9
- s.version = '1.1.1'
9
+ s.version = '1.2.0'
10
10
  s.summary = 'ruby-audio wraps around libsndfile to provide simplified sound reading and writing support to ruby programs'
11
11
  s.authors = ['Stephen Augenstein']
12
12
  s.email = 'perl.programmer@gmail.com'
@@ -10,8 +10,16 @@ module RubyAudio
10
10
  # buf = RubyAudio::Buffer.float(1000)
11
11
  # buf = RubyAudio::Buffer.new("float", 1000, 1)
12
12
  class Buffer < CBuffer
13
+ include Enumerable
14
+
15
+ def each
16
+ self.size.times do |i|
17
+ yield self[i]
18
+ end
19
+ end
20
+
13
21
  [:short, :int, :float, :double].each do |type|
14
22
  eval "def self.#{type}(frames, channels=1); self.new(:#{type}, frames, channels); end"
15
23
  end
16
24
  end
17
- end
25
+ end
data/spec/buffer_spec.rb CHANGED
@@ -59,4 +59,30 @@ describe RubyAudio::Buffer do
59
59
  buf[4] = 140
60
60
  buf2[4].should == 100
61
61
  end
62
- end
62
+
63
+ context ".each" do
64
+ before(:each) do
65
+ @buf = RubyAudio::Buffer.int(10, 2)
66
+ 10.times do |i|
67
+ @buf[i] = [i, i]
68
+ end
69
+ end
70
+
71
+ it "should yield the elements in order" do
72
+ i = 0
73
+ @buf.each do |left, right|
74
+ left.should == i
75
+ right.should == i
76
+ i += 1
77
+ end
78
+ end
79
+
80
+ it "shouldn't do anything on an empty buffer" do
81
+ buf = RubyAudio::Buffer.int(0, 2)
82
+
83
+ buf.each do
84
+ fail "This shouldn't be executed"
85
+ end
86
+ end
87
+ end
88
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-audio
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen Augenstein
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-03-24 00:00:00 -04:00
12
+ date: 2010-03-25 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15