sndfile 0.2.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c232895c9482256a13565c57f1b26856ac2ccd9c
4
+ data.tar.gz: bb4388474d9bfbab60c29f1eb8e42881bd96d44a
5
+ SHA512:
6
+ metadata.gz: ea60311ff4bbe116e07ffb3f4ea6f29e8d72e9429090223594a0ce8773b9222645815433bd25b1c1a897b9bcbef49f70a1e16d736de9516d70b5a729524a79b0
7
+ data.tar.gz: 7c173364cdf387773e3896c8a1cc6b526af6751e67f90510561cd0d251c7867b93587b1017dda8c1e6cbdccc579997c78651075217a1e2c7382488c9e0645ef8
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format d
2
+ --color
@@ -3,8 +3,8 @@ before_install:
3
3
  - sudo apt-get update -qq
4
4
  - sudo apt-get install -qq libffi-dev libffi-ruby libgsl0-dev libsndfile1-dev
5
5
  rvm:
6
- - 1.8.7
7
6
  - 1.9.3
7
+ - 2.0.0
8
8
  notifications:
9
9
  recipients:
10
10
  - ronen@barzel.org
data/README.md CHANGED
@@ -31,21 +31,32 @@ or, in a Gemfile
31
31
 
32
32
  Usage
33
33
  =====
34
+
34
35
  Here's a simple example, that reads an arbitrary source file and produces a WAV file at half the volume:
35
36
 
36
37
  fin = Sndfile::File.new(inpath)
37
- Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => fin.channels, :samplerate => fin.samplerate) do |fout|
38
+ Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => fin.info.channels, :samplerate => fin.info.samplerate) do |fout|
38
39
  while data = fin.read(10000)
39
40
  fout.write(data * 0.5)
40
41
  end
41
42
  end
42
43
 
