id3tag 0.5.2 → 0.5.3
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/VERSION +1 -1
 - data/id3tag.gemspec +4 -3
 - data/lib/id3tag/frames/v2/frame_fabricator.rb +1 -1
 - data/lib/id3tag/tag.rb +39 -14
 - data/spec/lib/id3tag/audio_file_spec.rb +6 -0
 - data/spec/lib/id3tag/frames/v2/frame_fabricator_spec.rb +14 -0
 - data/spec/lib/id3tag/frames/v2/user_text_frame_spec.rb +19 -0
 - data/tags +6 -0
 - metadata +3 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 89941a8621dd5eec4f0ae322c2bf9615496d52ff
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 65994561b1424f4c4101bc65080454566f86ce7f
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 7e7017566d378958d0bd534768854ff477d480f608baa4cb6839b1a1aa3856bd7697dabe016de3d60e084d3162dd3966a4a2228a4c1e16e2654740374462024a
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: f7e6b73b353b26d5fc9d03de31a63683579191823ec7695c66562634d8aacc1d209e74ac128765553461efc791be1cc1339a041399a85cd1d988476829108e6e
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0.5. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.5.3
         
     | 
    
        data/id3tag.gemspec
    CHANGED
    
    | 
         @@ -2,15 +2,15 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            # DO NOT EDIT THIS FILE DIRECTLY
         
     | 
| 
       3 
3 
     | 
    
         
             
            # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
         
     | 
| 
       4 
4 
     | 
    
         
             
            # -*- encoding: utf-8 -*-
         
     | 
| 
       5 
     | 
    
         
            -
            # stub: id3tag 0.5. 
     | 
| 
      
 5 
     | 
    
         
            +
            # stub: id3tag 0.5.3 ruby lib
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       8 
8 
     | 
    
         
             
              s.name = "id3tag"
         
     | 
| 
       9 
     | 
    
         
            -
              s.version = "0.5. 
     | 
| 
      
 9 
     | 
    
         
            +
              s.version = "0.5.3"
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       12 
12 
     | 
    
         
             
              s.authors = ["Krists Ozols"]
         
     | 
| 
       13 
     | 
    
         
            -
              s.date = "2013-11- 
     | 
| 
      
 13 
     | 
    
         
            +
              s.date = "2013-11-13"
         
     | 
| 
       14 
14 
     | 
    
         
             
              s.description = "Native Ruby ID3 tag reader that aims for 100% covarage of ID3v2.x and ID3v1.x standards"
         
     | 
| 
       15 
15 
     | 
    
         
             
              s.email = "krists@iesals.lv"
         
     | 
| 
       16 
