id3tag 0.10.1 → 0.11.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.
- 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
|
[](https://codeclimate.com/github/krists/id3tag) [](https://travis-ci.org/krists/id3tag) [](https://coveralls.io/r/krists/id3tag) [](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
|