id3tag 0.10.1 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +16 -5
- data/lib/id3tag.rb +11 -4
- data/lib/id3tag/audio_file.rb +7 -1
- data/lib/id3tag/configuration.rb +2 -0
- data/lib/id3tag/id3_v2_frame_parser.rb +12 -8
- data/lib/id3tag/version.rb +1 -1
- metadata +7 -96
- data/.document +0 -5
- data/.gitignore +0 -8
- data/.rspec +0 -1
- data/.travis.yml +0 -15
- data/Gemfile +0 -4
- data/Rakefile +0 -24
- data/id3tag.gemspec +0 -28
- data/spec/features/can_read_non_audio_files_spec.rb +0 -17
- data/spec/features/can_read_tag_v1_spec.rb +0 -15
- data/spec/fixtures/id3v1_and_v2.mp3 +0 -0
- data/spec/fixtures/id3v1_with_track_nr.mp3 +0 -0
- data/spec/fixtures/id3v1_without_track_nr.mp3 +0 -0
- data/spec/fixtures/id3v2.mp3 +0 -0
- data/spec/fixtures/pov_20131018-2100a.mp3.v1_tag_body +0 -0
- data/spec/fixtures/pov_20131018-2100a.mp3.v2_3_tag_body +0 -0
- data/spec/fixtures/signals_1.mp3.v2_3_tag_body +0 -0
- data/spec/id3tag_extract_tags +0 -18
- data/spec/lib/id3tag/audio_file_spec.rb +0 -131
- data/spec/lib/id3tag/frames/util/genre_name_by_id_finder_spec.rb +0 -18
- data/spec/lib/id3tag/frames/v1/comments_frame_spec.rb +0 -39
- data/spec/lib/id3tag/frames/v1/genre_frame_spec.rb +0 -20
- data/spec/lib/id3tag/frames/v1/text_frame_spec.rb +0 -14
- data/spec/lib/id3tag/frames/v1/track_nr_frame_spec.rb +0 -19
- data/spec/lib/id3tag/frames/v2/basic_frame_spec.rb +0 -140
- data/spec/lib/id3tag/frames/v2/comments_frame_spec.rb +0 -45
- data/spec/lib/id3tag/frames/v2/frame_fabricator_spec.rb +0 -70
- data/spec/lib/id3tag/frames/v2/frame_flags_spec.rb +0 -588
- data/spec/lib/id3tag/frames/v2/genre_frame/genre_parser_24_spec.rb +0 -26
- data/spec/lib/id3tag/frames/v2/genre_frame/genre_parser_pre_24_spec.rb +0 -48
- data/spec/lib/id3tag/frames/v2/genre_frame/genre_parser_spec.rb +0 -13
- data/spec/lib/id3tag/frames/v2/genre_frame_spec.rb +0 -61
- data/spec/lib/id3tag/frames/v2/picture_frame_spec.rb +0 -127
- data/spec/lib/id3tag/frames/v2/text_frame_spec.rb +0 -89
- data/spec/lib/id3tag/frames/v2/unique_file_id_frame_spec.rb +0 -31
- data/spec/lib/id3tag/frames/v2/user_text_frame_spec.rb +0 -34
- data/spec/lib/id3tag/id3_v1_frame_parser_spec.rb +0 -71
- data/spec/lib/id3tag/id3_v2_frame_parser_spec.rb +0 -32
- data/spec/lib/id3tag/id3_v2_tag_header_spec.rb +0 -149
- data/spec/lib/id3tag/id3tag_spec.rb +0 -17
- data/spec/lib/id3tag/io_util_spec.rb +0 -30
- data/spec/lib/id3tag/number_util_spec.rb +0 -32
- data/spec/lib/id3tag/string_util_spec.rb +0 -81
- data/spec/lib/id3tag/synchsafe_integer_spec.rb +0 -14
- data/spec/lib/id3tag/tag_spec.rb +0 -352
- data/spec/spec_helper.rb +0 -23
- data/spec/support/mp3_fixtures.rb +0 -4
- data/standard_documents/id3v2-00.txt +0 -1657
- data/standard_documents/id3v2.3.0.txt +0 -2022
- data/standard_documents/id3v2.4.0-frames.txt +0 -1732
- data/standard_documents/id3v2.4.0-structure.txt +0 -732
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03c00ecdfdd2c6e53e5664831502753b5210a67098223bcfdb2805b9ab7958cd
|
4
|
+
data.tar.gz: aba76b6019b3be742ddd51a2a024b90fefc59dfd1f645589f5f4a18b4da0dc60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85af215ef04e69deac371b5e9dea9c1bf401f01763794ae3f319be55ce09b6aa7fd67228fca0d62bfd956d4e8a445d173d985eecd4177462fa0b7a8aeae6aa3e
|
7
|
+
data.tar.gz: d3fdb4e68b97b3dfffb013d544b6feeeb56b1d9277d5ec6407fa3327837e1e8b5148c849e419ab0b18bccd8b003e5e2d01b0cca437a6216b8c3f55b88634d559
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# ID3Tag
|
2
|
-
Native Ruby ID3 tag reader that aims for 100%
|
2
|
+
Native Ruby ID3 tag reader that aims for 100% coverage of ID3v2.x and ID3v1.x standards
|
3
3
|
|
4
4
|
## Install
|
5
5
|
|
@@ -12,7 +12,7 @@ gem install id3tag
|
|
12
12
|
|
13
13
|
Or add the gem to your Gemfile:
|
14
14
|
```
|
15
|
-
gem 'id3tag', '~> 0.
|
15
|
+
gem 'id3tag', '~> 0.11.0'
|
16
16
|
```
|
17
17
|
|
18
18
|
## How to use
|
@@ -58,12 +58,23 @@ ID3Tag.read(file,:v2) # Reads only v2.x tag
|
|
58
58
|
|
59
59
|
You can inspect tag by calling `frame_ids` to see available frame ids or `frames` to return all frames
|
60
60
|
|
61
|
-
|
61
|
+
## Configuration
|
62
62
|
|
63
|
-
|
63
|
+
It is also possible to provide configuration and overwrite default behaviour.
|
64
|
+
|
64
65
|
```ruby
|
65
66
|
ID3Tag.configuration do |c|
|
67
|
+
|
68
|
+
# This way you can avoid Encoding::InvalidByteSequenceError when tag contains invalid data.
|
69
|
+
# Currently only for String#encode which is used in TextFrames.
|
70
|
+
# default: {}
|
66
71
|
c.string_encode_options = { :invalid => :replace, :undef => :replace }
|
72
|
+
|
73
|
+
# You might want to set v2.x tag read limit in bytes to avoid reading too much data into memory
|
74
|
+
# v2 tags will be extracted until end of tag or limit is reached.
|
75
|
+
# default: 0 (There are no limit)
|
76
|
+
c.v2_tag_read_limit = 1048576 # 1 megabyte
|
77
|
+
|
67
78
|
end
|
68
79
|
```
|
69
80
|
|
@@ -88,5 +99,5 @@ end
|
|
88
99
|
[![Code Climate](https://codeclimate.com/github/krists/id3tag.png)](https://codeclimate.com/github/krists/id3tag) [![Build Status](https://travis-ci.org/krists/id3tag.png?branch=master)](https://travis-ci.org/krists/id3tag) [![Coverage Status](https://coveralls.io/repos/krists/id3tag/badge.png?branch=master)](https://coveralls.io/r/krists/id3tag) [![Gem Version](https://badge.fury.io/rb/id3tag.png)](http://badge.fury.io/rb/id3tag)
|
89
100
|
## Copyright
|
90
101
|
|
91
|
-
Copyright (c)
|
102
|
+
Copyright (c) 2018 Krists Ozols. See LICENSE.txt for
|
92
103
|
further details.
|
data/lib/id3tag.rb
CHANGED
@@ -41,9 +41,16 @@ module ID3Tag
|
|
41
41
|
tag
|
42
42
|
end
|
43
43
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
44
|
+
class << self
|
45
|
+
def configuration
|
46
|
+
@configuration ||= reset_configuration
|
47
|
+
yield @configuration if block_given?
|
48
|
+
@configuration
|
49
|
+
end
|
50
|
+
|
51
|
+
def reset_configuration(configuration = ID3Tag::Configuration.new)
|
52
|
+
raise ArgumentError, "Passed argument must be a ID3Tag::Configuration class object" unless configuration.is_a?(ID3Tag::Configuration)
|
53
|
+
@configuration = configuration
|
54
|
+
end
|
48
55
|
end
|
49
56
|
end
|
data/lib/id3tag/audio_file.rb
CHANGED
@@ -4,6 +4,7 @@ module ID3Tag
|
|
4
4
|
ID3V2_TAG_HEADER_SIZE = 10
|
5
5
|
IDV1_TAG_IDENTIFIER = "TAG"
|
6
6
|
IDV2_TAG_IDENTIFIER = "ID3"
|
7
|
+
BLANK_STRING = ""
|
7
8
|
|
8
9
|
def initialize(file)
|
9
10
|
@file = file
|
@@ -43,7 +44,12 @@ module ID3Tag
|
|
43
44
|
def v2_tag_body
|
44
45
|
if v2_tag_size > 0
|
45
46
|
@file.seek(v2_tag_frame_and_padding_position)
|
46
|
-
|
47
|
+
bytes_to_read = v2_tag_frame_and_padding_size
|
48
|
+
limit = ID3Tag.configuration.v2_tag_read_limit
|
49
|
+
if (limit > 0) && (bytes_to_read > limit)
|
50
|
+
bytes_to_read = limit
|
51
|
+
end
|
52
|
+
@file.read(bytes_to_read) || BLANK_STRING
|
47
53
|
end
|
48
54
|
end
|
49
55
|
|
data/lib/id3tag/configuration.rb
CHANGED
@@ -13,13 +13,15 @@ module ID3Tag
|
|
13
13
|
def get_frames
|
14
14
|
frames = []
|
15
15
|
rewind_input
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
16
|
+
catch(:unexpected_eof) do
|
17
|
+
loop do
|
18
|
+
frame_id = read_next_frame_id
|
19
|
+
frame_size = read_next_frame_size
|
20
|
+
frame_flags = read_next_frame_flags
|
21
|
+
frame_content = read_next_bytes(frame_size)
|
22
|
+
frames << Frames::V2::FrameFabricator.fabricate(frame_id, frame_content, frame_flags, @major_version_number)
|
23
|
+
break if padding_or_eof_reached?
|
24
|
+
end
|
23
25
|
end
|
24
26
|
frames
|
25
27
|
end
|
@@ -52,7 +54,9 @@ module ID3Tag
|
|
52
54
|
end
|
53
55
|
|
54
56
|
def read_next_bytes(limit)
|
55
|
-
@input.read(limit)
|
57
|
+
bytes = @input.read(limit)
|
58
|
+
throw(:unexpected_eof) unless bytes && bytes.bytesize == limit
|
59
|
+
bytes
|
56
60
|
end
|
57
61
|
|
58
62
|
def rewind_input
|
data/lib/id3tag/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: id3tag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Krists Ozols
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -108,7 +108,7 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 0.11.1
|
111
|
-
description: Native Ruby ID3 tag reader that aims for 100%
|
111
|
+
description: Native Ruby ID3 tag reader that aims for 100% coverage of ID3v2.x and
|
112
112
|
ID3v1.x standards
|
113
113
|
email: krists.ozols@gmail.com
|
114
114
|
executables: []
|
@@ -117,15 +117,8 @@ extra_rdoc_files:
|
|
117
117
|
- LICENSE.txt
|
118
118
|
- README.md
|
119
119
|
files:
|
120
|
-
- ".document"
|
121
|
-
- ".gitignore"
|
122
|
-
- ".rspec"
|
123
|
-
- ".travis.yml"
|
124
|
-
- Gemfile
|
125
120
|
- LICENSE.txt
|
126
121
|
- README.md
|
127
|
-
- Rakefile
|
128
|
-
- id3tag.gemspec
|
129
122
|
- lib/id3tag.rb
|
130
123
|
- lib/id3tag/audio_file.rb
|
131
124
|
- lib/id3tag/configuration.rb
|
@@ -162,50 +155,7 @@ files:
|
|
162
155
|
- lib/id3tag/tag.rb
|
163
156
|
- lib/id3tag/unsynchronization.rb
|
164
157
|
- lib/id3tag/version.rb
|
165
|
-
|
166
|
-
- spec/features/can_read_tag_v1_spec.rb
|
167
|
-
- spec/fixtures/id3v1_and_v2.mp3
|
168
|
-
- spec/fixtures/id3v1_with_track_nr.mp3
|
169
|
-
- spec/fixtures/id3v1_without_track_nr.mp3
|
170
|
-
- spec/fixtures/id3v2.mp3
|
171
|
-
- spec/fixtures/pov_20131018-2100a.mp3.v1_tag_body
|
172
|
-
- spec/fixtures/pov_20131018-2100a.mp3.v2_3_tag_body
|
173
|
-
- spec/fixtures/signals_1.mp3.v2_3_tag_body
|
174
|
-
- spec/id3tag_extract_tags
|
175
|
-
- spec/lib/id3tag/audio_file_spec.rb
|
176
|
-
- spec/lib/id3tag/frames/util/genre_name_by_id_finder_spec.rb
|
177
|
-
- spec/lib/id3tag/frames/v1/comments_frame_spec.rb
|
178
|
-
- spec/lib/id3tag/frames/v1/genre_frame_spec.rb
|
179
|
-
- spec/lib/id3tag/frames/v1/text_frame_spec.rb
|
180
|
-
- spec/lib/id3tag/frames/v1/track_nr_frame_spec.rb
|
181
|
-
- spec/lib/id3tag/frames/v2/basic_frame_spec.rb
|
182
|
-
- spec/lib/id3tag/frames/v2/comments_frame_spec.rb
|
183
|
-
- spec/lib/id3tag/frames/v2/frame_fabricator_spec.rb
|
184
|
-
- spec/lib/id3tag/frames/v2/frame_flags_spec.rb
|
185
|
-
- spec/lib/id3tag/frames/v2/genre_frame/genre_parser_24_spec.rb
|
186
|
-
- spec/lib/id3tag/frames/v2/genre_frame/genre_parser_pre_24_spec.rb
|
187
|
-
- spec/lib/id3tag/frames/v2/genre_frame/genre_parser_spec.rb
|
188
|
-
- spec/lib/id3tag/frames/v2/genre_frame_spec.rb
|
189
|
-
- spec/lib/id3tag/frames/v2/picture_frame_spec.rb
|
190
|
-
- spec/lib/id3tag/frames/v2/text_frame_spec.rb
|
191
|
-
- spec/lib/id3tag/frames/v2/unique_file_id_frame_spec.rb
|
192
|
-
- spec/lib/id3tag/frames/v2/user_text_frame_spec.rb
|
193
|
-
- spec/lib/id3tag/id3_v1_frame_parser_spec.rb
|
194
|
-
- spec/lib/id3tag/id3_v2_frame_parser_spec.rb
|
195
|
-
- spec/lib/id3tag/id3_v2_tag_header_spec.rb
|
196
|
-
- spec/lib/id3tag/id3tag_spec.rb
|
197
|
-
- spec/lib/id3tag/io_util_spec.rb
|
198
|
-
- spec/lib/id3tag/number_util_spec.rb
|
199
|
-
- spec/lib/id3tag/string_util_spec.rb
|
200
|
-
- spec/lib/id3tag/synchsafe_integer_spec.rb
|
201
|
-
- spec/lib/id3tag/tag_spec.rb
|
202
|
-
- spec/spec_helper.rb
|
203
|
-
- spec/support/mp3_fixtures.rb
|
204
|
-
- standard_documents/id3v2-00.txt
|
205
|
-
- standard_documents/id3v2.3.0.txt
|
206
|
-
- standard_documents/id3v2.4.0-frames.txt
|
207
|
-
- standard_documents/id3v2.4.0-structure.txt
|
208
|
-
homepage: http://github.com/krists/id3tag
|
158
|
+
homepage: https://github.com/krists/id3tag
|
209
159
|
licenses:
|
210
160
|
- MIT
|
211
161
|
metadata: {}
|
@@ -217,7 +167,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
217
167
|
requirements:
|
218
168
|
- - ">="
|
219
169
|
- !ruby/object:Gem::Version
|
220
|
-
version:
|
170
|
+
version: '2.2'
|
221
171
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
222
172
|
requirements:
|
223
173
|
- - ">="
|
@@ -228,45 +178,6 @@ rubyforge_project:
|
|
228
178
|
rubygems_version: 2.7.3
|
229
179
|
signing_key:
|
230
180
|
specification_version: 4
|
231
|
-
summary: Native Ruby ID3 tag reader that aims for 100%
|
181
|
+
summary: Native Ruby ID3 tag reader that aims for 100% coverage of ID3v2.x and ID3v1.x
|
232
182
|
standards
|
233
|
-
test_files:
|
234
|
-
- spec/features/can_read_non_audio_files_spec.rb
|
235
|
-
- spec/features/can_read_tag_v1_spec.rb
|
236
|
-
- spec/fixtures/id3v1_and_v2.mp3
|
237
|
-
- spec/fixtures/id3v1_with_track_nr.mp3
|
238
|
-
- spec/fixtures/id3v1_without_track_nr.mp3
|
239
|
-
- spec/fixtures/id3v2.mp3
|
240
|
-
- spec/fixtures/pov_20131018-2100a.mp3.v1_tag_body
|
241
|
-
- spec/fixtures/pov_20131018-2100a.mp3.v2_3_tag_body
|
242
|
-
- spec/fixtures/signals_1.mp3.v2_3_tag_body
|
243
|
-
- spec/id3tag_extract_tags
|
244
|
-
- spec/lib/id3tag/audio_file_spec.rb
|
245
|
-
- spec/lib/id3tag/frames/util/genre_name_by_id_finder_spec.rb
|
246
|
-
- spec/lib/id3tag/frames/v1/comments_frame_spec.rb
|
247
|
-
- spec/lib/id3tag/frames/v1/genre_frame_spec.rb
|
248
|
-
- spec/lib/id3tag/frames/v1/text_frame_spec.rb
|
249
|
-
- spec/lib/id3tag/frames/v1/track_nr_frame_spec.rb
|
250
|
-
- spec/lib/id3tag/frames/v2/basic_frame_spec.rb
|
251
|
-
- spec/lib/id3tag/frames/v2/comments_frame_spec.rb
|
252
|
-
- spec/lib/id3tag/frames/v2/frame_fabricator_spec.rb
|
253
|
-
- spec/lib/id3tag/frames/v2/frame_flags_spec.rb
|
254
|
-
- spec/lib/id3tag/frames/v2/genre_frame/genre_parser_24_spec.rb
|
255
|
-
- spec/lib/id3tag/frames/v2/genre_frame/genre_parser_pre_24_spec.rb
|
256
|
-
- spec/lib/id3tag/frames/v2/genre_frame/genre_parser_spec.rb
|
257
|
-
- spec/lib/id3tag/frames/v2/genre_frame_spec.rb
|
258
|
-
- spec/lib/id3tag/frames/v2/picture_frame_spec.rb
|
259
|
-
- spec/lib/id3tag/frames/v2/text_frame_spec.rb
|
260
|
-
- spec/lib/id3tag/frames/v2/unique_file_id_frame_spec.rb
|
261
|
-
- spec/lib/id3tag/frames/v2/user_text_frame_spec.rb
|
262
|
-
- spec/lib/id3tag/id3_v1_frame_parser_spec.rb
|
263
|
-
- spec/lib/id3tag/id3_v2_frame_parser_spec.rb
|
264
|
-
- spec/lib/id3tag/id3_v2_tag_header_spec.rb
|
265
|
-
- spec/lib/id3tag/id3tag_spec.rb
|
266
|
-
- spec/lib/id3tag/io_util_spec.rb
|
267
|
-
- spec/lib/id3tag/number_util_spec.rb
|
268
|
-
- spec/lib/id3tag/string_util_spec.rb
|
269
|
-
- spec/lib/id3tag/synchsafe_integer_spec.rb
|
270
|
-
- spec/lib/id3tag/tag_spec.rb
|
271
|
-
- spec/spec_helper.rb
|
272
|
-
- spec/support/mp3_fixtures.rb
|
183
|
+
test_files: []
|
data/.document
DELETED
data/.gitignore
DELETED
data/.rspec
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--color
|
data/.travis.yml
DELETED
data/Gemfile
DELETED
data/Rakefile
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
#!/usr/bin/env rake
|
2
|
-
require "bundler/gem_tasks"
|
3
|
-
require 'rspec/core/rake_task'
|
4
|
-
|
5
|
-
RSpec::Core::RakeTask.new(:spec) do |spec|
|
6
|
-
spec.pattern = FileList['spec/**/*_spec.rb']
|
7
|
-
end
|
8
|
-
|
9
|
-
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
10
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
11
|
-
spec.rcov = true
|
12
|
-
end
|
13
|
-
|
14
|
-
task :default => :spec
|
15
|
-
|
16
|
-
require 'rdoc/task'
|
17
|
-
Rake::RDocTask.new do |rdoc|
|
18
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
19
|
-
|
20
|
-
rdoc.rdoc_dir = 'rdoc'
|
21
|
-
rdoc.title = "id3tag #{version}"
|
22
|
-
rdoc.rdoc_files.include('README*')
|
23
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
24
|
-
end
|
data/id3tag.gemspec
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require File.expand_path('../lib/id3tag/version', __FILE__)
|
3
|
-
|
4
|
-
Gem::Specification.new do |s|
|
5
|
-
s.name = "id3tag"
|
6
|
-
s.version = ID3Tag::VERSION
|
7
|
-
s.authors = ["Krists Ozols"]
|
8
|
-
s.email = "krists.ozols@gmail.com"
|
9
|
-
s.description = "Native Ruby ID3 tag reader that aims for 100% covarage of ID3v2.x and ID3v1.x standards"
|
10
|
-
s.summary = "Native Ruby ID3 tag reader that aims for 100% covarage of ID3v2.x and ID3v1.x standards"
|
11
|
-
s.homepage = "http://github.com/krists/id3tag"
|
12
|
-
s.license = "MIT"
|
13
|
-
|
14
|
-
s.files = `git ls-files`.split($/)
|
15
|
-
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
16
|
-
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
17
|
-
s.extra_rdoc_files = ["LICENSE.txt", "README.md"]
|
18
|
-
s.require_paths = ["lib"]
|
19
|
-
s.required_ruby_version = Gem::Requirement.new(">= 1.9.2")
|
20
|
-
|
21
|
-
s.add_development_dependency "bundler"
|
22
|
-
s.add_development_dependency "rake", "~> 12.1.0"
|
23
|
-
s.add_development_dependency "rdoc", "~> 5.1.0"
|
24
|
-
s.add_development_dependency "rspec", "~> 3.6.0"
|
25
|
-
s.add_development_dependency "simplecov", "~> 0.14.1"
|
26
|
-
s.add_development_dependency 'coveralls', "~> 0.8.21"
|
27
|
-
s.add_development_dependency 'pry', "~> 0.11.1"
|
28
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'tempfile'
|
3
|
-
|
4
|
-
describe 'can read any file and does not raise errors if no tag found' do
|
5
|
-
subject { ID3Tag.read(Tempfile.new('fake_mp3')) }
|
6
|
-
|
7
|
-
it 'should return blanks' do
|
8
|
-
expect(subject.title).to eq(nil)
|
9
|
-
expect(subject.artist).to eq(nil)
|
10
|
-
expect(subject.album).to eq(nil)
|
11
|
-
expect(subject.genre).to eq(nil)
|
12
|
-
expect(subject.year).to eq(nil)
|
13
|
-
expect(subject.track_nr).to eq(nil)
|
14
|
-
expect(subject.frames).to eq([])
|
15
|
-
expect(subject.frame_ids).to eq([])
|
16
|
-
end
|
17
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'can read v1 info from file' do
|
4
|
-
let(:mp3_with_v1_1_tag) { mp3_fixture('id3v1_with_track_nr.mp3') }
|
5
|
-
subject { ID3Tag.read(mp3_with_v1_1_tag) }
|
6
|
-
|
7
|
-
it 'reading file with only v1 tag' do
|
8
|
-
expect(subject.title).to eq("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaA")
|
9
|
-
expect(subject.artist).to eq("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbB")
|
10
|
-
expect(subject.album).to eq("cccccccccccccccccccccccccccccC")
|
11
|
-
expect(subject.genre).to eq("Blues")
|
12
|
-
expect(subject.year).to eq("2003")
|
13
|
-
expect(subject.track_nr).to eq("1")
|
14
|
-
end
|
15
|
-
end
|
Binary file
|
Binary file
|
Binary file
|
data/spec/fixtures/id3v2.mp3
DELETED
Binary file
|
Binary file
|