16 
     | 
    
         
             
              s.extra_rdoc_files = [
         
     | 
| 
         @@ -85,6 +85,7 @@ Gem::Specification.new do |s| 
     | 
|
| 
       85 
85 
     | 
    
         
             
                "spec/lib/id3tag/frames/v2/genre_frame_spec.rb",
         
     | 
| 
       86 
86 
     | 
    
         
             
                "spec/lib/id3tag/frames/v2/text_frame_spec.rb",
         
     | 
| 
       87 
87 
     | 
    
         
             
                "spec/lib/id3tag/frames/v2/unique_file_id_frame_spec.rb",
         
     | 
| 
      
 88 
     | 
    
         
            +
                "spec/lib/id3tag/frames/v2/user_text_frame_spec.rb",
         
     | 
| 
       88 
89 
     | 
    
         
             
                "spec/lib/id3tag/id3_v1_frame_parser_spec.rb",
         
     | 
| 
       89 
90 
     | 
    
         
             
                "spec/lib/id3tag/id3_v2_frame_parser_spec.rb",
         
     | 
| 
       90 
91 
     | 
    
         
             
                "spec/lib/id3tag/id3_v2_tag_header_spec.rb",
         
     | 
    
        data/lib/id3tag/tag.rb
    CHANGED
    
    | 
         @@ -16,19 +16,26 @@ module ID3Tag 
     | 
|
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
                [:artist, :title, :album, :year, :track_nr, :genre].each do |name|
         
     | 
| 
       18 
18 
     | 
    
         
             
                  define_method(name) do
         
     | 
| 
       19 
     | 
    
         
            -
                     
     | 
| 
       20 
     | 
    
         
            -
                    frame && frame.content
         
     | 
| 
      
 19 
     | 
    
         
            +
                    content_of_first_frame(name)
         
     | 
| 
       21 
20 
     | 
    
         
             
                  end
         
     | 
| 
       22 
21 
     | 
    
         
             
                end
         
     | 
| 
       23 
22 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
                 
     | 
| 
      
 23 
     | 
    
         
            +
                def content_of_first_frame(name)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  frame = first_frame_by_id(*possible_frame_ids_by_name(name))
         
     | 
| 
      
 25 
     | 
    
         
            +
                  frame && frame.content
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
       25 
28 
     | 
    
         
             
                [:comments, :unsychronized_transcription].each do |name|
         
     | 
| 
       26 
29 
     | 
    
         
             
                  define_method(name) do |lang = :eng|
         
     | 
| 
       27 
     | 
    
         
            -
                     
     | 
| 
       28 
     | 
    
         
            -
                    frame && frame.content
         
     | 
| 
      
 30 
     | 
    
         
            +
                    content_of_first_frame_with_language(name, lang)
         
     | 
| 
       29 
31 
     | 
    
         
             
                  end
         
     | 
| 
       30 
32 
     | 
    
         
             
                end
         
     | 
| 
       31 
33 
     | 
    
         | 
| 
      
 34 
     | 
    
         
            +
                def content_of_first_frame_with_language(name, lang)
         
     | 
| 
      
 35 
     | 
    
         
            +
                  frame = all_frames_by_id(*possible_frame_ids_by_name(name)).find { |x| x.language == lang.to_s }
         
     | 
| 
      
 36 
     | 
    
         
            +
                  frame && frame.content
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
       32 
39 
     | 
    
         
             
                def first_frame_by_id(*ids)
         
     | 
| 
       33 
40 
     | 
    
         
             
                  first_existing_id = ids.find { |id| frame_ids.include?(id) }
         
     | 
| 
       34 
41 
     | 
    
         
             
                  first_existing_id && get_frame(first_existing_id)
         
     | 
| 
         @@ -62,7 +69,7 @@ module ID3Tag 
     | 
|
| 
       62 
69 
     | 
    
         
             
                end
         
     | 
| 
       63 
70 
     | 
    
         | 
| 
       64 
71 
     | 
    
         
             
                def v2_frames
         
     | 
| 
       65 
     | 
    
         
            -
                  if  
     | 
| 
      
 72 
     | 
    
         
            +
                  if should_and_could_read_v2_frames?
         
     | 
| 
       66 
73 
     | 
    
         
             
                    ID3V2FrameParser.new(audio_file.v2_tag_body, audio_file.v2_tag_major_version_number).frames
         
     | 
| 
       67 
74 
     | 
    
         
             
                  else
         
     | 
| 
       68 
75 
     | 
    
         
             
                    []
         
     | 
| 
         @@ -70,7 +77,7 @@ module ID3Tag 
     | 
|
| 
       70 
77 
     | 
    
         
             
                end
         
     | 
| 
       71 
78 
     | 
    
         | 
| 
       72 
79 
     | 
    
         
             
                def v1_frames
         
     | 
| 
       73 
     | 
    
         
            -
                  if  
     | 
| 
      
 80 
     | 
    
         
            +
                  if should_and_could_read_v1_frames?
         
     | 
| 
       74 
81 
     | 
    
         
             
                    ID3V1FrameParser.new(audio_file.v1_tag_body).frames
         
     | 
| 
       75 
82 
     | 
    
         
             
                  else
         
     | 
| 
       76 
83 
     | 
    
         
             
                    []
         
     | 
| 
         @@ -81,17 +88,35 @@ module ID3Tag 
     | 
|
| 
       81 
88 
     | 
    
         
             
                  @audio_file ||= AudioFile.new(@source)
         
     | 
| 
       82 
89 
     | 
    
         
             
                end
         
     | 
| 
       83 
90 
     | 
    
         | 
| 
      
 91 
     | 
    
         
            +
                private
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
       84 
93 
     | 
    
         
             
                def possible_frame_ids_by_name(name)
         
     | 
| 
       85 
94 
     | 
    
         
             
                  ids = []
         
     | 
| 
       86 
     | 
    
         
            -
                   
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
      
 95 
     | 
    
         
            +
                  id = possible_v1_frame_id_by_name(name)
         
     | 
| 
      
 96 
     | 
    
         
            +
                  ids << id if id
         
     | 
| 
      
 97 
     | 
    
         
            +
                  id = possible_v2_frame_id_by_name(name)
         
     | 
| 
      
 98 
     | 
    
         
            +
                  ids << id if id
         
     | 
| 
      
 99 
     | 
    
         
            +
                  ids
         
     | 
| 
      
 100 
     | 
    
         
            +
                end
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
                def possible_v2_frame_id_by_name(name)
         
     | 
| 
      
 103 
     | 
    
         
            +
                  if should_and_could_read_v2_frames?
         
     | 
| 
      
 104 
     | 
    
         
            +
                    FrameIdAdvisor.new(2, audio_file.v2_tag_major_version_number).advise(name)
         
     | 
| 
       89 
105 
     | 
    
         
             
                  end
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
      
 106 
     | 
    
         
            +
                end
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
                def possible_v1_frame_id_by_name(name)
         
     | 
| 
      
 109 
     | 
    
         
            +
                  if should_and_could_read_v1_frames?
         
     | 
| 
      
 110 
     | 
    
         
            +
                    FrameIdAdvisor.new(1, FrameIdAdvisor::ANY_MAJOR_VERSION).advise(name)
         
     | 
| 
       93 
111 
     | 
    
         
             
                  end
         
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
      
 112 
     | 
    
         
            +
                end
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
                def should_and_could_read_v1_frames?
         
     | 
| 
      
 115 
     | 
    
         
            +
                  scope.include?(:v1) && audio_file.v1_tag_present?
         
     | 
| 
      
 116 
     | 
    
         
            +
                end
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
                def should_and_could_read_v2_frames?
         
     | 
| 
      
 119 
     | 
    
         
            +
                  scope.include?(:v2) && audio_file.v2_tag_present?
         
     | 
| 
       95 
120 
     | 
    
         
             
                end
         
     | 
| 
       96 
121 
     | 
    
         
             
              end
         
     | 
| 
       97 
122 
     | 
    
         
             
            end
         
     | 
| 
         @@ -43,6 +43,12 @@ describe ID3Tag::AudioFile do 
     | 
|
| 
       43 
43 
     | 
    
         
             
                  it "should return frame and padding bytes" do
         
     | 
| 
       44 
44 
     | 
    
         
             
                    subject.v2_tag_body.should == "ABC"
         
     | 
| 
       45 
45 
     | 
    
         
             
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
                  context "when tag verison is v.2.4 and extended header size is calculated differently" do
         
     | 
| 
      
 47 
     | 
    
         
            +
                    subject { described_class.new(StringIO.new("ID3\u0004\u0000\u0040\u0000\u0000\u0000\u0011" + "\u0000\u0000\u0000\u000A" + ("\u0000" * 6) + "ABC")) }
         
     | 
| 
      
 48 
     | 
    
         
            +
                    it "should return frame and padding bytes" do
         
     | 
| 
      
 49 
     | 
    
         
            +
                      subject.v2_tag_body.should == "ABC"
         
     | 
| 
      
 50 
     | 
    
         
            +
                    end
         
     | 
| 
      
 51 
     | 
    
         
            +
                  end
         
     | 
| 
       46 
52 
     | 
    
         
             
                end
         
     | 
| 
       47 
53 
     | 
    
         
             
              end
         
     | 
| 
       48 
54 
     | 
    
         | 
| 
         @@ -30,6 +30,13 @@ describe ID3Tag::Frames::V2::FrameFabricator do 
     | 
|
| 
       30 
30 
     | 
    
         
             
                    subject
         
     | 
| 
       31 
31 
     | 
    
         
             
                  end
         
     | 
| 
       32 
32 
     | 
    
         
             
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
                context "when frame is a user text frame" do
         
     | 
| 
      
 34 
     | 
    
         
            +
                  let(:id) { "TXX" }
         
     | 
| 
      
 35 
     | 
    
         
            +
                  it "fabricates user text frame" do
         
     | 
| 
      
 36 
     | 
    
         
            +
                    ID3Tag::Frames::V2::UserTextFrame.should_receive(:new).with(id, content, flags, major_version_number)
         
     | 
| 
      
 37 
     | 
    
         
            +
                    subject
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
       33 
40 
     | 
    
         
             
                context "when frame is a comment frame COM" do
         
     | 
| 
       34 
41 
     | 
    
         
             
                  let(:id) { "COMM" }
         
     | 
| 
       35 
42 
     | 
    
         
             
                  it "fabricates comment frame" do
         
     | 
| 
         @@ -44,6 +51,13 @@ describe ID3Tag::Frames::V2::FrameFabricator do 
     | 
|
| 
       44 
51 
     | 
    
         
             
                    subject
         
     | 
| 
       45 
52 
     | 
    
         
             
                  end
         
     | 
| 
       46 
53 
     | 
    
         
             
                end
         
     | 
| 
      
 54 
     | 
    
         
            +
                context "when frame is a unique id" do
         
     | 
| 
      
 55 
     | 
    
         
            +
                  let(:id) { "IPLS" }
         
     | 
| 
      
 56 
     | 
    
         
            +
                  it "fabricates involved people list frame" do
         
     | 
| 
      
 57 
     | 
    
         
            +
                    ID3Tag::Frames::V2::InvolvedPeopleListFrame.should_receive(:new).with(id, content, flags, major_version_number)
         
     | 
| 
      
 58 
     | 
    
         
            +
                    subject
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
       47 
61 
     | 
    
         
             
                context "when frame is a unknown" do
         
     | 
| 
       48 
62 
     | 
    
         
             
                  let(:id) { "unknown" }
         
     | 
| 
       49 
63 
     | 
    
         
             
                  it "fabricates basic frame" do
         
     | 
| 
         @@ -0,0 +1,19 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # encoding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            describe ID3Tag::Frames::V2::UserTextFrame do
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:id) { "TXX" }
         
     | 
