id3 0.5.0 → 1.0.0.pre4

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.
metadata CHANGED
@@ -1,76 +1,105 @@
1
- --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
1
+ --- !ruby/object:Gem::Specification
4
2
  name: id3
5
- version: !ruby/object:Gem::Version
6
- version: 0.5.0
7
- date: 2008-08-24 00:00:00 -07:00
8
- summary: A native ID3 tag library for Ruby, which does not depend on architecture-dependent C-libraries. It supports reading and writing ID3-tag versions 1.0, 1.1, and 2.2.x, 2,3.x, 2,4.x\n http://www.unixgods.org/~tilo/Ruby/ID3
9
- require_paths:
10
- - lib
11
- email: tools@unixgods.org
12
- homepage: http://www.unixgods.org/~tilo/Ruby/ID3
13
- rubyforge_project:
14
- description: ID3 is a native ruby library for reading and writing ID3 tag versions 1.0, 1.1, and 2.2.x, 2,3.x, 2,4.x
15
- autorequire: id3
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: false
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.pre4
5
+ prerelease: 6
25
6
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
- authors:
7
+ authors:
30
8
  - Tilo Sloboda
31
- files:
32
- - docs/index.html
33
- - docs/Class_Tag2.html
9
+ autorequire: id3
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-07-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: active_support
16
+ requirement: &7397560 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *7397560
25
+ description: ID3 is a native ruby library for reading and writing ID3 tag versions
26
+ 1.0, 1.1, and 2.2.x, 2,3.x, 2,4.x
27
+ email: tilo.sloboda@gmail.com
28
+ executables: []
29
+ extensions: []
30
+ extra_rdoc_files: []
31
+ files:
34
32
  - docs/ID3_comparison.html
35
- - docs/Class_Tag1.html
36
- - docs/ID3v2_frames_comparison.txt
33
+ - docs/hexdump.rb
34
+ - docs/Class_Frame.html
37
35
  - docs/ID3v2_frames_overview.txt
38
- - docs/Module_ID3.html
36
+ - docs/Class_AudioFile.html
37
+ - docs/ID3v2_frames_comparison.html
38
+ - docs/index.html
39
39
  - docs/ID3_comparison2.html
40
+ - docs/Class_Tag2.html
41
+ - docs/Module_ID3.html
40
42
  - docs/id3.html
41
- - docs/Class_Frame.html
42
- - docs/Class_AudioFile.html
43
- - docs/ID3-Standards
44
- - docs/ID3-Standards/id3v2.3.0.html
43
+ - docs/ID3-Standards/id3v2-00.html
44
+ - docs/ID3-Standards/id3v2.4.0-changes.txt
45
45
  - docs/ID3-Standards/id3v2.4.0-frames.html
46
+ - docs/ID3-Standards/id3v2.3.0.html
46
47
  - docs/ID3-Standards/id3v2.4.0-frames.txt
47
- - docs/ID3-Standards/id3v2-00.txt
48
48
  - docs/ID3-Standards/id3v2.4.0-structure.txt
49
+ - docs/ID3-Standards/id3v2.4.0-changes.html
49
50
  - docs/ID3-Standards/id3v2.3.0.txt
50
- - docs/ID3-Standards/id3v2.4.0-changes.txt
51
51
  - docs/ID3-Standards/id3v2.4.0-structure.html
52
- - docs/ID3-Standards/id3v2.4.0-changes.html
53
- - docs/ID3-Standards/id3v2-00.html
54
- - docs/ID3v2_frames_comparison.html
55
- - lib/hexdump.rb
52
+ - docs/ID3-Standards/id3v2-00.txt
53
+ - docs/Class_Tag1.html
56
54
  - lib/id3.rb
