taglib-ruby 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +15 -0
- data/Rakefile +8 -2
- data/ext/extconf_common.rb +8 -1
- data/lib/taglib/version.rb +1 -1
- data/taglib-ruby.gemspec +90 -0
- metadata +13 -44
data/README.md
CHANGED
@@ -14,6 +14,21 @@ to do (contributors very welcome):
|
|
14
14
|
* Pre-compiled Gem for Windows
|
15
15
|
* More coverage of the library besides ID3v2
|
16
16
|
|
17
|
+
Installation
|
18
|
+
------------
|
19
|
+
|
20
|
+
Before you install the gem, make sure to have [taglib][taglib] installed
|
21
|
+
with header files (and a C++ compiler of course):
|
22
|
+
|
23
|
+
* Debian/Ubuntu: `sudo apt-get install libtag1-dev`
|
24
|
+
* Fedora/RHEL: `sudo yum install taglib-devel`
|
25
|
+
* Brew: `brew install taglib`
|
26
|
+
* MacPorts: `sudo port install taglib`
|
27
|
+
|
28
|
+
Then do:
|
29
|
+
|
30
|
+
gem install taglib-ruby
|
31
|
+
|
17
32
|
Usage
|
18
33
|
-----
|
19
34
|
|
data/Rakefile
CHANGED
@@ -16,8 +16,14 @@ require './lib/taglib/version.rb'
|
|
16
16
|
Jeweler::Tasks.new do |gem|
|
17
17
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
18
18
|
gem.name = "taglib-ruby"
|
19
|
-
gem.summary = %Q{Ruby interface for the
|
20
|
-
gem.description =
|
19
|
+
gem.summary = %Q{Ruby interface for the taglib C++ library}
|
20
|
+
gem.description = <<-DESC
|
21
|
+
Ruby interface for the taglib C++ library.
|
22
|
+
|
23
|
+
In contrast to other libraries, this one wraps the C++ API using SWIG,
|
24
|
+
not only the minimal C API. This means that all tags can be accessed.
|
25
|
+
DESC
|
26
|
+
gem.requirements = 'taglib (libtag1-dev in Debian/Ubuntu, taglib-devel in Fedora/RHEL)'
|
21
27
|
gem.version = TagLib::Version::STRING
|
22
28
|
gem.license = "MIT"
|
23
29
|
gem.email = "robin@nibor.org"
|
data/ext/extconf_common.rb
CHANGED
@@ -12,7 +12,14 @@ if not have_library('stdc++')
|
|
12
12
|
end
|
13
13
|
|
14
14
|
if not have_library('tag')
|
15
|
-
error
|
15
|
+
error <<-DESC
|
16
|
+
You must have taglib installed in order to use taglib-ruby.
|
17
|
+
|
18
|
+
Debian/Ubuntu: sudo apt-get install libtag1-dev
|
19
|
+
Fedora/RHEL: sudo yum install taglib-devel
|
20
|
+
Brew: brew install taglib
|
21
|
+
MacPorts: sudo port install taglib
|
22
|
+
DESC
|
16
23
|
end
|
17
24
|
|
18
25
|
$CFLAGS << " -DSWIG_TYPE_TABLE=taglib"
|
data/lib/taglib/version.rb
CHANGED
data/taglib-ruby.gemspec
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "taglib-ruby"
|
8
|
+
s.version = "0.1.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Robin Stocker"]
|
12
|
+
s.date = "2011-09-17"
|
13
|
+
s.description = "Ruby interface for the taglib C++ library.\n\nIn contrast to other libraries, this one wraps the C++ API using SWIG,\nnot only the minimal C API. This means that all tags can be accessed.\n"
|
14
|
+
s.email = "robin@nibor.org"
|
15
|
+
s.extensions = ["ext/taglib_base/extconf.rb", "ext/taglib_mpeg/extconf.rb", "ext/taglib_id3v2/extconf.rb"]
|
16
|
+
s.extra_rdoc_files = [
|
17
|
+
"LICENSE.txt",
|
18
|
+
"README.md"
|
19
|
+
]
|
20
|
+
s.files = [
|
21
|
+
"Gemfile",
|
22
|
+
"Gemfile.lock",
|
23
|
+
"LICENSE.txt",
|
24
|
+
"README.md",
|
25
|
+
"Rakefile",
|
26
|
+
"ext/Rakefile",
|
27
|
+
"ext/extconf_common.rb",
|
28
|
+
"ext/taglib_base/extconf.rb",
|
29
|
+
"ext/taglib_base/includes.i",
|
30
|
+
"ext/taglib_base/taglib_base.i",
|
31
|
+
"ext/taglib_base/taglib_base_wrap.cxx",
|
32
|
+
"ext/taglib_id3v2/extconf.rb",
|
33
|
+
"ext/taglib_id3v2/taglib_id3v2.i",
|
34
|
+
"ext/taglib_id3v2/taglib_id3v2_wrap.cxx",
|
35
|
+
"ext/taglib_mpeg/extconf.rb",
|
36
|
+
"ext/taglib_mpeg/taglib_mpeg.i",
|
37
|
+
"ext/taglib_mpeg/taglib_mpeg_wrap.cxx",
|
38
|
+
"ext/valgrind-suppressions.txt",
|
39
|
+
"lib/taglib.rb",
|
40
|
+
"lib/taglib/base.rb",
|
41
|
+
"lib/taglib/id3v2.rb",
|
42
|
+
"lib/taglib/mpeg.rb",
|
43
|
+
"lib/taglib/version.rb",
|
44
|
+
"taglib-ruby.gemspec",
|
45
|
+
"test/data/globe_east_540.jpg",
|
46
|
+
"test/data/sample.mp3",
|
47
|
+
"test/data/unicode.mp3",
|
48
|
+
"test/helper.rb",
|
49
|
+
"test/test_id3v2_frames.rb",
|
50
|
+
"test/test_id3v2_memory.rb",
|
51
|
+
"test/test_id3v2_tag.rb",
|
52
|
+
"test/test_id3v2_unicode.rb",
|
53
|
+
"test/test_id3v2_write.rb",
|
54
|
+
"test/test_tag.rb"
|
55
|
+
]
|
56
|
+
s.homepage = "http://github.com/robinst/taglib-ruby"
|
57
|
+
s.licenses = ["MIT"]
|
58
|
+
s.require_paths = ["lib"]
|
59
|
+
s.requirements = ["taglib (libtag1-dev in Debian/Ubuntu, taglib-devel in Fedora/RHEL)"]
|
60
|
+
s.rubygems_version = "1.8.10"
|
61
|
+
s.summary = "Ruby interface for the taglib C++ library"
|
62
|
+
|
63
|
+
if s.respond_to? :specification_version then
|
64
|
+
s.specification_version = 3
|
65
|
+
|
66
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
67
|
+
s.add_development_dependency(%q<rake-compiler>, ["~> 0.7"])
|
68
|
+
s.add_development_dependency(%q<shoulda>, ["~> 2.11"])
|
69
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
70
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
71
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
72
|
+
s.add_development_dependency(%q<rdoc>, ["~> 3.9"])
|
73
|
+
else
|
74
|
+
s.add_dependency(%q<rake-compiler>, ["~> 0.7"])
|
75
|
+
s.add_dependency(%q<shoulda>, ["~> 2.11"])
|
76
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
77
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
78
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
79
|
+
s.add_dependency(%q<rdoc>, ["~> 3.9"])
|
80
|
+
end
|
81
|
+
else
|
82
|
+
s.add_dependency(%q<rake-compiler>, ["~> 0.7"])
|
83
|
+
s.add_dependency(%q<shoulda>, ["~> 2.11"])
|
84
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
85
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
86
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
87
|
+
s.add_dependency(%q<rdoc>, ["~> 3.9"])
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taglib-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Robin Stocker
|
@@ -108,44 +108,12 @@ dependencies:
|
|
108
108
|
name: rdoc
|
109
109
|
prerelease: false
|
110
110
|
type: :development
|
111
|
-
description:
|
112
|
-
|
113
|
-
|
114
|
-
In contrast to other libraries, this one wraps the
|
115
|
-
|
116
|
-
|
117
|
-
taglib-ruby is work in progress, here are some of the things still left\n\
|
118
|
-
to do (contributors very welcome):\n\n\
|
119
|
-
* Wrap TagLib::MPEG::Properties\n\
|
120
|
-
* Pre-compiled Gem for Windows\n\
|
121
|
-
* More coverage of the library besides ID3v2\n\n\
|
122
|
-
Usage\n\
|
123
|
-
-----\n\n\
|
124
|
-
Here's an example for reading an ID3v2 tag:\n\n require 'taglib'\n\n # Load an ID3v2 tag from a file\n file = TagLib::MPEG::File.new(\"wake_up.mp3\")\n tag = file.id3v2_tag\n\n # Read basic attributes\n tag.title #=> \"Wake Up\"\n tag.artist #=> \"Arcade Fire\"\n tag.track #=> 7\n\n # Access all frames\n tag.frame_list.size #=> 13\n\n # Track frame\n track = tag.frame_list('TRCK').first\n track.to_s #=> \"7/10\"\n\n # Attached picture frame\n cover = tag.frame_list('APIC').first\n cover.mime_type #=> \"image/jpeg\"\n cover.picture #=> \"\\xFF\\xD8\\xFF\\xE0\\x00\\x10JFIF...\"\n\n\
|
125
|
-
And here's an example for writing one:\n\n file = TagLib::MPEG::File.new(\"joga.mp3\")\n tag = file.id3v2_tag\n\n # Write basic attributes\n tag.artist = \"Bj\xC3\xB6rk\"\n tag.title = \"J\xC3\xB3ga\"\n\n # Add attached picture frame\n apic = TagLib::ID3v2::AttachedPictureFrame.new\n apic.mime_type = \"image/jpeg\"\n apic.description = \"Cover\"\n apic.type = TagLib::ID3v2::AttachedPictureFrame::FrontCover\n apic.picture = File.open(\"cover.jpg\", 'rb'){ |f| f.read }\n\n tag.add_frame(apic)\n\n file.save\n\n\
|
126
|
-
### Encoding\n\n\
|
127
|
-
By default, taglib stores text frames as ISO-8859-1 (Latin-1), if the\n\
|
128
|
-
text contains only characters that are available in that encoding. If\n\
|
129
|
-
not (e.g. with Cyrillic, Chinese, Japanese), it prints a warning and\n\
|
130
|
-
stores the text as UTF-8.\n\n\
|
131
|
-
When you already know that you want to store the text as UTF-8, you can\n\
|
132
|
-
change the default text encoding:\n\n frame_factory = TagLib::ID3v2::FrameFactory.instance\n frame_factory.default_text_encoding = TagLib::String::UTF8\n\n\
|
133
|
-
Another option is using the advanced API:\n\n title = tag.frame_list('TIT2').first\n title.text = \"J\xC3\xB3ga\"\n title.text_encoding = TagLib::String::UTF8\n\n\
|
134
|
-
Contributing\n\
|
135
|
-
------------\n\n\
|
136
|
-
* Check out the latest master to make sure the feature hasn't been\n implemented or the bug hasn't been fixed yet\n\
|
137
|
-
* Check out the issue tracker to make sure someone already hasn't\n requested it and/or contributed it\n\
|
138
|
-
* Fork the project\n\
|
139
|
-
* Start a feature/bugfix branch\n\
|
140
|
-
* Commit and push until you are happy with your contribution\n\
|
141
|
-
* Make sure to add tests for it. This is important so I don't break it\n in a future version unintentionally.\n\
|
142
|
-
* Please try not to mess with the Rakefile, version, or history. If you\n want to have your own version, or is otherwise necessary, that is\n fine, but please isolate to its own commit so I can cherry-pick around\n it.\n\n\
|
143
|
-
License\n\
|
144
|
-
-------\n\n\
|
145
|
-
taglib-ruby is distributed under the MIT License,\n\
|
146
|
-
see LICENSE.txt for details.\n\n\
|
147
|
-
Copyright (c) 2010, 2011 Robin Stocker.\n\n\
|
148
|
-
[taglib]: http://developer.kde.org/~wheeler/taglib.html\n"
|
111
|
+
description: |
|
112
|
+
Ruby interface for the taglib C++ library.
|
113
|
+
|
114
|
+
In contrast to other libraries, this one wraps the C++ API using SWIG,
|
115
|
+
not only the minimal C API. This means that all tags can be accessed.
|
116
|
+
|
149
117
|
email: robin@nibor.org
|
150
118
|
executables: []
|
151
119
|
|
@@ -180,6 +148,7 @@ files:
|
|
180
148
|
- lib/taglib/id3v2.rb
|
181
149
|
- lib/taglib/mpeg.rb
|
182
150
|
- lib/taglib/version.rb
|
151
|
+
- taglib-ruby.gemspec
|
183
152
|
- test/data/globe_east_540.jpg
|
184
153
|
- test/data/sample.mp3
|
185
154
|
- test/data/unicode.mp3
|
@@ -216,12 +185,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
185
|
segments:
|
217
186
|
- 0
|
218
187
|
version: "0"
|
219
|
-
requirements:
|
220
|
-
|
188
|
+
requirements:
|
189
|
+
- taglib (libtag1-dev in Debian/Ubuntu, taglib-devel in Fedora/RHEL)
|
221
190
|
rubyforge_project:
|
222
191
|
rubygems_version: 1.8.10
|
223
192
|
signing_key:
|
224
193
|
specification_version: 3
|
225
|
-
summary: Ruby interface for the
|
194
|
+
summary: Ruby interface for the taglib C++ library
|
226
195
|
test_files: []
|
227
196
|
|