| 
      
 6 
     | 
    
         
            +
              let(:raw_content) { text.encode(target_encoding).prepend(encoding_byte.force_encoding(target_encoding)) }
         
     | 
| 
      
 7 
     | 
    
         
            +
              let(:flags) { nil }
         
     | 
| 
      
 8 
     | 
    
         
            +
              let(:major_version_number) { 4 }
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              let(:target_encoding) { Encoding::UTF_8 }
         
     | 
| 
      
 11 
     | 
    
         
            +
              let(:encoding_byte) { "\x03" }
         
     | 
| 
      
 12 
     | 
    
         
            +
              let(:text) { "SUPER_FRAME\x00Glāzšķūņrūķīši" }
         
     | 
| 
      
 13 
     | 
    
         
            +
              subject { described_class.new(id, raw_content, flags, major_version_number) }
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              its(:id) { should == :TXX }
         
     | 
| 
      
 16 
     | 
    
         
            +
              its(:content) { should == 'Glāzšķūņrūķīši' }
         
     | 
| 
      
 17 
     | 
    
         
            +
              its(:description) { should == 'SUPER_FRAME' }
         
     | 
| 
      
 18 
     | 
    
         
            +
              its(:inspect) { should eq('<ID3Tag::Frames::V2::UserTextFrame TXX: Glāzšķūņrūķīši>') }
         
     | 