57
- - lib/invert_hash.rb
55
+ - lib/id3/module_methods.rb
56
+ - lib/id3/id3.rb
57
+ - lib/id3/constants.rb
58
+ - lib/id3/tag2.rb
59
+ - lib/id3/frame.rb
60
+ - lib/id3/generic_tag.rb
61
+ - lib/id3/audiofile.rb
62
+ - lib/id3/io_extensions.rb
63
+ - lib/id3/tag1.rb
64
+ - lib/id3/frame_array.rb
65
+ - lib/id3/string_extensions.rb
66
+ - lib/helpers/hexdump.rb
67
+ - lib/helpers/ruby_1.8_1.9_compatibility.rb
68
+ - lib/helpers/invert_hash.rb
69
+ - lib/helpers/recursive_helper.rb
70
+ - lib/helpers/hash_extensions.rb
71
+ - lib/helpers/restricted_ordered_hash.rb
58
72
  - LICENSE.html
59
73
  - index.html
60
- - README
74
+ - README.md
61
75
  - CHANGES
62
- test_files: []
63
-
64
- rdoc_options:
76
+ homepage: http://www.unixgods.org/~tilo/Ruby/ID3
77
+ licenses: []
78
+ post_install_message:
79
+ rdoc_options:
65
80
  - --title
66
- - Builder -- Easy XML Building
67
- extra_rdoc_files: []
68
-
69
- executables: []
70
-
71
- extensions: []
72
-
81
+ - Native ID3 Ruby Library - uniform acecss to ID3v1 and ID3v2 tags
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ! '>'
94
+ - !ruby/object:Gem::Version
95
+ version: 1.3.1
73
96
  requirements: []
