taglib-ruby 0.4.0-x86-mingw32

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 (85) hide show
  1. data/.yardopts +9 -0
  2. data/CHANGES.md +53 -0
  3. data/Gemfile +4 -0
  4. data/Guardfile +8 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +87 -0
  7. data/Rakefile +29 -0
  8. data/docs/default/fulldoc/html/css/common.css +1 -0
  9. data/docs/taglib/base.rb +202 -0
  10. data/docs/taglib/id3v1.rb +5 -0
  11. data/docs/taglib/id3v2.rb +444 -0
  12. data/docs/taglib/mpeg.rb +120 -0
  13. data/docs/taglib/ogg.rb +77 -0
  14. data/docs/taglib/vorbis.rb +62 -0
  15. data/ext/extconf_common.rb +29 -0
  16. data/ext/taglib_base/extconf.rb +4 -0
  17. data/ext/taglib_base/includes.i +115 -0
  18. data/ext/taglib_base/taglib_base.i +139 -0
  19. data/ext/taglib_base/taglib_base_wrap.cxx +5153 -0
  20. data/ext/taglib_id3v1/extconf.rb +4 -0
  21. data/ext/taglib_id3v1/taglib_id3v1.i +11 -0
  22. data/ext/taglib_id3v1/taglib_id3v1_wrap.cxx +3110 -0
  23. data/ext/taglib_id3v2/extconf.rb +4 -0
  24. data/ext/taglib_id3v2/relativevolumeframe.i +35 -0
  25. data/ext/taglib_id3v2/taglib_id3v2.i +112 -0
  26. data/ext/taglib_id3v2/taglib_id3v2_wrap.cxx +9033 -0
  27. data/ext/taglib_mpeg/extconf.rb +4 -0
  28. data/ext/taglib_mpeg/taglib_mpeg.i +75 -0
  29. data/ext/taglib_mpeg/taglib_mpeg_wrap.cxx +4726 -0
  30. data/ext/taglib_ogg/extconf.rb +4 -0
  31. data/ext/taglib_ogg/taglib_ogg.i +36 -0
  32. data/ext/taglib_ogg/taglib_ogg_wrap.cxx +3631 -0
  33. data/ext/taglib_vorbis/extconf.rb +4 -0
  34. data/ext/taglib_vorbis/taglib_vorbis.i +48 -0
  35. data/ext/taglib_vorbis/taglib_vorbis_wrap.cxx +3083 -0
  36. data/ext/valgrind-suppressions.txt +170 -0
  37. data/ext/win.cmake +5 -0
  38. data/lib/libtag.dll +0 -0
  39. data/lib/taglib.rb +14 -0
  40. data/lib/taglib/base.rb +19 -0
  41. data/lib/taglib/id3v1.rb +1 -0
  42. data/lib/taglib/id3v2.rb +20 -0
  43. data/lib/taglib/mpeg.rb +7 -0
  44. data/lib/taglib/ogg.rb +1 -0
  45. data/lib/taglib/version.rb +10 -0
  46. data/lib/taglib/vorbis.rb +7 -0
  47. data/lib/taglib_base.so +0 -0
  48. data/lib/taglib_id3v1.so +0 -0
  49. data/lib/taglib_id3v2.so +0 -0
  50. data/lib/taglib_mpeg.so +0 -0
  51. data/lib/taglib_ogg.so +0 -0
  52. data/lib/taglib_vorbis.so +0 -0
  53. data/taglib-ruby.gemspec +122 -0
  54. data/tasks/docs_coverage.rake +26 -0
  55. data/tasks/ext.rake +81 -0
  56. data/tasks/gemspec_check.rake +19 -0
  57. data/tasks/swig.rake +43 -0
  58. data/test/data/Makefile +15 -0
  59. data/test/data/add-relative-volume.cpp +40 -0
  60. data/test/data/crash.mp3 +0 -0
  61. data/test/data/globe_east_540.jpg +0 -0
  62. data/test/data/id3v1-create.cpp +31 -0
  63. data/test/data/id3v1.mp3 +0 -0
  64. data/test/data/relative-volume.mp3 +0 -0
  65. data/test/data/sample.mp3 +0 -0
  66. data/test/data/unicode.mp3 +0 -0
  67. data/test/data/vorbis-create.cpp +42 -0
  68. data/test/data/vorbis.oga +0 -0
  69. data/test/fileref_open_test.rb +32 -0
  70. data/test/fileref_properties_test.rb +21 -0
  71. data/test/fileref_write_test.rb +62 -0
  72. data/test/helper.rb +10 -0
  73. data/test/id3v1_tag_test.rb +36 -0
  74. data/test/id3v2_frames_test.rb +115 -0
  75. data/test/id3v2_memory_test.rb +87 -0
  76. data/test/id3v2_relative_volume_test.rb +62 -0
  77. data/test/id3v2_tag_test.rb +59 -0
  78. data/test/id3v2_unicode_test.rb +47 -0
  79. data/test/id3v2_write_test.rb +100 -0
  80. data/test/mpeg_file_test.rb +76 -0
  81. data/test/tag_test.rb +21 -0
  82. data/test/unicode_filename_test.rb +29 -0
  83. data/test/vorbis_file_test.rb +54 -0
  84. data/test/vorbis_tag_test.rb +79 -0
  85. metadata +191 -0