| 
      
 19 
     | 
    
         
            +
            end
         
     | 
    
        data/tags
    CHANGED
    
    | 
         @@ -138,6 +138,8 @@ content	lib/id3tag/frames/v2/genre_frame.rb	/^        def content$/;"	f	class:ID 
     | 
|
| 
       138 
138 
     | 
    
         
             
            content	lib/id3tag/frames/v2/text_frame.rb	/^        def content$/;"	f	class:ID3Tag.Frames.V2.TextFrame
         
     | 
| 
       139 
139 
     | 
    
         
             
            content	lib/id3tag/frames/v2/unique_file_id_frame.rb	/^        def content$/;"	f	class:ID3Tag.Frames.V2.UniqueFileIdFrame
         
     | 
| 
       140 
140 
     | 
    
         
             
            content	lib/id3tag/frames/v2/user_text_frame.rb	/^        def content$/;"	f	class:ID3Tag.Frames.V2.UserTextFrame
         
     | 
| 
      
 141 
     | 
    
         
            +
            content_of_first_frame	lib/id3tag/tag.rb	/^    def content_of_first_frame(name)$/;"	f	class:ID3Tag
         
     | 
| 
      
 142 
     | 
    
         
            +
            content_of_first_frame_with_language	lib/id3tag/tag.rb	/^    def content_of_first_frame_with_language(name, lang)$/;"	f	class:ID3Tag
         
     | 
| 
       141 
143 
     | 
    
         
             
            content_parts	lib/id3tag/frames/v2/user_text_frame.rb	/^        def content_parts$/;"	f	class:ID3Tag.Frames.V2.UserTextFrame
         
     | 
| 
       142 
144 
     | 
    
         
             
            content_split_apart_by_null_byte	lib/id3tag/frames/v2/unique_file_id_frame.rb	/^        def content_split_apart_by_null_byte$/;"	f	class:ID3Tag.Frames.V2.UniqueFileIdFrame
         
     | 
| 
       143 
145 
     | 
    
         
             
            content_without_encoding_byte	lib/id3tag/frames/v2/text_frame.rb	/^        def content_without_encoding_byte$/;"	f	class:ID3Tag.Frames.V2.TextFrame
         
     | 
| 
         @@ -262,6 +264,8 @@ position_and_count_of_encryption_id_bytes	lib/id3tag/frames/v2/frame_flags.rb	/^ 
     | 
|
| 
       262 
264 
     | 
    
         
             
            position_and_count_of_group_id_bytes	lib/id3tag/frames/v2/basic_frame.rb	/^        def position_and_count_of_group_id_bytes$/;"	f	class:ID3Tag.Frames.V2.BasicFrame
         
     | 
| 
       263 
265 
     | 
    
         
             
            position_and_count_of_group_id_bytes	lib/id3tag/frames/v2/frame_flags.rb	/^        def position_and_count_of_group_id_bytes$/;"	f	class:ID3Tag.Frames.V2.FrameFlags
         
     | 
| 
       264 
266 
     | 
    
         
             
            possible_frame_ids_by_name	lib/id3tag/tag.rb	/^    def possible_frame_ids_by_name(name)$/;"	f	class:ID3Tag
         
     | 
| 
      
 267 
     | 
    
         
            +
            possible_v1_frame_id_by_name	lib/id3tag/tag.rb	/^    def possible_v1_frame_id_by_name(name)$/;"	f	class:ID3Tag
         
     | 
| 
      
 268 
     | 
    
         
            +
            possible_v2_frame_id_by_name	lib/id3tag/tag.rb	/^    def possible_v2_frame_id_by_name(name)$/;"	f	class:ID3Tag
         
     | 
| 
       265 
269 
     | 
    
         
             
            preserve_on_file_alteration?	lib/id3tag/frames/v2/basic_frame.rb	/^        def preserve_on_file_alteration?$/;"	f	class:ID3Tag.Frames.V2.BasicFrame
         
     | 
| 
       266 
270 
     | 
    
         
             
            preserve_on_file_alteration?	lib/id3tag/frames/v2/frame_flags.rb	/^        def preserve_on_file_alteration?$/;"	f	class:ID3Tag.Frames.V2.FrameFlags
         
     | 
| 
       267 
271 
     | 
    
         
             
            preserve_on_file_alteration?	lib/id3tag/frames/v2/frame_header_flags.rb	/^        def preserve_on_file_alteration?$/;"	f	class:ID3Tag.Frames.V2.FrameFlags
         
     | 
| 
         @@ -283,6 +287,8 @@ read_only?	lib/id3tag/frames/v2/frame_flags.rb	/^        def read_only?$/;"	f	cl 
     | 
|
| 
       283 
287 
     | 
    
         
             
            read_only?	lib/id3tag/frames/v2/frame_header_flags.rb	/^        def read_only?$/;"	f	class:ID3Tag.Frames.V2.FrameFlags
         
     | 
| 
       284 
288 
     | 
    
         
             
            remove	lib/id3tag/unsynchronization.rb	/^    def remove$/;"	f	class:ID3Tag.Unsynchronization
         
     | 
| 
       285 
289 
     | 
    
         
             
            rewind_input	lib/id3tag/id3_v2_frame_parser.rb	/^    def rewind_input$/;"	f	class:ID3Tag.ID3V2FrameParser
         
     | 
| 
      
 290 
     | 
    
         
            +
            should_and_could_read_v1_frames?	lib/id3tag/tag.rb	/^    def should_and_could_read_v1_frames?$/;"	f	class:ID3Tag
         
     | 
| 
      
 291 
     | 
    
         
            +
            should_and_could_read_v2_frames?	lib/id3tag/tag.rb	/^    def should_and_could_read_v2_frames?$/;"	f	class:ID3Tag
         
     | 
| 
       286 
292 
     | 
    
         
             
            source_encoding	lib/id3tag/frames/v1/text_frame.rb	/^        def source_encoding$/;"	f	class:ID3Tag.Frames.V1.TextFrame
         
     | 
| 
       287 
293 
     | 
    
         
             
            source_encoding	lib/id3tag/frames/v2/text_frame.rb	/^        def source_encoding$/;"	f	class:ID3Tag.Frames.V2.TextFrame
         
     | 
| 
       288 
294 
     | 
    
         
             
            split_by_null_byte	lib/id3tag/string_util.rb	/^    def self.split_by_null_byte(string)$/;"	F	class:ID3Tag.StringUtil
         
     | 
    
        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.5. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.5.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Krists Ozols
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2013-11- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2013-11-13 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: jeweler
         
     | 
| 
         @@ -170,6 +170,7 @@ files: 
     | 
|
| 
       170 
170 
     | 
    
         
             
            - spec/lib/id3tag/frames/v2/genre_frame_spec.rb
         
     | 
| 
       171 
171 
     | 
    
         
             
            - spec/lib/id3tag/frames/v2/text_frame_spec.rb
         
     | 
| 
       172 
172 
     | 
    
         
             
            - spec/lib/id3tag/frames/v2/unique_file_id_frame_spec.rb
         
     | 
| 
      
 173 
     | 
    
         
            +
            - spec/lib/id3tag/frames/v2/user_text_frame_spec.rb
         
     | 
| 
       173 
174 
     | 
    
         
             
            - spec/lib/id3tag/id3_v1_frame_parser_spec.rb
         
     | 
| 
       174 
175 
     | 
    
         
             
            - spec/lib/id3tag/id3_v2_frame_parser_spec.rb
         
     | 
| 
       175 
176 
     | 
    
         
             
            - spec/lib/id3tag/id3_v2_tag_header_spec.rb
         
     |