taglib-ruby 0.2.1 → 0.3.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.
- data/CHANGES.md +7 -0
- data/Gemfile +1 -2
- data/Gemfile.lock +9 -8
- data/README.md +22 -7
- data/Rakefile +9 -15
- data/docs/taglib/base.rb +31 -8
- data/docs/taglib/id3v1.rb +5 -0
- data/docs/taglib/mpeg.rb +8 -0
- data/docs/taglib/ogg.rb +77 -0
- data/docs/taglib/vorbis.rb +43 -0
- data/ext/taglib_base/includes.i +25 -1
- data/ext/taglib_base/taglib_base.i +46 -2
- data/ext/taglib_base/taglib_base_wrap.cxx +176 -185
- data/ext/taglib_id3v1/extconf.rb +4 -0
- data/ext/taglib_id3v1/taglib_id3v1.i +11 -0
- data/ext/taglib_id3v1/taglib_id3v1_wrap.cxx +3092 -0
- data/ext/taglib_id3v2/taglib_id3v2.i +0 -8
- data/ext/taglib_id3v2/taglib_id3v2_wrap.cxx +194 -248
- data/ext/taglib_mpeg/taglib_mpeg.i +16 -2
- data/ext/taglib_mpeg/taglib_mpeg_wrap.cxx +157 -149
- data/ext/taglib_ogg/extconf.rb +4 -0
- data/ext/taglib_ogg/taglib_ogg.i +36 -0
- data/ext/taglib_ogg/taglib_ogg_wrap.cxx +3613 -0
- data/ext/taglib_vorbis/extconf.rb +4 -0
- data/ext/taglib_vorbis/taglib_vorbis.i +48 -0
- data/ext/taglib_vorbis/taglib_vorbis_wrap.cxx +3056 -0
- data/ext/win.cmake +6 -0
- data/lib/taglib/id3v1.rb +1 -0
- data/lib/taglib/ogg.rb +1 -0
- data/lib/taglib/version.rb +2 -2
- data/lib/taglib/vorbis.rb +1 -0
- data/lib/taglib.rb +10 -0
- data/taglib-ruby.gemspec +35 -11
- data/tasks/ext.rake +79 -0
- data/tasks/swig.rake +43 -0
- data/test/data/Makefile +15 -0
- data/test/data/id3v1-create.cpp +31 -0
- data/test/data/id3v1.mp3 +0 -0
- data/test/data/vorbis-create.cpp +42 -0
- data/test/data/vorbis.oga +0 -0
- data/test/test_fileref_write.rb +38 -0
- data/test/test_id3v1_tag.rb +36 -0
- data/test/test_id3v2_frames.rb +5 -0
- data/test/test_id3v2_memory.rb +23 -0
- data/test/test_id3v2_relative_volume.rb +5 -0
- data/test/test_id3v2_tag.rb +5 -0
- data/test/test_id3v2_unicode.rb +5 -0
- data/test/test_id3v2_write.rb +6 -1
- data/test/test_mpeg_file.rb +18 -1
- data/test/test_vorbis_file.rb +44 -0
- data/test/test_vorbis_tag.rb +79 -0
- metadata +113 -137
- data/ext/Rakefile +0 -32
    
        data/test/test_id3v2_frames.rb
    CHANGED
    
    
    
        data/test/test_id3v2_memory.rb
    CHANGED
    
    | @@ -50,5 +50,28 @@ class TestID3v2Memory < Test::Unit::TestCase | |
| 50 50 | 
             
                    raise "GC did not delete file, unsure if test was successful."
         | 
| 51 51 | 
             
                  end
         | 
| 52 52 | 
             
                end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                should "not segfault when audio properties are deleted along with file" do
         | 
| 55 | 
            +
                  file = TagLib::MPEG::File.new("test/data/crash.mp3", true)
         | 
| 56 | 
            +
                  properties = file.audio_properties
         | 
| 57 | 
            +
                  file.close
         | 
| 58 | 
            +
                  begin
         | 
| 59 | 
            +
                    N.times do
         | 
| 60 | 
            +
                      GC.start
         | 
| 61 | 
            +
                      properties.bitrate
         | 
| 62 | 
            +
                    end
         | 
| 63 | 
            +
                  rescue => e
         | 
