easytag 0.4.3 → 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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/Gemfile +7 -2
  4. data/README.md +33 -27
  5. data/Rakefile +7 -7
  6. data/easytag.gemspec +2 -4
  7. data/lib/easytag.rb +12 -2
  8. data/lib/easytag/attributes/base.rb +32 -128
  9. data/lib/easytag/attributes/flac.rb +25 -0
  10. data/lib/easytag/attributes/mp3.rb +91 -554
  11. data/lib/easytag/attributes/mp4.rb +22 -492
  12. data/lib/easytag/attributes/ogg.rb +27 -0
  13. data/lib/easytag/attributes/vorbis.rb +18 -0
  14. data/lib/easytag/taggers/base.rb +19 -0
  15. data/lib/easytag/taggers/factory.rb +59 -0
  16. data/lib/easytag/taggers/flac.rb +23 -0
  17. data/lib/easytag/taggers/mp3.rb +77 -0
  18. data/lib/easytag/taggers/mp4.rb +73 -0
  19. data/lib/easytag/taggers/ogg.rb +25 -0
  20. data/lib/easytag/taggers/vorbis.rb +66 -0
  21. data/lib/easytag/util.rb +9 -31
  22. data/lib/easytag/version.rb +3 -4
  23. data/scripts/build_attributes_table.rb +34 -0
  24. data/{test → spec/data}/consistency.01.m4a +0 -0
  25. data/{test → spec/data}/consistency.01.mp3 +0 -0
  26. data/spec/data/consistency.flac +0 -0
  27. data/{test/consistency.02.m4a → spec/data/consistency.m4a} +0 -0
  28. data/{test/consistency.02.mp3 → spec/data/consistency.mp3} +0 -0
  29. data/spec/data/consistency.multiple_images.flac +0 -0
  30. data/{test/no_tags.m4a → spec/data/consistency.multiple_images.m4a} +0 -0
  31. data/spec/data/consistency.multiple_images.mp3 +0 -0
  32. data/spec/data/consistency.multiple_images.ogg +0 -0
  33. data/spec/data/consistency.ogg +0 -0
  34. data/{test → spec/data}/musicbrainz.m4a +0 -0
  35. data/spec/data/no_tags.flac +0 -0
  36. data/spec/data/no_tags.m4a +0 -0
  37. data/{test → spec/data}/no_tags.mp3 +0 -0
  38. data/spec/data/no_tags.ogg +0 -0
  39. data/{test → spec/data}/only_id3v1.mp3 +0 -0
  40. data/{test → spec/data}/only_id3v2.mp3 +0 -0
  41. data/spec/flac_tagger_spec.rb +24 -0
  42. data/spec/mp3_tagger_spec.rb +64 -0
  43. data/spec/mp4_tagger_spec.rb +22 -0
  44. data/spec/ogg_tagger_spec.rb +21 -0
  45. data/spec/shared_examples.rb +115 -0
  46. data/spec/spec_helper.rb +34 -0
  47. data/spec/tagger_factory_spec.rb +27 -0
  48. data/spec/util_spec.rb +47 -0
  49. metadata +47 -48
  50. data/lib/easytag/attributes.rb +0 -0
  51. data/lib/easytag/base.rb +0 -28
  52. data/lib/easytag/file.rb +0 -44
  53. data/lib/easytag/interfaces.rb +0 -18
  54. data/lib/easytag/interfaces/base.rb +0 -24
  55. data/lib/easytag/interfaces/mp3.rb +0 -48
  56. data/lib/easytag/interfaces/mp4.rb +0 -14
  57. data/test/test_consistency.rb +0 -233
  58. data/test/test_mp3.rb +0 -98
  59. data/test/test_mp4.rb +0 -49
  60. data/test/test_util.rb +0 -72
metadata CHANGED
@@ -1,57 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easytag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Lucas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-20 00:00:00.000000000 Z
11
+ date: 2014-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: ruby-imagespec
14
+ name: taglib-ruby
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - '>='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.1
19
+ version: 0.6.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '>='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.3.1
26
+ version: 0.6.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: ruby-mp3info
28
+ name: ruby-imagespec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '>='
32
32
  - !ruby/object:Gem::Version