43
- See the [RDOC](http://rubydoc.info/gems/sndfile) for more info.
44
+ The audio file info, available as `Sndfile::File#info` as per the above example, is an instance of `Sndfile::Info`. You can also query it directly for a file:
45
+
46
+ info = Sndfile::File.info(filepath) #=> an instance of Sndfile::Info
47
+ # => info.format
48
+ # => info.encoding
49
+ # => info.endian
50
+ # => info.frames
51
+ # => info.samplerate
52
+ # => info.channels
53
+
54
+ See the [RDOC](http://rubydoc.info/gems/sndfile) for complete details
44
55
 
45
56
  Compatibility
46
57
  =============
47
58
 
48
- Currently works with ruby 1.8.7 and 1.9.3
59
+ Known to work with MRI ruby 1.9.3, and 2.0.0
49
60
 
50
61
 
51
62
  History
@@ -53,7 +64,8 @@ History
53
64
 
54
65
  Release notes:
55
66
 
56
- * 0.2.0 - support ruby 1.8.7. thanks to [youpy](https://github.com/youpy)
67
+ * 1.0.0 - Add Sndfile::Info. Deprecate individual accessors. No longer support ruby 1.8.7
68
+ * 0.2.0 - Support ruby 1.8.7. Thanks to [youpy](https://github.com/youpy)
57
69
  * 0.1.3 - Back to ruby-gsl-ng: memory leaks fixed
58
70
  * 0.1.2 - Use ruby-gsl-ngx to avoid memory leaks
59
71
  * 0.1.1 - Clean up vestigial includes in integration test
@@ -6,4 +6,5 @@ require 'gsl-ng/matrix'
6
6
  require 'sndfile/enums'
7
7
  require 'sndfile/error'
8
8
  require 'sndfile/sndfile_api'
9
+ require 'sndfile/info'
9
10
  require 'sndfile/file'
@@ -3,6 +3,8 @@ module Sndfile
3
3
  class File
4
4
  include SndfileApi
5
5
 
6
+ attr_reader :info
7
+
6
8
  #
7
9
  # Without a block, this is the same as File.new(path, opts).
8
10
  # With a block, yields the File object to the block and ensures that
@@ -21,6 +23,13 @@ module Sndfile
21
23
  end
22
24
  end
23
25
 
26
+ # Returns the `Info` for a file.
27
+ #
28
+ # Equivalent to File.open(path) { |f| f.info }
29
+ def self.info(path)
30
+ open(path) { |f| f.info }
31
+ end
32
+
24
33
  #
25
34
  # Create a File instance. Options are:
26
35
  #
@@ -46,13 +55,15 @@ module Sndfile
46
55
  )
47
56
 
48
57
  @path = path
49
- @sfinfo = SfInfo.new
58
+ sfinfo = SfInfo.new
50
59
  if opts.mode == :WRITE or opts.format == :RAW
51
- @sfinfo[:format] = Enums::Format[opts.format]|Enums::Encoding[opts.encoding]|Enums::Endian[opts.endian]
52
- @sfinfo[:channels] = opts.channels
53
- @sfinfo[:samplerate] = opts.samplerate
60
+ sfinfo[:format] = Enums::Format[opts.format]|Enums::Encoding[opts.encoding]|Enums::Endian[opts.endian]
61
+ sfinfo[:channels] = opts.channels
62
+ sfinfo[:samplerate] = opts.samplerate
54
63
  end
55
- @sfpointer = sf_open(path.to_s, opts.mode, @sfinfo)
64
+ @sfpointer = sf_open(path.to_s, opts.mode, sfinfo)
65
+ @info = Info.from_sfinfo(sfinfo)
66
+
56
67
  check_error
57
68
  sf_command @sfpointer, :SFC_SET_CLIPPING, nil, 1
58
69
  check_error
@@ -65,90 +76,13 @@ module Sndfile
65
76
  check_error sf_close(@sfpointer)
66
77
  end
67
78
 
68
- # Returns the format of the file, which is one of
69
- #
70
- # :WAV - Microsoft WAV format (little endian).
71
- # :AIFF - Apple/SGI AIFF format (big endian).
72
- # :AU - Sun/NeXT AU format (big endian).
73
- # :RAW - RAW PCM data.
74
- # :PAF - Ensoniq PARIS file format.
75
- # :SVX - Amiga IFF / SVX8 / SV16 format.
76
- # :NIST - Sphere NIST format.
77
- # :VOC - VOC files.
78
- # :IRCAM - Berkeley/IRCAM/CARL
79
- # :W64 - Sonic Foundry's 64 bit RIFF/WAV
80
- # :MAT4 - Matlab (tm) V4.2 / GNU Octave 2.0
81
- # :MAT5 - Matlab (tm) V5.0 / GNU Octave 2.1
82
- # :PVF - Portable Voice Format
83
- # :XI - Fasttracker 2 Extended Instrument
84
- # :HTK - HMM Tool Kit format
85
- # :SDS - Midi Sample Dump Standard
86
- # :AVR - Audio Visual Research
87
- # :WAVEX - MS WAVE with WAVEFORMATEX
88
- # :SD2 - Sound Designer 2
89
- # :FLAC - FLAC lossless file format
90
- # :CAF - Core Audio File format
91
- # :WVE - Psion WVE format
92
- # :OGG - Xiph OGG container
93
- # :MPC2K - Akai MPC 2000 sampler
94
- # :RF64 - RF64 WAV file
95
- def format
96
- Format[@sfinfo[:format] & FORMAT_MASK]
97
- end
98
-
99
- # Returns the encoding of the file data, which is one of:
100
- #
101
- # :PCM_S8 - Signed 8 bit data
102
- # :PCM_16 - Signed 16 bit data
103
- # :PCM_24 - Signed 24 bit data
104
- # :PCM_32 - Signed 32 bit data
105
- # :PCM_U8 - Unsigned 8 bit data (WAV and RAW only)
106
- # :FLOAT - 32 bit float data
107
- # :DOUBLE - 64 bit float data
108
- # :ULAW - U-Law encoded.
109
- # :ALAW - A-Law encoded.
110
- # :IMA_ADPCM - IMA ADPCM.
111
- # :MS_ADPCM - Microsoft ADPCM.
112
- # :GSM610 - GSM 6.10 encoding.
113
- # :VOX_ADPCM - Oki Dialogic ADPCM encoding.
114
- # :G721_32 - 32kbs G721 ADPCM encoding.
115
- # :G723_24 - 24kbs G723 ADPCM encoding.
116
- # :G723_40 - 40kbs G723 ADPCM encoding.
117
- # :DWVW_12 - 12 bit Delta Width Variable Word encoding.
118
- # :DWVW_16 - 16 bit Delta Width Variable Word encoding.
119
- # :DWVW_24 - 24 bit Delta Width Variable Word encoding.
120
- # :DWVW_N - N bit Delta Width Variable Word encoding.
121
- # :DPCM_8 - 8 bit differential PCM (XI only)
122
- # :DPCM_16 - 16 bit differential PCM (XI only)
123
- # :VORBIS - Xiph Vorbis encoding.
124
- def encoding
125
- Encoding[@sfinfo[:format] & ENCODING_MASK]
126
- end
127
-
128
- # Returns the endian-ness of the data, one of:
129
- #
130
- # :FILE - Default file endian-ness.
131
- # :LITTLE - Force little endian-ness.
132
- # :BIG - Force big endian-ness.
133
- # :CPU - Force CPU endian-ness.
134
- def endian
135
- Endian[@sfinfo[:format] & ENDIAN_MASK]
136
- end
137
-
138
- # Returns the number of frames (samples) in the file
139
- def frames
140
- @sfinfo[:frames]
141
- end
142
-
143
- # Returns the sample rate, frames per second
144
- def samplerate
145
- @sfinfo[:samplerate]
79
+ Info.keys.each do |method|
80
+ define_method method do
81
+ warn "[DEPRECATION]: Sndfile::File: `#{method}` is deprecated. Use `info.#{method}` instead"
82
+ info.send method
83
+ end
146
84
  end
147
85
 
148
- # Returns the number of channels of data
149
- def channels
150
- @sfinfo[:channels]
151
- end
152
86
 
153
87
  # Reads frames from the file, returning the data in a GSLng::Matrix of
154
88
  # dimensions frames x channels. (For convenience, the height and width
@@ -162,14 +96,14 @@ module Sndfile
162
96
  # May raise Sndfile::Error in case of error.
163
97
  def read(nframes)
164
98
 
165
- buf = GSLng::Matrix.new(nframes, channels)
99
+ buf = GSLng::Matrix.new(nframes, info.channels)
166
100
 
167
101
  count = sf_readf_double @sfpointer, buf.data_ptr, nframes
168
102
  check_error
169
103
  case count
170
104
  when 0 then nil
171
105
  when nframes then buf
172
- else buf.view(0, 0, count, channels)
106
+ else buf.view(0, 0, count, info.channels)
173
107
  end
174
108
  end
175
109
 
@@ -0,0 +1,104 @@
1
+ require 'key_struct'
2
+
3
+ module Sndfile
4
+
5
+ # The Info class encapsulates the metdata about the audio contents.
6
+
7
+ class Info < KeyStruct[:format, :encoding, :endian, :frames, :samplerate, :channels]
8
+ include Enums
9
+
10
+ # :nodoc:
11
+ def self.from_sfinfo(sfinfo)
12
+ new(
13
+ :format => Format[sfinfo[:format] & FORMAT_MASK],
14
+ :encoding => Encoding[sfinfo[:format] & ENCODING_MASK],
15
+ :endian => Endian[sfinfo[:format] & ENDIAN_MASK],
16
+ :frames => sfinfo[:frames],
17
+ :samplerate => sfinfo[:samplerate],
18
+ :channels => sfinfo[:channels]
19
+ )
20
+ end
21
+
22
+ ##
23
+ # :attr_accessor: format
24
+ # The file format, expressed as one of the following symbols:
25
+ #
26
+ # :WAV - Microsoft WAV format (little endian).
27
+ # :AIFF - Apple/SGI AIFF format (big endian).
28
+ # :AU - Sun/NeXT AU format (big endian).
29
+ # :RAW - RAW PCM data.
30
+ # :PAF - Ensoniq PARIS file format.
31
+ # :SVX - Amiga IFF / SVX8 / SV16 format.
32
+ # :NIST - Sphere NIST format.
33
+ # :VOC - VOC files.
34
+ # :IRCAM - Berkeley/IRCAM/CARL
35
+ # :W64 - Sonic Foundry's 64 bit RIFF/WAV
36
+ # :MAT4 - Matlab (tm) V4.2 / GNU Octave 2.0
37
+ # :MAT5 - Matlab (tm) V5.0 / GNU Octave 2.1
38
+ # :PVF - Portable Voice Format
39
+ # :XI - Fasttracker 2 Extended Instrument
40
+ # :HTK - HMM Tool Kit format
41
+ # :SDS - Midi Sample Dump Standard
42
+ # :AVR - Audio Visual Research
43
+ # :WAVEX - MS WAVE with WAVEFORMATEX
44
+ # :SD2 - Sound Designer 2
45
+ # :FLAC - FLAC lossless file format
46
+ # :CAF - Core Audio File format
47
+ # :WVE - Psion WVE format
48
+ # :OGG - Xiph OGG container
49
+ # :MPC2K - Akai MPC 2000 sampler
50
+ # :RF64 - RF64 WAV file
51
+ #
52
+
53
+ ##
54
+ # :attr_accessor: encoding
55
+ # The file encoding, expressed as one of the following symbols:
56
+ #
57
+ # :PCM_S8 - Signed 8 bit data
58
+ # :PCM_16 - Signed 16 bit data
59
+ # :PCM_24 - Signed 24 bit data
60
+ # :PCM_32 - Signed 32 bit data
61
+ # :PCM_U8 - Unsigned 8 bit data (WAV and RAW only)
62
+ # :FLOAT - 32 bit float data
63
+ # :DOUBLE - 64 bit float data
64
+ # :ULAW - U-Law encoded.
65
+ # :ALAW - A-Law encoded.
66
+ # :IMA_ADPCM - IMA ADPCM.
67
+ # :MS_ADPCM - Microsoft ADPCM.
68
+ # :GSM610 - GSM 6.10 encoding.
69
+ # :VOX_ADPCM - Oki Dialogic ADPCM encoding.
70
+ # :G721_32 - 32kbs G721 ADPCM encoding.
71
+ # :G723_24 - 24kbs G723 ADPCM encoding.
72
+ # :G723_40 - 40kbs G723 ADPCM encoding.
73
+ # :DWVW_12 - 12 bit Delta Width Variable Word encoding.
74
+ # :DWVW_16 - 16 bit Delta Width Variable Word encoding.
75
+ # :DWVW_24 - 24 bit Delta Width Variable Word encoding.
76
+ # :DWVW_N - N bit Delta Width Variable Word encoding.
77
+ # :DPCM_8 - 8 bit differential PCM (XI only)
78
+ # :DPCM_16 - 16 bit differential PCM (XI only)
79
+ # :VORBIS - Xiph Vorbis encoding.
80
+
81
+ ##
82
+ # :attr_accessor: endian
83
+ # The endian-ness of the data, expressed as one of the following symbols:
84
+ #
85
+ # :FILE - Default file endian-ness.
86
+ # :LITTLE - Force little endian-ness.
87
+ # :BIG - Force big endian-ness.
88
+ # :CPU - Force CPU endian-ness.
89
+
90
+ ##
91
+ # :attr_accessor: frames
92
+ # The number of frames (samples) in the file
93
+
94
+ ##
95
+ # :attr_accessor: samplerate
96
+ # The sample rate, frames per second
97
+
98
+ ##
99
+ # :attr_accessor: channels
100
+ # Returns the number of channels of data, e.g. 1 for mono and 2 for
101
+ # stereo
102
+
103
+ end
104
+ end
@@ -1,3 +1,3 @@
1
1
  module Sndfile
2
- VERSION = "0.2.0"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -15,9 +15,11 @@ Gem::Specification.new do |gem|
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = Sndfile::VERSION
17
17
 
18
+ gem.required_ruby_version = ">= 1.9.2"
18
19
  gem.add_dependency("ffi")
19
20
  gem.add_dependency("ruby-gsl-ng")
20
21
  gem.add_dependency("hash_keyword_args")
22
+ gem.add_dependency("key_struct")
21
23
 
22
24
  gem.add_development_dependency 'rake'
23
25
  gem.add_development_dependency 'rdoc'
@@ -1,8 +1,27 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Sndfile do
3
+ describe Sndfile::File do
4
4
 
5
- it "should return correct file info" do
5
+ it "File.info returns correct file info" do
6
+ info = Sndfile::File.info(INPUTS_DIR + "ComputerMagic.wav")
7
+ info.format.should == :WAV
8
+ info.encoding.should == :PCM_16
9
+ info.endian.should == :FILE
10
+ info.frames.should == 223451
11
+ info.samplerate.should == 44100
12
+ info.channels.should == 2
13
+ end
14
+
15
+ it "File#info returns correct info structure" do
16
+ file = INPUTS_DIR + "ComputerMagic.wav"
17
+ info = Sndfile::File.info(file)
18
+ Sndfile::File.open(file) do |f|
19
+ f.info.should == info
20
+ end
21
+ end
22
+
23
+ it "deprecates info methods" do
24
+ Sndfile::File.any_instance.should_receive(:warn).with(/DEPRECATION/).exactly(6).times
6
25
  Sndfile::File.open(INPUTS_DIR + "ComputerMagic.wav") do |f|
7
26
  f.format.should == :WAV
8
27
  f.encoding.should == :PCM_16
@@ -13,7 +32,7 @@ describe Sndfile do
13
32
  end
14
33
  end
15
34
 
16
- it "should raise an error when it can't open the file" do
35
+ it "raises an error when it can't open the file" do
17
36
  expect { Sndfile::File.open("/no/such/file") }.to raise_error Sndfile::Error
18
37
  end
19
38
 
@@ -7,7 +7,7 @@ describe "Integration" do
7
7
  outpath, refpath = out_ref_paths("copy.wav")
8
8
 
9
9
  fin = Sndfile::File.open(inpath)
10
- Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => 2, :samplerate => fin.samplerate) do |fout|
10
+ Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => 2, :samplerate => fin.info.samplerate) do |fout|
11
11
  while data = fin.read(12345)
12
12
  fout.write(data)
13
13
  end
@@ -21,13 +21,13 @@ describe "Integration" do
21
21
  outpath, refpath = out_ref_paths("mix.wav")
22
22
 
23
23
  fin1 = Sndfile::File.open(inpath1)
24
- fin1.channels.should == 2
24
+ fin1.info.channels.should == 2
25
25
 
26
26
  fin2 = Sndfile::File.open(inpath2)
27
- fin2.channels.should == 1
28
- fin1.samplerate.should == fin2.samplerate
27
+ fin2.info.channels.should == 1
28
+ fin1.info.samplerate.should == fin2.info.samplerate
29
29
 
30
- Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => 2, :samplerate => fin1.samplerate) do |fout|
30
+ Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => 2, :samplerate => fin1.info.samplerate) do |fout|
31
31
  while true
