mp3file 0.0.2 → 0.0.3

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mp3file (0.0.1)
4
+ mp3file (0.0.3)
5
5
  bindata
6
6
 
7
7
  GEM
@@ -1,4 +1,6 @@
1
1
  module Mp3file
2
+ class InvalidMP3FileError < Mp3fileError; end
3
+
2
4
  class MP3File
3
5
  attr_reader(:file, :file_size, :audio_size)
4
6
  attr_reader(:first_header_offset, :first_header)
@@ -146,6 +148,7 @@ module Mp3file
146
148
  end
147
149
 
148
150
  header = nil
151
+ initial_header_offset = file.tell
149
152
  header_offset = file.tell
150
153
 
151
154
  while header.nil?
@@ -154,8 +157,12 @@ module Mp3file
154
157
  header_offset = file.tell - 4
155
158
  rescue InvalidMP3HeaderError => e
156
159
  header_offset += 1
157
- file.seek(header_offset, IO::SEEK_SET)
158
- retry
160
+ if header_offset - initial_header_offset > 4096
161
+ raise InvalidMP3FileError, "Could not find a valid MP3 header in the first 4096 bytes."
162
+ else
163
+ file.seek(header_offset, IO::SEEK_SET)
164
+ retry
165
+ end
159
166
  end
160
167
 
161
168
  # byte = file.readbyte
@@ -1,3 +1,3 @@
1
1
  module Mp3file
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/mp3file.rb CHANGED
@@ -3,7 +3,7 @@ require 'pathname'
3
3
  require 'rubygems'
4
4
  require 'bindata'
5
5
 
6
- class Mp3fileError < StandardError; end
6
+ class Mp3file::Mp3fileError < StandardError; end
7
7
 
8
8
  require 'mp3file/mp3_file'
9
9
  require 'mp3file/mp3_header'
Binary file
@@ -87,4 +87,11 @@ describe Mp3file::MP3File do
87
87
  its(:length) { should == 5 }
88
88
  its(:vbr?) { should == false }
89
89
  end
90
+
91
+ describe "A file consisting only of zeroes" do
92
+ it "raises an error" do
93
+ lambda { Mp3file::MP3File.new(fixture_file('zeroes.mp3')) }.
94
+ should(raise_error(Mp3file::InvalidMP3FileError))
95
+ end
96
+ end
90
97
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mp3file
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-07-01 00:00:00.000000000 -04:00
12
+ date: 2011-08-02 00:00:00.000000000 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
- requirement: &19138680 !ruby/object:Gem::Requirement
17
+ requirement: &12396020 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *19138680
25
+ version_requirements: *12396020
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rake
28
- requirement: &19138260 !ruby/object:Gem::Requirement
28
+ requirement: &12395600 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *19138260
36
+ version_requirements: *12395600
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bindata
39
- requirement: &19137840 !ruby/object:Gem::Requirement
39
+ requirement: &12432520 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,7 +44,7 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *19137840
47
+ version_requirements: *12432520
48
48
  description: Reads MP3 headers and returns their information.
49
49
  email:
50
50
  - ahwatts@gmail.com
@@ -80,6 +80,7 @@ files:
80
80
  - spec/files/bret_id3v1.mp3
81
81
  - spec/files/bret_id3v2.mp3
82
82
  - spec/files/bret_vbr_6.mp3
83
+ - spec/files/zeroes.mp3
83
84
  - spec/mp3file/id3v1_tag_spec.rb
84
85
  - spec/mp3file/id3v2/bit_padded_int_spec.rb
85
86
  - spec/mp3file/id3v2/frame_header_spec.rb