33
- version: '0.8'
33
+ version: 0.3.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
- version: '0.8'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '>='
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
40
+ version: 0.3.1
55
41
  description: |2
56
42
  EasyTag is an abstract interface to the TagLib audio tagging library.
57
43
  It is designed to provide a simple and consistent API regardless
@@ -69,32 +55,48 @@ files:
69
55
  - Rakefile
70
56
  - easytag.gemspec
71
57
  - lib/easytag.rb
72
- - lib/easytag/attributes.rb
73
58
  - lib/easytag/attributes/base.rb
59
+ - lib/easytag/attributes/flac.rb
74
60
  - lib/easytag/attributes/mp3.rb
75
61
  - lib/easytag/attributes/mp4.rb
76
- - lib/easytag/base.rb
77
- - lib/easytag/file.rb
62
+ - lib/easytag/attributes/ogg.rb
63
+ - lib/easytag/attributes/vorbis.rb
78
64
  - lib/easytag/image.rb
79
- - lib/easytag/interfaces.rb
80
- - lib/easytag/interfaces/base.rb
81
- - lib/easytag/interfaces/mp3.rb
82
- - lib/easytag/interfaces/mp4.rb
65
+ - lib/easytag/taggers/base.rb
66
+ - lib/easytag/taggers/factory.rb
67
+ - lib/easytag/taggers/flac.rb
68
+ - lib/easytag/taggers/mp3.rb
69
+ - lib/easytag/taggers/mp4.rb
70
+ - lib/easytag/taggers/ogg.rb
71
+ - lib/easytag/taggers/vorbis.rb
83
72
  - lib/easytag/util.rb
84
73
  - lib/easytag/version.rb
85
- - test/consistency.01.m4a
86
- - test/consistency.01.mp3
87
- - test/consistency.02.m4a
88
- - test/consistency.02.mp3
89
- - test/musicbrainz.m4a
90
- - test/no_tags.m4a
91
- - test/no_tags.mp3
92
- - test/only_id3v1.mp3
93
- - test/only_id3v2.mp3
94
- - test/test_consistency.rb
95
- - test/test_mp3.rb
96
- - test/test_mp4.rb
97
- - test/test_util.rb
74
+ - scripts/build_attributes_table.rb
75
+ - spec/data/consistency.01.m4a
76
+ - spec/data/consistency.01.mp3
77
+ - spec/data/consistency.flac
78
+ - spec/data/consistency.m4a
79
+ - spec/data/consistency.mp3
80
+ - spec/data/consistency.multiple_images.flac
81
+ - spec/data/consistency.multiple_images.m4a
82
+ - spec/data/consistency.multiple_images.mp3
83
+ - spec/data/consistency.multiple_images.ogg
84
+ - spec/data/consistency.ogg
85
+ - spec/data/musicbrainz.m4a
86
+ - spec/data/no_tags.flac
87
+ - spec/data/no_tags.m4a
88
+ - spec/data/no_tags.mp3
89
+ - spec/data/no_tags.ogg
90
+ - spec/data/only_id3v1.mp3
91
+ - spec/data/only_id3v2.mp3
92
+ - spec/flac_tagger_spec.rb
93
+ - spec/mp3_tagger_spec.rb
94
+ - spec/mp4_tagger_spec.rb
95
+ - spec/ogg_tagger_spec.rb
96
+ - spec/shared_examples.rb
97
+ - spec/spec_helper.rb
98
+ - spec/tagger_factory_spec.rb
99
+ - spec/util_spec.rb
98
100
  homepage: https://github.com/cjlucas/ruby-easytag
99
101
  licenses:
100
102
  - MIT
@@ -115,12 +117,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
117
  version: '0'
116
118
  requirements: []
117
119
  rubyforge_project:
118
- rubygems_version: 2.0.3
120
+ rubygems_version: 2.1.11
119
121
  signing_key:
120
122
  specification_version: 4
121
123
  summary: A simple audio metadata tagging interface
122
- test_files:
123
- - test/test_consistency.rb
124
- - test/test_mp3.rb
125
- - test/test_mp4.rb
126
- - test/test_util.rb
124
+ test_files: []
125
+ has_rdoc:
File without changes
@@ -1,28 +0,0 @@
1
- require 'taglib'
2
-
3
- require 'easytag/interfaces'
4
-
5
- module EasyTag
6
- class Base
7
- attr_reader :interface
8
-
9
- def self.build_proxy_methods(iface)
10
- # generate dynamic getters
11
- (iface.instance_methods - Object.instance_methods).each do |m|
12
- define_method(m) { proxy_getter(m) }
13
- end
14
- end
15
-
16
- def proxy_getter(m)
17
- unless @interface.respond_to?(m)
18
- warn "#{@interface.class} doesn't support method #{m}"
19
- end
20
-
21
- @interface.send(m)
22
- end
23
-
24
- # dynamic instance method generation
25
- EasyTag::Interfaces.all.each { |iface| self.build_proxy_methods(iface) }
26
- end
27
- end
28
-
@@ -1,44 +0,0 @@
1
- require 'easytag/base'
2
-
3
- module EasyTag
4
- class EasyTagFileUnsupportedError < Exception; end
5
-
6
- class File < Base
7
- attr_reader :file
8
-
9
- def initialize(file)
10
- @file = file
11
-
12
- if audio_interface_class.nil?
13
- raise EasyTagFileUnsupportedError,
14
- "Couldn't determine which interface to use"
15
- end
16
-
17
- @interface = audio_interface_class.new(file)
18
- end
19
-
20
- # block interface
21
- def self.open(file)
22
- interface = self.new(file)
23
- begin
24
- yield interface if block_given?
25
- ensure
26
- interface.close if interface.respond_to?(:close)
27
- end
28
- end
29
-
30
- private
31
- # sufficient for now
32
- def audio_interface_class
33
- ext = ::File.extname(@file).downcase[1..-1]
34
- case ext
35
- when 'mp3'
36
- EasyTag::Interfaces::MP3
37
- when 'mp4', 'm4a', 'aac'
38
- EasyTag::Interfaces::MP4
39
- else
40
- nil
41
- end
42
- end
43
- end
44
- end
@@ -1,18 +0,0 @@
1
- require 'easytag/image'
2
- require 'easytag/interfaces/base'
3
- require 'easytag/interfaces/mp3'
4
- require 'easytag/interfaces/mp4'
5
-
6
- module EasyTag::Interfaces
7
- # get all audio interfaces
8
- def self.all
9
- # get all classes in Interfaces
10
- classes = self.constants.map do |sym|
11
- const = self.const_get(sym)
12
- const if const.class == Class && const.method_defined?(:info)
13
- end
14
-
15
- # filter out nil's
16
- classes.compact
17
- end
18
- end
@@ -1,24 +0,0 @@
1
- module EasyTag
2
- module Interfaces
3
- class Base
4
- attr_reader :info
5
-
6
- def close
7
- @info.close
8
- end
9
-
10
- def self.build_attributes(attrib_class, attrib_args)
11
- attrib_args.each do |attrib_args|
12
- attrib = attrib_class.new(attrib_args)
13
- define_method(attrib.name) do
14
- instance_variable_get(attrib.ivar) ||
15
- instance_variable_set(attrib.ivar, attrib.call(self))
16
- end
17
-
18
- attrib.aliases.each { |a| alias_method a, attrib.name}
19
- end
20
- end
21
-
22
- end
23
- end
24
- end
@@ -1,48 +0,0 @@
1
- require 'mp3info'
2
-
3
- require 'easytag/attributes/mp3'
4
-
5
- module EasyTag::Interfaces
6
-
7
- class MP3 < Base
8
- ATTRIB_ARGS = EasyTag::Attributes::MP3_ATTRIB_ARGS
9
- ATTRIB_CLASS = EasyTag::Attributes::MP3Attribute
10
-
11
- def initialize(file)
12
- @info = TagLib::MPEG::File.new(file)
13
-
14
- add_tdat_to_taglib(file)
15
- end
16
-
17
- private
18
-
19
- def add_tdat_to_taglib(file)
20
- # this is required because taglib hash issues with the TDAT+TYER
21
- # frame (https://github.com/taglib/taglib/issues/127)
22
- id3v2_hash = ID3v2.new
23
-
24
- File.open(file) do |fp|
25
- fp.read(3) # read past ID3 identifier
26
- begin
27
- id3v2_hash.from_io(fp)
28
- rescue ID3v2Error => e
29
- warn 'no id3v2 tags found'
30
- end
31
- end
32
-
33
- # delete all TDAT frames (taglib-ruby segfaults when trying to read)
34
- frames = @info.id3v2_tag.frame_list('TDAT')
35
- frames.each { |frame| @info.id3v2_tag.remove_frame(frame) }
36
-
37
- if id3v2_hash['TDAT']
38
- frame = TagLib::ID3v2::TextIdentificationFrame
39
- .new('TDAT', TagLib::String::UTF8)
40
-
41
- frame.text = id3v2_hash['TDAT']
42
- @info.id3v2_tag.add_frame(frame)
43
- end
44
- end
45
-
46
- self.build_attributes(ATTRIB_CLASS, ATTRIB_ARGS)
47
- end
48
- end
@@ -1,14 +0,0 @@
1
- require 'easytag/attributes/mp4'
2
-
3
- module EasyTag::Interfaces
4
- class MP4 < Base
5
- ATTRIB_ARGS = EasyTag::Attributes::MP4_ATTRIB_ARGS
6
- ATTRIB_CLASS = EasyTag::Attributes::MP4Attribute
7
-
8
- def initialize(file)
9
- @info = TagLib::MP4::File.new(file)
10
- end
11
-
12
- self.build_attributes(ATTRIB_CLASS, ATTRIB_ARGS)
13
- end
14
- end
@@ -1,233 +0,0 @@
1
- require 'digest/sha1'
2
- require 'test/unit'
3
-
4
- require 'easytag'
5
-
6
- TEST_DIR = File.dirname(File.absolute_path(__FILE__)) << File::SEPARATOR
7
-
8
- class TestConsistencyMP301 < Test::Unit::TestCase
9
- def setup
10
- @mp3 = EasyTag::File.new("#{TEST_DIR}consistency.01.mp3")
11
- end
12
-
13
- def test_tags
14
- assert_equal('Track Title', @mp3.title)
15
- assert_equal('Artist Name Here', @mp3.artist)
16
- assert_equal('Album Artist Here', @mp3.album_artist)
17
- assert_equal('Album Name Here', @mp3.album)
18
- assert_equal('This is my comment.', @mp3.comment)
19
- assert_equal('Polka', @mp3.genre)
20
- assert_equal(1941, @mp3.year)
21
- assert_equal([5, 0], @mp3.track_num)
22
- assert_equal([3, 0], @mp3.disc_num)
23
- assert_equal(false, @mp3.compilation?)
24
- assert_equal(0, @mp3.bpm)
25
- end
26
-
27
- def test_date
28
- assert_equal(1941, @mp3.date.year)
29
- assert_equal(12, @mp3.date.month)
30
- assert_equal(7, @mp3.date.day)
31
- end
32
-
33
- def test_album_art
34
- assert_equal(2, @mp3.album_art.count)
35
-
36
- sha1 = Digest::SHA1.hexdigest(@mp3.album_art[0].data)
37
- assert_equal('this is the front cover', @mp3.album_art[0].desc)
38
- assert_equal('Cover (front)', @mp3.album_art[0].type_s)
39
- assert_equal('image/jpeg', @mp3.album_art[0].mime_type)
40
- assert_equal(10, @mp3.album_art[0].width)
41
- assert_equal(5, @mp3.album_art[0].height)
42
- assert_equal('6555697ca1bf96117608bfb5a44c05cb622f88eb', sha1)
43
-
44
- sha1 = Digest::SHA1.hexdigest(@mp3.album_art[1].data)
45
- assert_equal('this is the artist', @mp3.album_art[1].desc)
46
- assert_equal('Artist', @mp3.album_art[1].type_s)
47
- assert_equal('image/png', @mp3.album_art[1].mime_type)
48
- assert_equal(10, @mp3.album_art[1].width)
49
- assert_equal(5, @mp3.album_art[1].height)
50
- assert_equal('9db2996823fb44ed64dfc8f57dc9df3b970c6b22', sha1)
51
- end
52
- end
53
-
54
- class TestConsistency01 < Test::Unit::TestCase
55
- def setup
56
- @mp3 = EasyTag::File.new("#{TEST_DIR}consistency.01.mp3")
57
- @mp4 = EasyTag::File.new("#{TEST_DIR}consistency.01.m4a")
58
- end
59
-
60
- def test_tags
61
- assert_equal(@mp3.title, @mp4.title)
62
- assert_equal(@mp3.artist, @mp4.artist)
63
- assert_equal(@mp3.album_artist, @mp4.album_artist)
64
- assert_equal(@mp3.album, @mp4.album)
65
- assert_equal(@mp3.comments, @mp4.comments)
66
- assert_equal(@mp3.genre, @mp4.genre)
67
- assert_equal(@mp3.year, @mp4.year)
68
- end
69
-
70
- def test_date
71
- # MP4 only supports year, so thats all we can test
72
- assert_equal(@mp3.date.year, @mp4.date.year)
73
- end
74
-
75
- def test_album_art
76
- # we're limited to what we can compare here, since mp4 is so limited
77
- img_mp3 = @mp3.album_art[0]
78
- img_mp4 = @mp4.album_art[0]
79
- assert_equal(img_mp3.mime_type, img_mp4.mime_type)
80
- assert_equal(img_mp3.data, img_mp4.data)
81
- end
82
-
83
- end
84
-
85
- class TestConsistencyMP302 < Test::Unit::TestCase
86
- def setup
87
- @mp3 = EasyTag::File.new("#{TEST_DIR}consistency.02.mp3")
88
- end
89
-
90
- def test_tags
91
- cases = [
92
- ['She Lives in My Lap', @mp3.title],
93
- ['', @mp3.title_sort_order],
94
- ['OutKast feat. Rosario Dawson', @mp3.artist],
95
- ['OutKast feat. Dawson, Rosario', @mp3.artist_sort_order],
96
- ['OutKast', @mp3.album_artist],
97
- ['', @mp3.album_artist_sort_order],
98
- ['Speakerboxxx / The Love Below', @mp3.album],
99
- ['', @mp3.album_sort_order],
100
- [[], @mp3.comments],
101
- ['', @mp3.genre],
102
- [2003, @mp3.year],
103
- [[8, 21], @mp3.track_num],
104
- [[2, 2], @mp3.disc_num],
105
- ['The Love Below', @mp3.disc_subtitle],
106
- ['CD', @mp3.media],
107
- ['Arista', @mp3.label],
108
- [true, @mp3.compilation?],
109
- [0, @mp3.bpm],
110
- ['B0000AGWFX', @mp3.asin],
111
- ]
112
-
113
- cases.each do |c|
114
- expected, actual = c
115
- assert_equal(expected, actual)
116
- end
117
- end
118
-
119
- def test_date
120
- assert_equal(2003, @mp3.date.year)
121
- assert_equal(9, @mp3.date.month)
122
- assert_equal(23, @mp3.date.day)
123
-
124
- assert_equal(2003, @mp3.original_date.year)
125
- assert_equal(9, @mp3.original_date.month)
126
- assert_equal(23, @mp3.original_date.day)
127
- end
128
-
129
- def test_musicbrainz_data
130
- cases = [
131
- [['album'], @mp3.musicbrainz_album_type],
132
- ['73fdb566-a9b1-494c-9f32-51768ec9fd27',
133
- @mp3.musicbrainz_album_artist_id],
134
- [["73fdb566-a9b1-494c-9f32-51768ec9fd27",
135
- "9facf8dc-df23-4561-85c5-ece75d692f21"], @mp3.musicbrainz_artist_id],
136
- ['468cd19e-d55c-46a2-a5a6-66292d2f0a90', @mp3.musicbrainz_album_id],
137
- ['fa64febd-61e0-346e-aaa2-04564ed4f0a3',
138
- @mp3.musicbrainz_release_group_id],
139
- ['US', @mp3.musicbrainz_album_release_country],
140
- ['official', @mp3.musicbrainz_album_status],
141
- ]
142
-
143
- cases.each do |c|
144
- expected, actual = c
145
- assert_equal(expected, actual)
146
- end
147
- end
148
-
149
- def test_album_art
150
- assert_equal(1, @mp3.album_art.count)
151
-
152
- #sha1 = Digest::SHA1.hexdigest(@mp3.album_art[0].data)
153
- #assert_equal('this is the front cover', @mp3.album_art[0].desc)
154
- #assert_equal('Cover (front)', @mp3.album_art[0].type_s)
155
- #assert_equal('image/jpeg', @mp3.album_art[0].mime_type)
156
- #assert_equal(10, @mp3.album_art[0].width)
157
- #assert_equal(5, @mp3.album_art[0].height)
158
- #assert_equal('6555697ca1bf96117608bfb5a44c05cb622f88eb', sha1)
159
- end
160
- end
161
-
162
- class TestConsistency02 < Test::Unit::TestCase
163
- def setup
164
- @mp3 = EasyTag::File.new("#{TEST_DIR}consistency.02.mp3")
165
- @mp4 = EasyTag::File.new("#{TEST_DIR}consistency.02.m4a")
166
- end
167
-
168
- def test_tags
169
- cases = [
170
- :title,
171
- :title_sort_order,
172
- :artist,
173
- :artist_sort_order,
174
- #:album_artist_sort_order, # MP3 isn't working
175
- :album,
176
- :album_sort_order,
177
- :comments,
178
- :genre,
179
- :year,
180
- :track_num,
181
- :disc_num,
182
- :disc_subtitle,
183
- :media,
184
- :label,
185
- :compilation?,
186
- :bpm,
187
- :asin,
188
- :conductor,
189
- :remixer,
190
- :mood,
191
- ]
192
-
193
- cases.each do |c|
194
- #puts c
195
- assert_equal(@mp3.send(c), @mp4.send(c))
196
- end
197
-
198
- end
199
-
200
- def test_date
201
- assert_equal(@mp3.date.year, @mp4.date.year)
202
- assert_equal(@mp3.date.month, @mp4.date.month)
203
- assert_equal(@mp3.date.day, @mp4.date.day)
204
- end
205
-
206
- def test_album_art
207
- # we're limited to what we can compare here, since mp4 is so limited
208
- img_mp3 = @mp3.album_art[0]
209
- img_mp4 = @mp4.album_art[0]
210
- assert_equal(img_mp3.mime_type, img_mp4.mime_type)
211
- assert_equal(img_mp3.data, img_mp4.data)
212
- end
213
-
214
- def test_musicbrainz_data
215
- cases = [
216
- :musicbrainz_album_artist_id,
217
- :musicbrainz_album_id,
218
- :musicbrainz_album_release_country,
219
- :musicbrainz_album_status,
220
- :musicbrainz_album_type,
221
- :musicbrainz_artist_id,
222
- :musicbrainz_release_group_id,
223
- :musicbrainz_track_id,
224
- ]
225
-
226
- cases.each do |c|
227
- #puts c
228
- assert_equal(@mp3.send(c), @mp4.send(c))
229
- end
230
- end
231
-
232
- end
233
-