@@ -0,0 +1,29 @@
1
+ require File.join(File.dirname(__FILE__), 'helper')
2
+ require 'fileutils'
3
+
4
+ class TestUnicodeFilename < Test::Unit::TestCase
5
+ SRC_FILE = "test/data/vorbis.oga"
6
+ # That's "hello-" followed by "ni hao" in UTF-8
7
+ DST_FILE = "test/data/hello-\xE4\xBD\xA0\xE5\xA5\xBD.oga"
8
+
9
+ context "TagLib::FileRef" do
10
+ setup do
11
+ if HAVE_ENCODING
12
+ DST_FILE.force_encoding('UTF-8')
13
+ end
14
+ FileUtils.cp SRC_FILE, DST_FILE
15
+ @fileref = TagLib::FileRef.new(DST_FILE, false)
16
+ @tag = @fileref.tag
17
+ end
18
+
19
+ should "be possible to read" do
20
+ assert_not_nil @tag
21
+ assert_equal 'Title', @tag.title
22
+ end
23
+
24
+ teardown do
25
+ @fileref.close
26
+ FileUtils.rm DST_FILE
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,54 @@
1
+ require File.join(File.dirname(__FILE__), 'helper')
2
+
3
+ class TestVorbisFile < Test::Unit::TestCase
4
+ context "The vorbis.oga file" do
5
+ setup do
6
+ @file = TagLib::Ogg::Vorbis::File.new("test/data/vorbis.oga")
7
+ end
8
+
9
+ should "have a tag" do
10
+ tag = @file.tag
11
+ assert_not_nil tag
12
+ assert_equal TagLib::Ogg::XiphComment, tag.class
13
+ end
14
+
15
+ context "audio properties" do
16
+ setup do
17
+ @properties = @file.audio_properties
18
+ end
19
+
20
+ should "exist" do
21
+ assert_not_nil @properties
22
+ end
23
+
24
+ should "contain basic information" do
25
+ assert_equal 0, @properties.length # file is short
26
+ assert_equal 64, @properties.bitrate
27
+ assert_equal 44100, @properties.sample_rate
28
+ assert_equal 2, @properties.channels
29
+ end
30
+
31
+ should "contain vorbis-specific information" do
32
+ assert_equal 0, @properties.vorbis_version
33
+ assert_equal 0, @properties.bitrate_maximum
34
+ assert_equal 64000, @properties.bitrate_nominal
35
+ assert_equal 0, @properties.bitrate_minimum
36
+ end
37
+ end
38
+
39
+ teardown do
40
+ @file.close
41
+ @file = nil
42
+ end
43
+ end
44
+
45
+ context "TagLib::Ogg::Vorbis::File" do
46
+ should "have open method" do
47
+ title = nil
48
+ TagLib::Ogg::Vorbis::File.open("test/data/vorbis.oga", false) do |file|
49
+ title = file.tag.title
50
+ end
51
+ assert_equal "Title", title
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,79 @@
1
+ require File.join(File.dirname(__FILE__), 'helper')
2
+
3
+ class TestVorbisTag < Test::Unit::TestCase
4
+ context "The vorbis.oga file tag" do
5
+ setup do
6
+ @file = TagLib::Ogg::Vorbis::File.new("test/data/vorbis.oga")
7
+ @tag = @file.tag
8
+ end
9
+
10
+ should "contain basic tag information" do
11
+ assert_equal "Title", @tag.title
12
+ assert_equal "Artist", @tag.artist
13
+ assert_equal "Album", @tag.album
14
+ assert_equal "Test file", @tag.comment
15
+ assert_equal "Pop", @tag.genre
16
+ assert_equal 2011, @tag.year
17
+ assert_equal 7, @tag.track
18
+ assert_equal false, @tag.empty?
19
+ end
20
+
21
+ should "have contains? method" do
22
+ assert @tag.contains?('TITLE')
23
+ assert !@tag.contains?('DOESNTEXIST')
24
+ end
25
+
26
+ should "have field_count" do
27
+ assert_equal 16, @tag.field_count
28
+ end
29
+
30
+ should "have vendor_id" do
31
+ assert_equal "Xiph.Org libVorbis I 20101101 (Schaufenugget)", @tag.vendor_id
32
+ end
33
+
34
+ context "fields" do
35
+ setup do
36
+ @fields = @tag.field_list_map
37
+ end
38
+
39
+ should "exist" do
40
+ assert_not_nil @fields
41
+ end
42
+
43
+ should "be usable as a Hash" do
44
+ assert_equal ["Title"], @fields['TITLE']
45
+ assert_nil @fields['DOESNTEXIST']
46
+ end
47
+
48
+ should "be able to return more than one value for a key" do
49
+ assert_equal ["A", "B"], @fields['MULTIPLE']
50
+ end
51
+ end
52
+
53
+ should "support add_field with replace" do
54
+ @tag.add_field('TITLE', "New Title")
55
+ assert_equal ["New Title"], @tag.field_list_map['TITLE']
56
+ end
57
+
58
+ should "support add_field without replace" do
59
+ replace = false
60
+ @tag.add_field('TITLE', "Additional Title", replace)
61
+ assert_equal ["Title", "Additional Title"], @tag.field_list_map['TITLE']
62
+ end
63
+
64
+ should "support remove_field with value" do
65
+ @tag.remove_field('MULTIPLE', "A")
66
+ assert_equal ["B"], @tag.field_list_map['MULTIPLE']
67
+ end
68
+
69
+ should "support remove_field without value" do
70
+ @tag.remove_field('MULTIPLE')
71
+ assert !@tag.contains?('MULTIPLE')
72
+ end
73
+
74
+ teardown do
75
+ @file.close
76
+ @file = nil
77
+ end
78
+ end
79
+ end
metadata ADDED
@@ -0,0 +1,191 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: taglib-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ prerelease:
6
+ platform: x86-mingw32
7
+ authors:
8
+ - Robin Stocker
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-03-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: &10846620 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.1.0
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *10846620
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake-compiler
27
+ requirement: &10845940 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '0.8'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *10845940
36
+ - !ruby/object:Gem::Dependency
37
+ name: shoulda-context
38
+ requirement: &10844840 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: '1.0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *10844840
47
+ - !ruby/object:Gem::Dependency
48
+ name: yard
49
+ requirement: &10844340 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '0.7'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *10844340
58
+ description: ! 'Ruby interface for the taglib C++ library.
59
+
60
+
61
+ In contrast to other libraries, this one wraps the C++ API using SWIG,
62
+
63
+ not only the minimal C API. This means that all tags can be accessed.
64
+
65
+ '
66
+ email:
67
+ - robin@nibor.org
68
+ executables: []
69
+ extensions: []
70
+ extra_rdoc_files:
71
+ - CHANGES.md
72
+ - LICENSE.txt
73
+ - README.md
74
+ files:
75
+ - .yardopts
76
+ - CHANGES.md
77
+ - Gemfile
78
+ - Guardfile
79
+ - LICENSE.txt
80
+ - README.md
81
+ - Rakefile
82
+ - docs/default/fulldoc/html/css/common.css
83
+ - docs/taglib/base.rb
84
+ - docs/taglib/id3v1.rb
85
+ - docs/taglib/id3v2.rb
86
+ - docs/taglib/mpeg.rb
87
+ - docs/taglib/ogg.rb
88
+ - docs/taglib/vorbis.rb
89
+ - ext/extconf_common.rb
90
+ - ext/taglib_base/extconf.rb
91
+ - ext/taglib_base/includes.i
92
+ - ext/taglib_base/taglib_base.i
93
+ - ext/taglib_base/taglib_base_wrap.cxx
94
+ - ext/taglib_id3v1/extconf.rb
95
+ - ext/taglib_id3v1/taglib_id3v1.i
96
+ - ext/taglib_id3v1/taglib_id3v1_wrap.cxx
97
+ - ext/taglib_id3v2/extconf.rb
98
+ - ext/taglib_id3v2/relativevolumeframe.i
99
+ - ext/taglib_id3v2/taglib_id3v2.i
100
+ - ext/taglib_id3v2/taglib_id3v2_wrap.cxx
101
+ - ext/taglib_mpeg/extconf.rb
102
+ - ext/taglib_mpeg/taglib_mpeg.i
103
+ - ext/taglib_mpeg/taglib_mpeg_wrap.cxx
104
+ - ext/taglib_ogg/extconf.rb
105
+ - ext/taglib_ogg/taglib_ogg.i
106
+ - ext/taglib_ogg/taglib_ogg_wrap.cxx
107
+ - ext/taglib_vorbis/extconf.rb
108
+ - ext/taglib_vorbis/taglib_vorbis.i
109
+ - ext/taglib_vorbis/taglib_vorbis_wrap.cxx
110
+ - ext/valgrind-suppressions.txt
111
+ - ext/win.cmake
112
+ - lib/taglib.rb
113
+ - lib/taglib/base.rb
114
+ - lib/taglib/id3v1.rb
115
+ - lib/taglib/id3v2.rb
116
+ - lib/taglib/mpeg.rb
117
+ - lib/taglib/ogg.rb
118
+ - lib/taglib/version.rb
119
+ - lib/taglib/vorbis.rb
120
+ - taglib-ruby.gemspec
121
+ - tasks/docs_coverage.rake
122
+ - tasks/ext.rake
123
+ - tasks/gemspec_check.rake
124
+ - tasks/swig.rake
125
+ - test/data/Makefile
126
+ - test/data/add-relative-volume.cpp
127
+ - test/data/crash.mp3
128
+ - test/data/globe_east_540.jpg
129
+ - test/data/id3v1-create.cpp
130
+ - test/data/id3v1.mp3
131
+ - test/data/relative-volume.mp3
132
+ - test/data/sample.mp3
133
+ - test/data/unicode.mp3
134
+ - test/data/vorbis-create.cpp
135
+ - test/data/vorbis.oga
136
+ - test/helper.rb
137
+ - test/fileref_open_test.rb
138
+ - test/fileref_properties_test.rb
139
+ - test/fileref_write_test.rb
140
+ - test/id3v1_tag_test.rb
141
+ - test/id3v2_frames_test.rb
142
+ - test/id3v2_memory_test.rb
143
+ - test/id3v2_relative_volume_test.rb
144
+ - test/id3v2_tag_test.rb
145
+ - test/id3v2_unicode_test.rb
146
+ - test/id3v2_write_test.rb
147
+ - test/mpeg_file_test.rb
148
+ - test/tag_test.rb
149
+ - test/unicode_filename_test.rb
150
+ - test/vorbis_file_test.rb
151
+ - test/vorbis_tag_test.rb
152
+ - lib/taglib_base.so
153
+ - lib/taglib_mpeg.so
154
+ - lib/taglib_id3v1.so
155
+ - lib/taglib_id3v2.so
156
+ - lib/taglib_ogg.so
157
+ - lib/taglib_vorbis.so
158
+ - lib/libtag.dll
159
+ homepage: http://robinst.github.com/taglib-ruby/
160
+ licenses:
161
+ - MIT
162
+ post_install_message:
163
+ rdoc_options: []
164
+ require_paths:
165
+ - lib
166
+ required_ruby_version: !ruby/object:Gem::Requirement
167
+ none: false
168
+ requirements:
169
+ - - ! '>='
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ segments:
173
+ - 0
174
+ hash: 3464591332541404866
175
+ required_rubygems_version: !ruby/object:Gem::Requirement
176
+ none: false
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ segments:
182
+ - 0
183
+ hash: 3464591332541404866
184
+ requirements:
185
+ - taglib (libtag1-dev in Debian/Ubuntu, taglib-devel in Fedora/RHEL)
186
+ rubyforge_project:
187
+ rubygems_version: 1.8.10
188
+ signing_key:
189
+ specification_version: 3
190
+ summary: Ruby interface for the taglib C++ library
191
+ test_files: []