| 64 | 
            +
                    assert_equal "ObjectPreviouslyDeleted", e.class.to_s
         | 
| 65 | 
            +
                  else
         | 
| 66 | 
            +
                    raise "GC did not delete file, unsure if test was successful."
         | 
| 67 | 
            +
                  end
         | 
| 68 | 
            +
                end
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                teardown do
         | 
| 71 | 
            +
                  if @file
         | 
| 72 | 
            +
                    @file.close
         | 
| 73 | 
            +
                    @file = nil
         | 
| 74 | 
            +
                  end
         | 
| 75 | 
            +
                end
         | 
| 53 76 | 
             
              end
         | 
| 54 77 | 
             
            end
         | 
    
        data/test/test_id3v2_tag.rb
    CHANGED
    
    
    
        data/test/test_id3v2_unicode.rb
    CHANGED
    
    
    
        data/test/test_id3v2_write.rb
    CHANGED
    
    | @@ -50,6 +50,7 @@ class TestID3v2Write < Test::Unit::TestCase | |
| 50 50 |  | 
| 51 51 | 
             
                    success = @file.save
         | 
| 52 52 | 
             
                    assert success
         | 
| 53 | 
            +
                    @file.close
         | 
| 53 54 | 
             
                    @file = nil
         | 
| 54 55 |  | 
| 55 56 | 
             
                    written_file = TagLib::MPEG::File.new(OUTPUT_FILE, false)
         | 
| @@ -57,6 +58,7 @@ class TestID3v2Write < Test::Unit::TestCase | |
| 57 58 | 
             
                    assert_equal "image/jpeg", written_apic.mime_type
         | 
| 58 59 | 
             
                    assert_equal "desc", written_apic.description
         | 
| 59 60 | 
             
                    assert_equal picture_data, written_apic.picture
         | 
| 61 | 
            +
                    written_file.close
         | 
| 60 62 | 
             
                  end
         | 
| 61 63 |  | 
| 62 64 | 
             
                  should "be able to set field_list" do
         | 
| @@ -88,7 +90,10 @@ class TestID3v2Write < Test::Unit::TestCase | |
| 88 90 | 
             
                end
         | 
| 89 91 |  | 
| 90 92 | 
             
                teardown do
         | 
| 91 | 
            -
                  @file | 
| 93 | 
            +
                  if @file
         | 
| 94 | 
            +
                    @file.close
         | 
| 95 | 
            +
                    @file = nil
         | 
| 96 | 
            +
                  end
         | 
| 92 97 | 
             
                  FileUtils.rm OUTPUT_FILE
         | 
| 93 98 | 
             
                end
         | 
| 94 99 | 
             
              end
         | 
    
        data/test/test_mpeg_file.rb
    CHANGED
    
    | @@ -7,6 +7,18 @@ class TestMPEGFile < Test::Unit::TestCase | |
| 7 7 | 
             
                  @file = TagLib::MPEG::File.new("test/data/crash.mp3", read_properties)
         | 
| 8 8 | 
             
                end
         | 
| 9 9 |  | 
| 10 | 
            +
                should "have a basic tag" do
         | 
| 11 | 
            +
                  tag = @file.tag
         | 
| 12 | 
            +
                  assert_not_nil tag
         | 
| 13 | 
            +
                  assert_equal TagLib::Tag, tag.class
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                should "have an ID3v2 tag" do
         | 
| 17 | 
            +
                  tag = @file.id3v2_tag(false)
         | 
| 18 | 
            +
                  assert_not_nil tag
         | 
| 19 | 
            +
                  assert_equal TagLib::ID3v2::Tag, tag.class
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
             | 
| 10 22 | 
             
                context "audio properties" do
         | 
| 11 23 | 
             
                  setup do
         | 
| 12 24 | 
             
                    @properties = @file.audio_properties
         | 
| @@ -39,11 +51,16 @@ class TestMPEGFile < Test::Unit::TestCase | |
| 39 51 | 
             
                    end
         | 
| 40 52 |  | 
| 41 53 | 
             
                    should "contain information" do
         | 
| 42 | 
            -
                       | 
| 54 | 
            +
                      assert @xing_header.valid?
         | 