74
-
75
- dependencies: []
76
-
97
+ rubyforge_project:
98
+ - none
99
+ rubygems_version: 1.8.15
100
+ signing_key:
101
+ specification_version: 3
102
+ summary: A native ID3 tag library for Ruby, which does not depend on architecture-dependent
103
+ C-libraries. It supports reading and writing ID3-tag versions 1.0, 1.1, and 2.2.x,
104
+ 2,3.x, 2,4.x\n http://www.unixgods.org/~tilo/Ruby/ID3
105
+ test_files: []
data/README DELETED
@@ -1,18 +0,0 @@
1
-
2
- This is a BETA-RELEASE of a native Ruby ID3-library.
3
-
4
- Author: Tilo Sloboda <tools-NOSPAM@unixgods.org>
5
-
6
- Home Page: http://www.unixgods.org/~tilo/Ruby/ID3
7
-
8
- License: http://www.unixgods.org/~tilo/artistic-license.html
9
-
10
-
11
- NOTE:
12
-
13
- This is a beta release.. so, if you think there are some problems,
14
- errors, inconsistencies, or there is something missing, please contact
15
- the author - THANK YOU! :-)
16
-
17
-
18
-
@@ -1,197 +0,0 @@
1
-
2
- ===========================
3
- Comparison of ID3v2 Frames:
4
- ===========================
5
-
6
- This document contains a side-by-side comparison over the frames used
7
- in the 3 different versions of the informal ID3v2 standard:
8
- v2.2.0, v2.3.0 and v2.4.0
9
-
10
- This document is a compilation of information which is available in the
11
- documents listed below. The original documents Copyright notices apply.
12
-
13
- ID3 v1.0 : http://www.id3.org/id3v1.html
14
- ID3 v1.1 : http://www.egr.uri.edu/~kovacsp/mp3/ID3-Tag.html
15
-
16
-
17
- ID3v2 2.0: http://www.id3.org/id3v2-00.txt
18
- ID3v2 3.0: http://www.id3.org/id3v2.3.0.txt
19
- ID3v2 4.0: http://www.id3.org/id3v2.4.0-changes.txt
20
- http://www.id3.org/id3v2.4.0-structure.txt
21
- http://www.id3.org/id3v2.4.0-frames.txt
22
-
23
- Please refer to the original documents listed above, for any information
24
- regarding the ID3v2 standards.
25
-
26
-
27
- Author: Tilo Sloboda, Thu, 17 Oct 2002 00:26:54 -0700
28
-
29
-
30
- References:
31
- id3lib-3.8.0 id3lib-3.8.0/include/id3/globals.h
32
-
33
- NOTE: the symbolic names used in the leftmost column are derived
34
- from the names used in id3lib-3.8.0
35
- The symbolic name CRYPTEDMETA is not part of id3lib-3.8.0
36
-
37
- Legend:
38
-
39
- -- : depreciated frame
40
-
41
- -> : replaced by (all frames listed before this one are replaced)
42
-
43
-
44
-
45
- ================================================================================
46
- ID3v2 version
47
- symbolic names 2.0 3.0 4.0 comments
48
- ================================================================================
49
-
50
- CONTENTGROUP TT1 TIT1 TIT1 content group description
51
- TITLE TT2 TIT2 TIT2 title/songname/content description
52
- SUBTITLE TT3 TIT3 TIT3 subtitle/description refinement
53
-
54
- LEADARTIST TP1 TPE1 TPE1 lead performer(s)/soloist(s)
55
- BAND TP2 TPE2 TPE2 band/orchestra/accompaniment
56
- CONDUCTOR TP3 TPE3 TPE3 conductor/performer refinement
57
- MIXARTIST TP4 TPE4 TPE4 interpreted, remixed, modified by
58
-
59
- COMPOSER TCM TCOM TCOM composer
60
- LYRICIST TXT` TEXT TEXT lyricist/text writer
61
-
62
- LANGUAGE TLA TLAN TLAN language(s)
63
- CONTENTTYPE TCO TCON TCON content type
64
-
65
- ALBUM TAL TALB TALB album/movie/show title
66
-
67
- TRACKNUM TRK TRCK TRCK track number/position in set
68
- PARTINSET TPA TPOS TPOS part of set
69
-
70
- ISRC TRC TSRC TSRC international standard recording code
71
-
72
- --------------------------------------------------------------------------------
73
- DATE TDA TDAT date
74
- YEAR TYE TYER year
75
- TIME TIM TIME time
76
- RECORDINGDATES TRD TRDA recording dates
77
- RECORDINGTIME -> TDRC recording time
78
- --------------------------------------------------------------------------------
79
- ORIGYEAR TOR TORY original release year
80
- ORIGRELEASETIME -> TDOR original release time
81
- --------------------------------------------------------------------------------
82
-
83
- BPM TBP TBPM TBPM beats per minute
84
-
85
- MEDIATYPE TMT TMED TMED media type
86
- FILETYPE TFT TFLT TFLT file type
87
- COPYRIGHT TCR TCOP TCOP copyright message
88
-
89
- PUBLISHER TPB TPUB TPUB pblisher
90
- ENCODEDBY TEN TENC TENC encoded by
91
- ENCODERSETTINGS TSS TSSE TSSE software/hardware + settings for encoding
92
-
93
- SONGLEN TLE TLEN TLEN length (ms)
94
- --------------------------------------------------------------------------------
95
- SIZE TSI TSIZ -- size (bytes)
96
- --------------------------------------------------------------------------------
97
-
98
- PLAYLISTDELAY TDY TDLY TDLY playlist delay
99
- INITIALKEY TKE TKEY TKEY initial key
100
-
101
- ORIGALBUM TOT TOAL TOAL original album/movie/show title
102
- ORIGFILENAME TOF TOFN TOFN original filename
103
- ORIGARTIST TOA TOPE TOPE original artist(s)/performer(s)
104
- ORIGLYRICIST TOL TOLY TOLY original lyricist(s)/text writer(s)
105
-
106
- FILEOWNER TOWN TOWN file owner/licensee
107
- NETRADIOSTATION TRSN TRSN internet radio station name
108
- NETRADIOOWNER TRSO TRSO internet radio station owner
109
-
110
- SETSUBTITLE TSST set subtitle
111
- MOOD TMOO mood
112
- PRODUCEDNOTICE TPRO produced notice
113
- ENCODINGTIME TDEN encoding time
114
- RELEASETIME TDRL release time
115
- TAGGINGTIME TDTG tagging time
116
-
117
- ALBUMSORTORDER TSOA album sort order
118
- PERFORMERSORTORDER TSOP performer sort order
119
- TITLESORTORDER TSOT title sort order
120
-
121
- USERTEXT TXX TXXX TXXX user defined text information frame
122
-
123
-
124
- WWWAUDIOFILE WAF WOAF WOAF official audio file webpage
125
- WWWARTIST WAR WOAR WOAR official artist/performer webpage
126
- WWWAUDIOSOURCE WAS WOAS WOAS official audion source webpage
127
- WWWCOMMERCIALINFO WCM WCOM WCOM commercial information
128
- WWWCOPYRIGHT WCP WCOP WCOP copyright/legal information
129
- WWWPUBLISHER WPB WPUB WPUB publishers official webpage
130
-
131
- WWWRADIOPAGE WORS WORS official internet radio station homepage
132
- WWWPAYMENT WPAY WPAY payment
133
-
134
- WWWUSER WXX WXXX WXXX user defined URL link frame
135
-
136
- --------------------------------------------------------------------------------
137
- INVOLVEDPEOPLE IPL IPLS involved people list
138
- MUSICIANCREDITLIST -> TMCL musician credits list
139
- INVOLVEDPEOPLE2 -> TIPL involved people list
140
- --------------------------------------------------------------------------------
141
-
142
- UNSYNCEDLYRICS ULT USLT USLT unsynchronised lyrics/text transcription
143
- COMMENT COM COMM COMM comments
144
-
145
- TERMSOFUSE USER USER terms of use
146
-
147
-
148
- ================================================================================
149
- ID3v2 version
150
- symbolic names 2.0 3.0 4.0 comments
151
- ================================================================================
152
-
153
- CDID MCI MCDI MCDI music CD identifier
154
- EVENTTIMING ETC ETCO ETCO event timing codes
155
- MPEGLOOKUP MLL MLLT MLLT MPEG location lookup table
156
-
157
- SYNCEDTEMPO STC SYTC SYTC synchronised tempo codes
158
- SYNCEDLYRICS SLT SYLT SYLT synchronised lyrics/text
159
-
160
- --------------------------------------------------------------------------------
161
- VOLUMEADJ RVA RVAD relative volume adjustment
162
- VOLUMEADJ2 -> RVA2 relative volume adjustment (2)
163
- --------------------------------------------------------------------------------
164
- EQUALIZATION EQU EQUA equalization
165
- EQUALIZATION2 -> EQU2 equalization (2)
166
- --------------------------------------------------------------------------------
167
-
168
- REVERB REV RVRB RVRB reverb
169
- PICTURE PIC APIC APIC attached picture
170
- GENERALOBJECT GEO GEOB GEOB general encapsulated object
171
-
172
- PLAYCOUNTER CNT PCNT PCNT play counter
173
- POPULARIMETER POP POPM POPM popularimeter
174
-
175
- BUFFERSIZE BUF RBUF RBUF recommended buffer size
176
-
177
- CRYPTEDMETA CRM encrypted meta frame
178
- AUDIOCRYPTO CRA AENC AENC audio encryption
179
-
180
- LINKEDINFO LNK LINK LINK linked information
181
-
182
- POSITIONSYNC POSS POSS position synchronisation frame
183
-
184
- COMMERCIAL COMR COMR commercial frame
185
- CRYPTOREG ENCR ENCR encryption method registration
186
- GROUPINGREG GRID GRID group indentification registration
187
- PRIVATE PRIV PRIV private frame
188
-
189
- OWNERSHIP OWNE ownership frame
190
- SIGNATURE SIGN signature frame
191
- SEEKFRAME SEEK seek frame
192
- AUDIOSEEKPOINT ASPI audio seek point index
193
-
194
- ================================================================================
195
- ID3v2 version
196
- symbolic names 2.0 3.0 4.0 comments
197
- ================================================================================
@@ -1,105 +0,0 @@
1
- # ==============================================================================
2
- # EXTENDING CLASS HASH
3
- # ==============================================================================
4
- #
5
- # (C) Copyright 2004 by Tilo Sloboda <tools@unixgods.org>
6
- #
7
- # updated: Time-stamp: <Sat 18-Dec-2004 12:44:13 Tilo Sloboda>
8
- #
9
- # License:
10
- # Freely available under the terms of the OpenSource "Artistic License"
11
- # in combination with the Addendum A (below)
12
- #
13
- # In case you did not get a copy of the license along with the software,
14
- # it is also available at: http://www.unixgods.org/~tilo/artistic-license.html
15
- #
16
- # Addendum A:
17
- # THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU!
18
- # SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
19
- # REPAIR OR CORRECTION.
20
- #
21
- # IN NO EVENT WILL THE COPYRIGHT HOLDERS BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
22
- # SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY
23
- # TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
24
- # INACCURATE OR USELESS OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
25
- # TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF THE COPYRIGHT HOLDERS OR OTHER PARTY HAS BEEN
26
- # ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
27
-
28
- # ==============================================================================
29
- #
30
- # Homepage: http://www.unixgods.org/~tilo/Ruby/invert_hash.html
31
- #
32
- #
33
- # Ruby's Hash.invert method leaves a lot to wish for.. it can't handle the
34
- # common case that two or more hash entries point to the same value..
35
- #
36
- # e.g.:
37
- # h = {"ooh gott"=>3, "bla"=>3, "aua"=>3, "kotz"=>2, "blubb"=>9, "seier"=>3, "schigga"=>9}
38
- # h.invert
39
- # => {2=>"kotz", 3=>"seier", 9=>"schigga"}
40
- #
41
- # the above result IS SIMPLY WRONG!
42
- #
43
- # h.invert.invert
44
- # => {"kotz"=>2, "seier"=>3, "schigga"=>9}
45
- #
46
- # h.invert.invert == h
47
- # => false
48
- #
49
- # Let's conclude that Ruby's built-in Hash.invert method is REALLY BROKEN!
50
- #
51
- #
52
- # OK, let's try this new inverse method:
53
- #
54
- # require 'invert_hash'
55
- #
56
- # h.inverse
57
- # => {2=>"kotz", 3=>["seier", "aua", "bla", "ooh gott"], 9=>["schigga", "blubb"]}
58
- #
59
- # h.inverse.inverse
60
- # => {"ooh gott"=>3, "bla"=>3, "aua"=>3, "kotz"=>2, "blubb"=>9, "seier"=>3, "schigga"=>9}
61
- #
62
- # h.inverse.inverse == h
63
- # => true
64
- #
65
- # Looks much better, doesn't it?
66
-
67
-
68
-
69
- class Hash
70
-
71
- def inverse
72
- i = Hash.new
73
- self.each_pair{ |k,v|
74
- if (v.class == Array)
75
- v.each{ |x|
76
- if i.has_key?(x)
77
- i[x] = [k,i[x]].flatten
78
- else
79
- i[x] = k
80
- end
81
- }
82
- else
83
- if i.has_key?(v)
84
- i[v] = [k,i[v]].flatten
85
- else
86
- i[v] = k
87
- end
88
- end
89
- }
90
- return i
91
- end
92
-
93
- end
94
-
95
- __END__
96
-
97
- # if you want to permanently overload Ruby's original invert method, you may want to do this:
98
-
99
- class Hash
100
- alias old_invert invert
101
-
102
- def invert
103
- self.inverse
104
- end
105
- end