32
32
  a = fin1.read(10000)
33
33
  b = fin2.read(10000)
@@ -60,7 +60,7 @@ describe "Integration" do
60
60
  outpath, refpath = out_ref_paths("half.wav")
61
61
 
62
62
  fin = Sndfile::File.open(inpath)
63
- Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => 2, :samplerate => fin.samplerate) do |fout|
63
+ Sndfile::File.open(outpath, :mode => :WRITE, :format => :WAV, :encoding => :PCM_16, :channels => 2, :samplerate => fin.info.samplerate) do |fout|
64
64
  while data = fin.read(10000)
65
65
  fout.write(data * 0.5)
66
66
  end
metadata CHANGED
@@ -1,142 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sndfile
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
5
- prerelease:
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - ronen barzel
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-20 00:00:00.000000000 Z
11
+ date: 2013-08-11 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: ffi
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: ruby-gsl-ng
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: hash_keyword_args
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: key_struct
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
60
67
  - !ruby/object:Gem::Version
61
68
  version: '0'
62
69
  - !ruby/object:Gem::Dependency
63
70
  name: rake
64
71
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
72
  requirements:
67
- - - ! '>='
73
+ - - '>='
68
74
  - !ruby/object:Gem::Version
69
75
  version: '0'
70
76
  type: :development