| 43 55 | 
             
                      assert_equal 88, @xing_header.total_frames
         | 
| 44 56 | 
             
                      assert_equal 45140, @xing_header.total_size
         | 
| 45 57 | 
             
                    end
         | 
| 46 58 | 
             
                  end
         | 
| 47 59 | 
             
                end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                teardown do
         | 
| 62 | 
            +
                  @file.close
         | 
| 63 | 
            +
                  @file = nil
         | 
| 64 | 
            +
                end
         | 
| 48 65 | 
             
              end
         | 
| 49 66 | 
             
            end
         | 
| @@ -0,0 +1,44 @@ | |
| 1 | 
            +
            require '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 | 
            +
            end
         | 
| @@ -0,0 +1,79 @@ | |
| 1 | 
            +
            require '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
    CHANGED
    
    | @@ -1,160 +1,115 @@ | |
| 1 | 
            -
            --- !ruby/object:Gem::Specification | 
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: taglib-ruby
         | 
| 3 | 
            -
            version: !ruby/object:Gem::Version | 
| 4 | 
            -
               | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.3.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 | 
            -
              segments: 
         | 
| 7 | 
            -
              - 0
         | 
| 8 | 
            -
              - 2
         | 
| 9 | 
            -
              - 1
         | 
| 10 | 
            -
              version: 0.2.1
         | 
| 11 6 | 
             
            platform: ruby
         | 
| 12 | 
            -
            authors: | 
| 7 | 
            +
            authors:
         | 
| 13 8 | 
             
            - Robin Stocker
         | 
| 14 9 | 
             
            autorequire: 
         | 
| 15 10 | 
             
            bindir: bin
         | 
| 16 11 | 
             
            cert_chain: []
         | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
              requirement: & | 
| 12 | 
            +
            date: 2012-01-02 00:00:00.000000000 Z
         | 
| 13 | 
            +
            dependencies:
         | 
| 14 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 15 | 
            +
              name: rake-compiler
         | 
| 16 | 
            +
              requirement: &18528240 !ruby/object:Gem::Requirement
         | 
| 22 17 | 
             
                none: false
         | 
| 23 | 
            -
                requirements: | 
| 18 | 
            +
                requirements:
         | 
| 24 19 | 
             
                - - ~>
         | 
| 25 | 
            -
                  - !ruby/object:Gem::Version | 
| 26 | 
            -
                     | 
| 27 | 
            -
                    segments: 
         | 
| 28 | 
            -
                    - 0
         | 
| 29 | 
            -
                    - 7
         | 
| 30 | 
            -
                    version: "0.7"
         | 
| 31 | 
            -
              version_requirements: *id001
         | 
| 32 | 
            -
              name: rake-compiler
         | 
| 33 | 
            -
              prerelease: false
         | 
| 20 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            +
                    version: '0.7'
         | 
| 34 22 | 
             
              type: :development
         | 
| 35 | 
            -
             | 
| 36 | 
            -
               | 
| 23 | 
            +
              prerelease: false
         | 
| 24 | 
            +
              version_requirements: *18528240
         | 
| 25 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 26 | 
            +
              name: shoulda
         | 
| 27 | 
            +
              requirement: &18527040 !ruby/object:Gem::Requirement
         | 
| 37 28 | 
             
                none: false
         | 
| 38 | 
            -
                requirements: | 
| 29 | 
            +
                requirements:
         | 
| 39 30 | 
             
                - - ~>
         | 
| 40 | 
            -
                  - !ruby/object:Gem::Version | 
| 41 | 
            -
                     | 
| 42 | 
            -
                    segments: 
         | 
| 43 | 
            -
                    - 2
         | 
| 44 | 
            -
                    - 11
         | 
| 45 | 
            -
                    version: "2.11"
         | 
| 46 | 
            -
              version_requirements: *id002
         | 
| 47 | 
            -
              name: shoulda
         | 
| 48 | 
            -
              prerelease: false
         | 
| 31 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            +
                    version: '2.11'
         | 
| 49 33 | 
             
              type: :development
         | 
| 50 | 
            -
             | 
| 51 | 
            -
               | 
| 34 | 
            +
              prerelease: false
         | 
| 35 | 
            +
              version_requirements: *18527040
         | 
| 36 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 37 | 
            +
              name: bundler
         | 
| 38 | 
            +
              requirement: &18525980 !ruby/object:Gem::Requirement
         | 
| 52 39 | 
             
                none: false
         | 
| 53 | 
            -
                requirements: | 
| 40 | 
            +
                requirements:
         | 
| 54 41 | 
             
                - - ~>
         | 
| 55 | 
            -
                  - !ruby/object:Gem::Version | 
| 56 | 
            -
                    hash: 23
         | 
| 57 | 
            -
                    segments: 
         | 
| 58 | 
            -
                    - 1
         | 
| 59 | 
            -
                    - 0
         | 
| 60 | 
            -
                    - 0
         | 
| 42 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 43 | 
             
                    version: 1.0.0
         | 
| 62 | 
            -
              version_requirements: *id003
         | 
| 63 | 
            -
              name: bundler
         | 
| 64 | 
            -
              prerelease: false
         | 
| 65 44 | 
             
              type: :development
         | 
| 66 | 
            -
             | 
| 67 | 
            -
               | 
| 45 | 
            +
              prerelease: false
         | 
| 46 | 
            +
              version_requirements: *18525980
         | 
| 47 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 48 | 
            +
              name: jeweler
         | 
| 49 | 
            +
              requirement: &18525180 !ruby/object:Gem::Requirement
         | 
| 68 50 | 
             
                none: false
         | 
| 69 | 
            -
                requirements: | 
| 51 | 
            +
                requirements:
         | 
| 70 52 | 
             
                - - ~>
         | 
| 71 | 
            -
                  - !ruby/object:Gem::Version | 
| 72 | 
            -
                    hash: 7
         | 
| 73 | 
            -
                    segments: 
         | 
| 74 | 
            -
                    - 1
         | 
| 75 | 
            -
                    - 6
         | 
| 76 | 
            -
                    - 4
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 77 54 | 
             
                    version: 1.6.4
         | 
| 78 | 
            -
              version_requirements: *id004
         | 
| 79 | 
            -
              name: jeweler
         | 
| 80 | 
            -
              prerelease: false
         | 
| 81 55 | 
             
              type: :development
         | 
| 82 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 83 | 
            -
              requirement: &id005 !ruby/object:Gem::Requirement 
         | 
| 84 | 
            -
                none: false
         | 
| 85 | 
            -
                requirements: 
         | 
| 86 | 
            -
                - - ">="
         | 
| 87 | 
            -
                  - !ruby/object:Gem::Version 
         | 
| 88 | 
            -
                    hash: 3
         | 
| 89 | 
            -
                    segments: 
         | 
| 90 | 
            -
                    - 0
         | 
| 91 | 
            -
                    version: "0"
         | 
| 92 | 
            -
              version_requirements: *id005
         | 
| 93 | 
            -
              name: rcov
         | 
| 94 56 | 
             
              prerelease: false
         | 
| 95 | 
            -
               | 
| 96 | 
            -
            - !ruby/object:Gem::Dependency | 
| 97 | 
            -
               | 
| 57 | 
            +
              version_requirements: *18525180
         | 
| 58 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 59 | 
            +
              name: yard
         | 
| 60 | 
            +
              requirement: &18524140 !ruby/object:Gem::Requirement
         | 
| 98 61 | 
             
                none: false
         | 
| 99 | 
            -
                requirements: | 
| 62 | 
            +
                requirements:
         | 
| 100 63 | 
             
                - - ~>
         | 
| 101 | 
            -
                  - !ruby/object:Gem::Version | 
| 102 | 
            -
                     | 
| 103 | 
            -
                    segments: 
         | 
| 104 | 
            -
                    - 0
         | 
| 105 | 
            -
                    - 7
         | 
| 106 | 
            -
                    version: "0.7"
         | 
| 107 | 
            -
              version_requirements: *id006
         | 
| 108 | 
            -
              name: yard
         | 
| 109 | 
            -
              prerelease: false
         | 
| 64 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 65 | 
            +
                    version: '0.7'
         | 
| 110 66 | 
             
              type: :development
         | 
| 111 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 112 | 
            -
              requirement: &id007 !ruby/object:Gem::Requirement 
         | 
| 113 | 
            -
                none: false
         | 
| 114 | 
            -
                requirements: 
         | 
| 115 | 
            -
                - - ">="
         | 
| 116 | 
            -
                  - !ruby/object:Gem::Version 
         | 
| 117 | 
            -
                    hash: 3
         | 
| 118 | 
            -
                    segments: 
         | 
| 119 | 
            -
                    - 0
         | 
| 120 | 
            -
                    version: "0"
         | 
| 121 | 
            -
              version_requirements: *id007
         | 
| 122 | 
            -
              name: redcarpet
         | 
| 123 67 | 
             
              prerelease: false
         | 
| 68 | 
            +
              version_requirements: *18524140
         | 
| 69 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            +
              name: redcarpet
         | 
| 71 | 
            +
              requirement: &18523500 !ruby/object:Gem::Requirement
         | 
| 72 | 
            +
                none: false
         | 
| 73 | 
            +
                requirements:
         | 
| 74 | 
            +
                - - ~>
         | 
| 75 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 76 | 
            +
                    version: '1.0'
         | 
| 124 77 | 
             
              type: :development
         | 
| 125 | 
            -
             | 
| 126 | 
            -
               | 
| 78 | 
            +
              prerelease: false
         | 
| 79 | 
            +
              version_requirements: *18523500
         | 
| 80 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 81 | 
            +
              name: guard-test
         | 
| 82 | 
            +
              requirement: &18522720 !ruby/object:Gem::Requirement
         | 
| 127 83 | 
             
                none: false
         | 
| 128 | 
            -
                requirements: | 
| 84 | 
            +
                requirements:
         | 
| 129 85 | 
             
                - - ~>
         | 
| 130 | 
            -
                  - !ruby/object:Gem::Version | 
| 131 | 
            -
                    hash: 15
         | 
| 132 | 
            -
                    segments: 
         | 
| 133 | 
            -
                    - 0
         | 
| 134 | 
            -
                    - 4
         | 
| 135 | 
            -
                    - 0
         | 
| 86 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 136 87 | 
             
                    version: 0.4.0
         | 
| 137 | 
            -
              version_requirements: *id008
         | 
| 138 | 
            -
              name: guard-test
         | 
| 139 | 
            -
              prerelease: false
         | 
| 140 88 | 
             
              type: :development
         | 
| 141 | 
            -
             | 
| 142 | 
            -
               | 
| 143 | 
            -
             | 
| 89 | 
            +
              prerelease: false
         | 
| 90 | 
            +
              version_requirements: *18522720
         | 
| 91 | 
            +
            description: ! 'Ruby interface for the taglib C++ library.
         | 
| 92 | 
            +
             | 
| 93 | 
            +
             | 
| 144 94 | 
             
              In contrast to other libraries, this one wraps the C++ API using SWIG,
         | 
| 95 | 
            +
             | 
| 145 96 | 
             
              not only the minimal C API. This means that all tags can be accessed.
         | 
| 146 97 |  | 
| 98 | 
            +
            '
         | 
| 147 99 | 
             
            email: robin@nibor.org
         | 
| 148 100 | 
             
            executables: []
         | 
| 149 | 
            -
             | 
| 150 | 
            -
            extensions: 
         | 
| 101 | 
            +
            extensions:
         | 
| 151 102 | 
             
            - ext/taglib_base/extconf.rb
         | 
| 152 103 | 
             
            - ext/taglib_mpeg/extconf.rb
         | 
| 104 | 
            +
            - ext/taglib_id3v1/extconf.rb
         | 
| 153 105 | 
             
            - ext/taglib_id3v2/extconf.rb
         | 
| 154 | 
            -
             | 
| 106 | 
            +
            - ext/taglib_ogg/extconf.rb
         | 
| 107 | 
            +
            - ext/taglib_vorbis/extconf.rb
         | 
| 108 | 
            +
            extra_rdoc_files:
         | 
| 109 | 
            +
            - CHANGES.md
         | 
| 155 110 | 
             
            - LICENSE.txt
         | 
| 156 111 | 
             
            - README.md
         | 
| 157 | 
            -
            files: | 
| 112 | 
            +
            files:
         | 
| 158 113 | 
             
            - .yardopts
         | 
| 159 114 | 
             
            - CHANGES.md
         | 
| 160 115 | 
             
            - Gemfile
         | 
| @@ -165,14 +120,19 @@ files: | |
| 165 120 | 
             
            - Rakefile
         | 
| 166 121 | 
             
            - docs/default/fulldoc/html/css/common.css
         | 
| 167 122 | 
             
            - docs/taglib/base.rb
         | 
| 123 | 
            +
            - docs/taglib/id3v1.rb
         | 
| 168 124 | 
             
            - docs/taglib/id3v2.rb
         | 
| 169 125 | 
             
            - docs/taglib/mpeg.rb
         | 
| 170 | 
            -
            -  | 
| 126 | 
            +
            - docs/taglib/ogg.rb
         | 
| 127 | 
            +
            - docs/taglib/vorbis.rb
         | 
| 171 128 | 
             
            - ext/extconf_common.rb
         | 
| 172 129 | 
             
            - ext/taglib_base/extconf.rb
         | 
| 173 130 | 
             
            - ext/taglib_base/includes.i
         | 
| 174 131 | 
             
            - ext/taglib_base/taglib_base.i
         | 
| 175 132 | 
             
            - ext/taglib_base/taglib_base_wrap.cxx
         | 
| 133 | 
            +
            - ext/taglib_id3v1/extconf.rb
         | 
| 134 | 
            +
            - ext/taglib_id3v1/taglib_id3v1.i
         | 
| 135 | 
            +
            - ext/taglib_id3v1/taglib_id3v1_wrap.cxx
         | 
| 176 136 | 
             
            - ext/taglib_id3v2/extconf.rb
         | 
| 177 137 | 
             
            - ext/taglib_id3v2/relativevolumeframe.i
         | 
| 178 138 | 
             
            - ext/taglib_id3v2/taglib_id3v2.i
         | 
| @@ -180,22 +140,41 @@ files: | |
| 180 140 | 
             
            - ext/taglib_mpeg/extconf.rb
         | 
| 181 141 | 
             
            - ext/taglib_mpeg/taglib_mpeg.i
         | 
| 182 142 | 
             
            - ext/taglib_mpeg/taglib_mpeg_wrap.cxx
         | 
| 143 | 
            +
            - ext/taglib_ogg/extconf.rb
         | 
| 144 | 
            +
            - ext/taglib_ogg/taglib_ogg.i
         | 
| 145 | 
            +
            - ext/taglib_ogg/taglib_ogg_wrap.cxx
         | 
| 146 | 
            +
            - ext/taglib_vorbis/extconf.rb
         | 
| 147 | 
            +
            - ext/taglib_vorbis/taglib_vorbis.i
         | 
| 148 | 
            +
            - ext/taglib_vorbis/taglib_vorbis_wrap.cxx
         | 
| 183 149 | 
             
            - ext/valgrind-suppressions.txt
         | 
| 150 | 
            +
            - ext/win.cmake
         | 
| 184 151 | 
             
            - lib/taglib.rb
         | 
| 185 152 | 
             
            - lib/taglib/base.rb
         | 
| 153 | 
            +
            - lib/taglib/id3v1.rb
         | 
| 186 154 | 
             
            - lib/taglib/id3v2.rb
         | 
| 187 155 | 
             
            - lib/taglib/mpeg.rb
         | 
| 156 | 
            +
            - lib/taglib/ogg.rb
         | 
| 188 157 | 
             
            - lib/taglib/version.rb
         | 
| 158 | 
            +
            - lib/taglib/vorbis.rb
         | 
| 189 159 | 
             
            - taglib-ruby.gemspec
         | 
| 190 160 | 
             
            - tasks/docs_coverage.rake
         | 
| 161 | 
            +
            - tasks/ext.rake
         | 
| 162 | 
            +
            - tasks/swig.rake
         | 
| 163 | 
            +
            - test/data/Makefile
         | 
| 191 164 | 
             
            - test/data/add-relative-volume.cpp
         | 
| 192 165 | 
             
            - test/data/crash.mp3
         | 
| 193 166 | 
             
            - test/data/globe_east_540.jpg
         | 
| 167 | 
            +
            - test/data/id3v1-create.cpp
         | 
| 168 | 
            +
            - test/data/id3v1.mp3
         | 
| 194 169 | 
             
            - test/data/relative-volume.mp3
         | 
| 195 170 | 
             
            - test/data/sample.mp3
         | 
| 196 171 | 
             
            - test/data/unicode.mp3
         | 
| 172 | 
            +
            - test/data/vorbis-create.cpp
         | 
| 173 | 
            +
            - test/data/vorbis.oga
         | 
| 197 174 | 
             
            - test/helper.rb
         | 
| 198 175 | 
             
            - test/test_fileref_properties.rb
         | 
| 176 | 
            +
            - test/test_fileref_write.rb
         | 
| 177 | 
            +
            - test/test_id3v1_tag.rb
         | 
| 199 178 | 
             
            - test/test_id3v2_frames.rb
         | 
| 200 179 | 
             
            - test/test_id3v2_memory.rb
         | 
| 201 180 | 
             
            - test/test_id3v2_relative_volume.rb
         | 
| @@ -204,33 +183,31 @@ files: | |
| 204 183 | 
             
            - test/test_id3v2_write.rb
         | 
| 205 184 | 
             
            - test/test_mpeg_file.rb
         | 
| 206 185 | 
             
            - test/test_tag.rb
         | 
| 186 | 
            +
            - test/test_vorbis_file.rb
         | 
| 187 | 
            +
            - test/test_vorbis_tag.rb
         | 
| 207 188 | 
             
            homepage: http://github.com/robinst/taglib-ruby
         | 
| 208 | 
            -
            licenses: | 
| 189 | 
            +
            licenses:
         | 
| 209 190 | 
             
            - MIT
         | 
| 210 191 | 
             
            post_install_message: 
         | 
| 211 192 | 
             
            rdoc_options: []
         | 
| 212 | 
            -
             | 
| 213 | 
            -
            require_paths: 
         | 
| 193 | 
            +
            require_paths:
         | 
| 214 194 | 
             
            - lib
         | 
| 215 | 
            -
            required_ruby_version: !ruby/object:Gem::Requirement | 
| 195 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 216 196 | 
             
              none: false
         | 
| 217 | 
            -
              requirements: | 
| 218 | 
            -
              - -  | 
| 219 | 
            -
                - !ruby/object:Gem::Version | 
| 220 | 
            -
                   | 
| 221 | 
            -
                  segments: | 
| 197 | 
            +
              requirements:
         | 
| 198 | 
            +
              - - ! '>='
         | 
| 199 | 
            +
                - !ruby/object:Gem::Version
         | 
| 200 | 
            +
                  version: '0'
         | 
| 201 | 
            +
                  segments:
         | 
| 222 202 | 
             
                  - 0
         | 
| 223 | 
            -
                   | 
| 224 | 
            -
            required_rubygems_version: !ruby/object:Gem::Requirement | 
| 203 | 
            +
                  hash: -1593774999472274460
         | 
| 204 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 225 205 | 
             
              none: false
         | 
| 226 | 
            -
              requirements: | 
| 227 | 
            -
              - -  | 
| 228 | 
            -
                - !ruby/object:Gem::Version | 
| 229 | 
            -
                   | 
| 230 | 
            -
             | 
| 231 | 
            -
                  - 0
         | 
| 232 | 
            -
                  version: "0"
         | 
| 233 | 
            -
            requirements: 
         | 
| 206 | 
            +
              requirements:
         | 
| 207 | 
            +
              - - ! '>='
         | 
| 208 | 
            +
                - !ruby/object:Gem::Version
         | 
| 209 | 
            +
                  version: '0'
         | 
| 210 | 
            +
            requirements:
         | 
| 234 211 | 
             
            - taglib (libtag1-dev in Debian/Ubuntu, taglib-devel in Fedora/RHEL)
         | 
| 235 212 | 
             
            rubyforge_project: 
         | 
| 236 213 | 
             
            rubygems_version: 1.8.10
         | 
| @@ -238,4 +215,3 @@ signing_key: | |
| 238 215 | 
             
            specification_version: 3
         | 
| 239 216 | 
             
            summary: Ruby interface for the taglib C++ library
         | 
| 240 217 | 
             
            test_files: []
         | 
| 241 | 
            -
             |