71
77
  prerelease: false
72
78
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
79
  requirements:
75
- - - ! '>='
80
+ - - '>='
76
81
  - !ruby/object:Gem::Version
77
82
  version: '0'
78
83
  - !ruby/object:Gem::Dependency
79
84
  name: rdoc
80
85
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
86
  requirements:
83
- - - ! '>='
87
+ - - '>='
84
88
  - !ruby/object:Gem::Version
85
89
  version: '0'
86
90
  type: :development
87
91
  prerelease: false
88
92
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
93
  requirements:
91
- - - ! '>='
94
+ - - '>='
92
95
  - !ruby/object:Gem::Version
93
96
  version: '0'
94
97
  - !ruby/object:Gem::Dependency
95
98
  name: rspec
96
99
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
100
  requirements:
99
- - - ! '>='
101
+ - - '>='
100
102
  - !ruby/object:Gem::Version
101
103
  version: '0'
102
104
  type: :development
103
105
  prerelease: false
104
106
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
107
  requirements:
107
- - - ! '>='
108
+ - - '>='
108
109
  - !ruby/object:Gem::Version
109
110
  version: '0'
110
111
  - !ruby/object:Gem::Dependency
111
112
  name: simplecov
112
113
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
114
  requirements:
115
- - - ! '>='
115
+ - - '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
121
  requirements:
123
- - - ! '>='
122
+ - - '>='
124
123
  - !ruby/object:Gem::Version
125
124
  version: '0'
126
125
  - !ruby/object:Gem::Dependency
127
126
  name: simplecov-gem-adapter
128
127
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
128
  requirements:
131
- - - ! '>='
129
+ - - '>='
132
130
  - !ruby/object:Gem::Version
133
131
  version: '0'
134
132
  type: :development
135
133
  prerelease: false
136
134
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
135
  requirements:
139
- - - ! '>='
136
+ - - '>='
140
137
  - !ruby/object:Gem::Version
141
138
  version: '0'
142
139
  description: Ruby wrapper for libsndfile. Reads/writes data as GSL matrices, to allow
@@ -148,6 +145,7 @@ extensions: []
148
145
  extra_rdoc_files: []
149
146
  files:
150
147
  - .gitignore
148
+ - .rspec
151
149
  - .travis.yml
152
150
  - Gemfile
153
151
  - README.md
@@ -157,6 +155,7 @@ files:
157
155
  - lib/sndfile/enums.rb
158
156
  - lib/sndfile/error.rb
159
157
  - lib/sndfile/file.rb
158
+ - lib/sndfile/info.rb
160
159
  - lib/sndfile/sndfile_api.rb
161
160
  - lib/sndfile/version.rb
162
161
  - sndfile.gemspec
@@ -170,27 +169,26 @@ files:
170
169
  - spec/spec_helper.rb
171
170
  homepage: https://github.com/ronen/sndfile
172
171
  licenses: []
172
+ metadata: {}
173
173
  post_install_message:
174
174
  rdoc_options: []
175
175
  require_paths:
176
176
  - lib
177
177
  required_ruby_version: !ruby/object:Gem::Requirement
178
- none: false
179
178
  requirements:
180
- - - ! '>='
179
+ - - '>='
181
180
  - !ruby/object:Gem::Version
182
- version: '0'
181
+ version: 1.9.2
183
182
  required_rubygems_version: !ruby/object:Gem::Requirement
184
- none: false
185
183
  requirements:
186
- - - ! '>='
184
+ - - '>='
187
185
  - !ruby/object:Gem::Version
188
186
  version: '0'
189
187
  requirements: []
190
188
  rubyforge_project:
191
- rubygems_version: 1.8.24
189
+ rubygems_version: 2.0.3
192
190
  signing_key:
193
- specification_version: 3
191
+ specification_version: 4
194
192
  summary: Ruby wrapper for libsndfile. Reads/writes data as GSL matrices, to allow
195
193
  fast processing.
196
194
  test_files: