taglib-ruby 0.5.0-x86-mingw32 → 0.5.1-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES.md +6 -0
- data/docs/taglib/base.rb +9 -0
- data/docs/taglib/mpeg.rb +33 -0
- data/ext/extconf_common.rb +6 -2
- data/ext/taglib_base/includes.i +13 -2
- data/ext/taglib_base/taglib_base_wrap.cxx +17 -6
- data/ext/taglib_flac/taglib_flac_wrap.cxx +16 -5
- data/ext/taglib_id3v1/taglib_id3v1_wrap.cxx +17 -6
- data/ext/taglib_id3v2/taglib_id3v2_wrap.cxx +18 -7
- data/ext/taglib_mpeg/taglib_mpeg_wrap.cxx +16 -5
- data/ext/taglib_ogg/taglib_ogg_wrap.cxx +17 -6
- data/ext/taglib_vorbis/taglib_vorbis_wrap.cxx +16 -5
- data/lib/libtag.dll +0 -0
- data/lib/taglib/version.rb +1 -1
- data/lib/taglib_base.so +0 -0
- data/lib/taglib_flac.so +0 -0
- data/lib/taglib_id3v1.so +0 -0
- data/lib/taglib_id3v2.so +0 -0
- data/lib/taglib_mpeg.so +0 -0
- data/lib/taglib_ogg.so +0 -0
- data/lib/taglib_vorbis.so +0 -0
- data/tasks/ext.rake +5 -4
- data/test/id3v2_frames_test.rb +4 -0
- data/test/id3v2_write_test.rb +45 -0
- metadata +12 -12
    
        data/CHANGES.md
    CHANGED
    
    | @@ -1,6 +1,12 @@ | |
| 1 1 | 
             
            Changes in Releases of taglib-ruby
         | 
| 2 2 | 
             
            ==================================
         | 
| 3 3 |  | 
| 4 | 
            +
            ## 0.5.1 (2012-06-16)
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            * Fix crashes (segfault) with nil arguments, e.g. with `tag.title = nil`
         | 
| 7 | 
            +
            * Document TagLib::MPEG::File#save and TagLib::MPEG::File#strip (#11)
         | 
| 8 | 
            +
            * Update TagLib of binary gem for Windows to 1.7.2
         | 
| 9 | 
            +
             | 
| 4 10 | 
             
            ## 0.5.0 (2012-04-15)
         | 
| 5 11 |  | 
| 6 12 | 
             
            * Add support for FLAC
         | 
    
        data/docs/taglib/base.rb
    CHANGED
    
    | @@ -116,6 +116,15 @@ module TagLib | |
| 116 116 |  | 
| 117 117 | 
             
              # @abstract Base class for files, see subclasses.
         | 
| 118 118 | 
             
              class File
         | 
| 119 | 
            +
             | 
| 120 | 
            +
                # Save the file and the associated tags.
         | 
| 121 | 
            +
                #
         | 
| 122 | 
            +
                # See subclasses, as some provide more control over what is saved.
         | 
| 123 | 
            +
                #
         | 
| 124 | 
            +
                # @return [Boolean] whether saving was successful
         | 
| 125 | 
            +
                def save
         | 
| 126 | 
            +
                end
         | 
| 127 | 
            +
             | 
| 119 128 | 
             
                # Closes the file and releases all objects that were read from the
         | 
| 120 129 | 
             
                # file (basically everything from the TagLib namespace).
         | 
| 121 130 | 
             
                #
         | 
    
        data/docs/taglib/mpeg.rb
    CHANGED
    
    | @@ -8,6 +8,12 @@ module TagLib::MPEG | |
| 8 8 | 
             
              #   end
         | 
| 9 9 | 
             
              #
         | 
| 10 10 | 
             
              class File < TagLib::File
         | 
| 11 | 
            +
                NoTags  = 0x0000
         | 
| 12 | 
            +
                ID3v1   = 0x0001
         | 
| 13 | 
            +
                ID3v2   = 0x0002
         | 
| 14 | 
            +
                APE     = 0x0004
         | 
| 15 | 
            +
                AllTags = 0xffff
         | 
| 16 | 
            +
             | 
| 11 17 | 
             
                # {include:TagLib::FileRef.open}
         | 
| 12 18 | 
             
                #
         | 
| 13 19 | 
             
                # @param (see #initialize)
         | 
| @@ -55,6 +61,33 @@ module TagLib::MPEG | |
| 55 61 | 
             
                # @return [TagLib::MPEG::Properties]
         | 
| 56 62 | 
             
                def audio_properties
         | 
| 57 63 | 
             
                end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                # Save the file and the associated tags.
         | 
| 66 | 
            +
                #
         | 
| 67 | 
            +
                # @param [Integer] tags
         | 
| 68 | 
            +
                #   The tag types to save (see constants), e.g.
         | 
| 69 | 
            +
                #   {TagLib::MPEG::File::ID3v2}. To specify more than one tag type,
         | 
| 70 | 
            +
                #   or them together using `|`, e.g.
         | 
| 71 | 
            +
                #   `TagLib::MPEG::File::ID3v1 | TagLib::MPEG::File::ID3v2`.
         | 
| 72 | 
            +
                # @param [Boolean] strip_others
         | 
| 73 | 
            +
                #   true if tag types other than the specified ones should be
         | 
| 74 | 
            +
                #   stripped from the file
         | 
| 75 | 
            +
                # @return [Boolean] whether saving was successful
         | 
| 76 | 
            +
                def save(tags=TagLib::MPEG::File::AllTags, strip_others=true)
         | 
| 77 | 
            +
                end
         | 
| 78 | 
            +
             | 
| 79 | 
            +
                # Strip the specified tags from the file. Note that this directly
         | 
| 80 | 
            +
                # updates the file, a call to save afterwards is not necessary
         | 
| 81 | 
            +
                # (closing the file is necessary as always, though).
         | 
| 82 | 
            +
                #
         | 
| 83 | 
            +
                # @param [Integer] tags
         | 
| 84 | 
            +
                #   The tag types to strip (see constants), e.g.
         | 
| 85 | 
            +
                #   {TagLib::MPEG::File::ID3v2}. To specify more than one tag type,
         | 
| 86 | 
            +
                #   or them together using `|`, e.g.
         | 
| 87 | 
            +
                #   `TagLib::MPEG::File::ID3v1 | TagLib::MPEG::File::ID3v2`.
         | 
| 88 | 
            +
                # @return [Boolean] whether stripping was successful
         | 
| 89 | 
            +
                def strip(tags=TagLib::MPEG::File::AllTags)
         | 
| 90 | 
            +
                end
         | 
| 58 91 | 
             
              end
         | 
| 59 92 |  | 
| 60 93 | 
             
              # Audio properties for MPEG files.
         | 
    
        data/ext/extconf_common.rb
    CHANGED
    
    | @@ -11,8 +11,12 @@ end | |
| 11 11 |  | 
| 12 12 | 
             
            dir_config('tag')
         | 
| 13 13 |  | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 14 | 
            +
            # When compiling statically, -lstdc++ would make the resulting .so to
         | 
| 15 | 
            +
            # have a dependency on an external libstdc++ instead of the static one.
         | 
| 16 | 
            +
            unless $LDFLAGS.split(" ").include?("-static-libstdc++")
         | 
| 17 | 
            +
              if not have_library('stdc++')
         | 
| 18 | 
            +
                error "You must have libstdc++ installed."
         | 
| 19 | 
            +
              end
         | 
| 16 20 | 
             
            end
         | 
| 17 21 |  | 
| 18 22 | 
             
            if not have_library('tag')
         | 
    
        data/ext/taglib_base/includes.i
    CHANGED
    
    | @@ -39,7 +39,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) { | |
| 39 39 | 
             
            }
         | 
| 40 40 |  | 
| 41 41 | 
             
            TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
         | 
| 42 | 
            -
               | 
| 42 | 
            +
              if (NIL_P(s)) {
         | 
| 43 | 
            +
                return TagLib::ByteVector::null;
         | 
| 44 | 
            +
              } else {
         | 
| 45 | 
            +
                return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
         | 
| 46 | 
            +
              }
         | 
| 43 47 | 
             
            }
         | 
| 44 48 |  | 
| 45 49 | 
             
            VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
         | 
| @@ -53,7 +57,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) { | |
| 53 57 | 
             
            }
         | 
| 54 58 |  | 
| 55 59 | 
             
            TagLib::String ruby_string_to_taglib_string(VALUE s) {
         | 
| 56 | 
            -
               | 
| 60 | 
            +
              if (NIL_P(s)) {
         | 
| 61 | 
            +
                return TagLib::String::null;
         | 
| 62 | 
            +
              } else {
         | 
| 63 | 
            +
                return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
         | 
| 64 | 
            +
              }
         | 
| 57 65 | 
             
            }
         | 
| 58 66 |  | 
| 59 67 | 
             
            VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
         | 
| @@ -67,6 +75,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) { | |
| 67 75 |  | 
| 68 76 | 
             
            TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
         | 
| 69 77 | 
             
              TagLib::StringList result = TagLib::StringList();
         | 
| 78 | 
            +
              if (NIL_P(ary)) {
         | 
| 79 | 
            +
                return result;
         | 
| 80 | 
            +
              }
         | 
| 70 81 | 
             
              for (long i = 0; i < RARRAY_LEN(ary); i++) {
         | 
| 71 82 | 
             
                VALUE e = RARRAY_PTR(ary)[i];
         | 
| 72 83 | 
             
                TagLib::String s = ruby_string_to_taglib_string(e);
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            /* ----------------------------------------------------------------------------
         | 
| 2 2 | 
             
             * This file was automatically generated by SWIG (http://www.swig.org).
         | 
| 3 | 
            -
             * Version 2.0. | 
| 3 | 
            +
             * Version 2.0.8
         | 
| 4 4 | 
             
             * 
         | 
| 5 5 | 
             
             * This file is not intended to be easily readable and contains a number of 
         | 
| 6 6 | 
             
             * coding conventions designed to improve portability and efficiency. Do not make
         | 
| @@ -1843,7 +1843,7 @@ static VALUE mTagLib; | |
| 1843 1843 | 
             
            #define SWIG_RUBY_THREAD_END_BLOCK
         | 
| 1844 1844 |  | 
| 1845 1845 |  | 
| 1846 | 
            -
            #define SWIGVERSION  | 
| 1846 | 
            +
            #define SWIGVERSION 0x020008 
         | 
| 1847 1847 | 
             
            #define SWIG_VERSION SWIGVERSION
         | 
| 1848 1848 |  | 
| 1849 1849 |  | 
| @@ -1883,7 +1883,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) { | |
| 1883 1883 | 
             
            }
         | 
| 1884 1884 |  | 
| 1885 1885 | 
             
            TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
         | 
| 1886 | 
            -
               | 
| 1886 | 
            +
              if (NIL_P(s)) {
         | 
| 1887 | 
            +
                return TagLib::ByteVector::null;
         | 
| 1888 | 
            +
              } else {
         | 
| 1889 | 
            +
                return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
         | 
| 1890 | 
            +
              }
         | 
| 1887 1891 | 
             
            }
         | 
| 1888 1892 |  | 
| 1889 1893 | 
             
            VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
         | 
| @@ -1897,7 +1901,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) { | |
| 1897 1901 | 
             
            }
         | 
| 1898 1902 |  | 
| 1899 1903 | 
             
            TagLib::String ruby_string_to_taglib_string(VALUE s) {
         | 
| 1900 | 
            -
               | 
| 1904 | 
            +
              if (NIL_P(s)) {
         | 
| 1905 | 
            +
                return TagLib::String::null;
         | 
| 1906 | 
            +
              } else {
         | 
| 1907 | 
            +
                return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
         | 
| 1908 | 
            +
              }
         | 
| 1901 1909 | 
             
            }
         | 
| 1902 1910 |  | 
| 1903 1911 | 
             
            VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
         | 
| @@ -1911,6 +1919,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) { | |
| 1911 1919 |  | 
| 1912 1920 | 
             
            TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
         | 
| 1913 1921 | 
             
              TagLib::StringList result = TagLib::StringList();
         | 
| 1922 | 
            +
              if (NIL_P(ary)) {
         | 
| 1923 | 
            +
                return result;
         | 
| 1924 | 
            +
              }
         | 
| 1914 1925 | 
             
              for (long i = 0; i < RARRAY_LEN(ary); i++) {
         | 
| 1915 1926 | 
             
                VALUE e = RARRAY_PTR(ary)[i];
         | 
| 1916 1927 | 
             
                TagLib::String s = ruby_string_to_taglib_string(e);
         | 
| @@ -2052,7 +2063,7 @@ SWIG_ruby_failed(void) | |
| 2052 2063 | 
             
            } 
         | 
| 2053 2064 |  | 
| 2054 2065 |  | 
| 2055 | 
            -
            /*@SWIG:/usr/local/share/swig/2.0. | 
| 2066 | 
            +
            /*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
         | 
| 2056 2067 | 
             
            SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args)
         | 
| 2057 2068 | 
             
            {
         | 
| 2058 2069 | 
             
              VALUE obj = args[0];
         | 
| @@ -2104,7 +2115,7 @@ SWIG_From_bool  (bool value) | |
| 2104 2115 | 
             
            }
         | 
| 2105 2116 |  | 
| 2106 2117 |  | 
| 2107 | 
            -
            /*@SWIG:/usr/local/share/swig/2.0. | 
| 2118 | 
            +
            /*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
         | 
| 2108 2119 | 
             
            SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
         | 
| 2109 2120 | 
             
            {
         | 
| 2110 2121 | 
             
              VALUE obj = args[0];
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            /* ----------------------------------------------------------------------------
         | 
| 2 2 | 
             
             * This file was automatically generated by SWIG (http://www.swig.org).
         | 
| 3 | 
            -
             * Version 2.0. | 
| 3 | 
            +
             * Version 2.0.8
         | 
| 4 4 | 
             
             * 
         | 
| 5 5 | 
             
             * This file is not intended to be easily readable and contains a number of 
         | 
| 6 6 | 
             
             * coding conventions designed to improve portability and efficiency. Do not make
         | 
| @@ -1850,7 +1850,7 @@ static VALUE mFLAC; | |
| 1850 1850 | 
             
            #define SWIG_RUBY_THREAD_END_BLOCK
         | 
| 1851 1851 |  | 
| 1852 1852 |  | 
| 1853 | 
            -
            #define SWIGVERSION  | 
| 1853 | 
            +
            #define SWIGVERSION 0x020008 
         | 
| 1854 1854 | 
             
            #define SWIG_VERSION SWIGVERSION
         | 
| 1855 1855 |  | 
| 1856 1856 |  | 
| @@ -1891,7 +1891,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) { | |
| 1891 1891 | 
             
            }
         | 
| 1892 1892 |  | 
| 1893 1893 | 
             
            TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
         | 
| 1894 | 
            -
               | 
| 1894 | 
            +
              if (NIL_P(s)) {
         | 
| 1895 | 
            +
                return TagLib::ByteVector::null;
         | 
| 1896 | 
            +
              } else {
         | 
| 1897 | 
            +
                return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
         | 
| 1898 | 
            +
              }
         | 
| 1895 1899 | 
             
            }
         | 
| 1896 1900 |  | 
| 1897 1901 | 
             
            VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
         | 
| @@ -1905,7 +1909,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) { | |
| 1905 1909 | 
             
            }
         | 
| 1906 1910 |  | 
| 1907 1911 | 
             
            TagLib::String ruby_string_to_taglib_string(VALUE s) {
         | 
| 1908 | 
            -
               | 
| 1912 | 
            +
              if (NIL_P(s)) {
         | 
| 1913 | 
            +
                return TagLib::String::null;
         | 
| 1914 | 
            +
              } else {
         | 
| 1915 | 
            +
                return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
         | 
| 1916 | 
            +
              }
         | 
| 1909 1917 | 
             
            }
         | 
| 1910 1918 |  | 
| 1911 1919 | 
             
            VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
         | 
| @@ -1919,6 +1927,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) { | |
| 1919 1927 |  | 
| 1920 1928 | 
             
            TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
         | 
| 1921 1929 | 
             
              TagLib::StringList result = TagLib::StringList();
         | 
| 1930 | 
            +
              if (NIL_P(ary)) {
         | 
| 1931 | 
            +
                return result;
         | 
| 1932 | 
            +
              }
         | 
| 1922 1933 | 
             
              for (long i = 0; i < RARRAY_LEN(ary); i++) {
         | 
| 1923 1934 | 
             
                VALUE e = RARRAY_PTR(ary)[i];
         | 
| 1924 1935 | 
             
                TagLib::String s = ruby_string_to_taglib_string(e);
         | 
| @@ -1983,7 +1994,7 @@ SWIG_ruby_failed(void) | |
| 1983 1994 | 
             
            } 
         | 
| 1984 1995 |  | 
| 1985 1996 |  | 
| 1986 | 
            -
            /*@SWIG:/usr/local/share/swig/2.0. | 
| 1997 | 
            +
            /*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
         | 
| 1987 1998 | 
             
            SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
         | 
| 1988 1999 | 
             
            {
         | 
| 1989 2000 | 
             
              VALUE obj = args[0];
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            /* ----------------------------------------------------------------------------
         | 
| 2 2 | 
             
             * This file was automatically generated by SWIG (http://www.swig.org).
         | 
| 3 | 
            -
             * Version 2.0. | 
| 3 | 
            +
             * Version 2.0.8
         | 
| 4 4 | 
             
             * 
         | 
| 5 5 | 
             
             * This file is not intended to be easily readable and contains a number of 
         | 
| 6 6 | 
             
             * coding conventions designed to improve portability and efficiency. Do not make
         | 
| @@ -1838,7 +1838,7 @@ static VALUE mID3v1; | |
| 1838 1838 | 
             
            #define SWIG_RUBY_THREAD_END_BLOCK
         | 
| 1839 1839 |  | 
| 1840 1840 |  | 
| 1841 | 
            -
            #define SWIGVERSION  | 
| 1841 | 
            +
            #define SWIGVERSION 0x020008 
         | 
| 1842 1842 | 
             
            #define SWIG_VERSION SWIGVERSION
         | 
| 1843 1843 |  | 
| 1844 1844 |  | 
| @@ -1874,7 +1874,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) { | |
| 1874 1874 | 
             
            }
         | 
| 1875 1875 |  | 
| 1876 1876 | 
             
            TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
         | 
| 1877 | 
            -
               | 
| 1877 | 
            +
              if (NIL_P(s)) {
         | 
| 1878 | 
            +
                return TagLib::ByteVector::null;
         | 
| 1879 | 
            +
              } else {
         | 
| 1880 | 
            +
                return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
         | 
| 1881 | 
            +
              }
         | 
| 1878 1882 | 
             
            }
         | 
| 1879 1883 |  | 
| 1880 1884 | 
             
            VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
         | 
| @@ -1888,7 +1892,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) { | |
| 1888 1892 | 
             
            }
         | 
| 1889 1893 |  | 
| 1890 1894 | 
             
            TagLib::String ruby_string_to_taglib_string(VALUE s) {
         | 
| 1891 | 
            -
               | 
| 1895 | 
            +
              if (NIL_P(s)) {
         | 
| 1896 | 
            +
                return TagLib::String::null;
         | 
| 1897 | 
            +
              } else {
         | 
| 1898 | 
            +
                return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
         | 
| 1899 | 
            +
              }
         | 
| 1892 1900 | 
             
            }
         | 
| 1893 1901 |  | 
| 1894 1902 | 
             
            VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
         | 
| @@ -1902,6 +1910,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) { | |
| 1902 1910 |  | 
| 1903 1911 | 
             
            TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
         | 
| 1904 1912 | 
             
              TagLib::StringList result = TagLib::StringList();
         | 
| 1913 | 
            +
              if (NIL_P(ary)) {
         | 
| 1914 | 
            +
                return result;
         | 
| 1915 | 
            +
              }
         | 
| 1905 1916 | 
             
              for (long i = 0; i < RARRAY_LEN(ary); i++) {
         | 
| 1906 1917 | 
             
                VALUE e = RARRAY_PTR(ary)[i];
         | 
| 1907 1918 | 
             
                TagLib::String s = ruby_string_to_taglib_string(e);
         | 
| @@ -2009,7 +2020,7 @@ SWIG_ruby_failed(void) | |
| 2009 2020 | 
             
            } 
         | 
| 2010 2021 |  | 
| 2011 2022 |  | 
| 2012 | 
            -
            /*@SWIG:/usr/local/share/swig/2.0. | 
| 2023 | 
            +
            /*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
         | 
| 2013 2024 | 
             
            SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
         | 
| 2014 2025 | 
             
            {
         | 
| 2015 2026 | 
             
              VALUE obj = args[0];
         | 
| @@ -2065,7 +2076,7 @@ SWIG_From_unsigned_SS_int  (unsigned int value) | |
| 2065 2076 | 
             
            }
         | 
| 2066 2077 |  | 
| 2067 2078 |  | 
| 2068 | 
            -
            /*@SWIG:/usr/local/share/swig/2.0. | 
| 2079 | 
            +
            /*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
         | 
| 2069 2080 | 
             
            SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args)
         | 
| 2070 2081 | 
             
            {
         | 
| 2071 2082 | 
             
              VALUE obj = args[0];
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            /* ----------------------------------------------------------------------------
         | 
| 2 2 | 
             
             * This file was automatically generated by SWIG (http://www.swig.org).
         | 
| 3 | 
            -
             * Version 2.0. | 
| 3 | 
            +
             * Version 2.0.8
         | 
| 4 4 | 
             
             * 
         | 
| 5 5 | 
             
             * This file is not intended to be easily readable and contains a number of 
         | 
| 6 6 | 
             
             * coding conventions designed to improve portability and efficiency. Do not make
         | 
| @@ -1861,7 +1861,7 @@ static VALUE mID3v2; | |
| 1861 1861 | 
             
            #define SWIG_RUBY_THREAD_END_BLOCK
         | 
| 1862 1862 |  | 
| 1863 1863 |  | 
| 1864 | 
            -
            #define SWIGVERSION  | 
| 1864 | 
            +
            #define SWIGVERSION 0x020008 
         | 
| 1865 1865 | 
             
            #define SWIG_VERSION SWIGVERSION
         | 
| 1866 1866 |  | 
| 1867 1867 |  | 
| @@ -1911,7 +1911,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) { | |
| 1911 1911 | 
             
            }
         | 
| 1912 1912 |  | 
| 1913 1913 | 
             
            TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
         | 
| 1914 | 
            -
               | 
| 1914 | 
            +
              if (NIL_P(s)) {
         | 
| 1915 | 
            +
                return TagLib::ByteVector::null;
         | 
| 1916 | 
            +
              } else {
         | 
| 1917 | 
            +
                return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
         | 
| 1918 | 
            +
              }
         | 
| 1915 1919 | 
             
            }
         | 
| 1916 1920 |  | 
| 1917 1921 | 
             
            VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
         | 
| @@ -1925,7 +1929,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) { | |
| 1925 1929 | 
             
            }
         | 
| 1926 1930 |  | 
| 1927 1931 | 
             
            TagLib::String ruby_string_to_taglib_string(VALUE s) {
         | 
| 1928 | 
            -
               | 
| 1932 | 
            +
              if (NIL_P(s)) {
         | 
| 1933 | 
            +
                return TagLib::String::null;
         | 
| 1934 | 
            +
              } else {
         | 
| 1935 | 
            +
                return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
         | 
| 1936 | 
            +
              }
         | 
| 1929 1937 | 
             
            }
         | 
| 1930 1938 |  | 
| 1931 1939 | 
             
            VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
         | 
| @@ -1939,6 +1947,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) { | |
| 1939 1947 |  | 
| 1940 1948 | 
             
            TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
         | 
| 1941 1949 | 
             
              TagLib::StringList result = TagLib::StringList();
         | 
| 1950 | 
            +
              if (NIL_P(ary)) {
         | 
| 1951 | 
            +
                return result;
         | 
| 1952 | 
            +
              }
         | 
| 1942 1953 | 
             
              for (long i = 0; i < RARRAY_LEN(ary); i++) {
         | 
| 1943 1954 | 
             
                VALUE e = RARRAY_PTR(ary)[i];
         | 
| 1944 1955 | 
             
                TagLib::String s = ruby_string_to_taglib_string(e);
         | 
| @@ -2062,7 +2073,7 @@ SWIG_ruby_failed(void) | |
| 2062 2073 | 
             
            } 
         | 
| 2063 2074 |  | 
| 2064 2075 |  | 
| 2065 | 
            -
            /*@SWIG:/usr/local/share/swig/2.0. | 
| 2076 | 
            +
            /*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
         | 
| 2066 2077 | 
             
            SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args)
         | 
| 2067 2078 | 
             
            {
         | 
| 2068 2079 | 
             
              VALUE obj = args[0];
         | 
| @@ -2161,7 +2172,7 @@ SWIG_AsCharPtrAndSize(VALUE obj, char** cptr, size_t* psize, int *alloc) | |
| 2161 2172 |  | 
| 2162 2173 |  | 
| 2163 2174 |  | 
| 2164 | 
            -
            /*@SWIG:/usr/local/share/swig/2.0. | 
| 2175 | 
            +
            /*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
         | 
| 2165 2176 | 
             
            SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
         | 
| 2166 2177 | 
             
            {
         | 
| 2167 2178 | 
             
              VALUE obj = args[0];
         | 
| @@ -2306,7 +2317,7 @@ SWIG_From_float  (float value) | |
| 2306 2317 | 
             
            #include <float.h>
         | 
| 2307 2318 |  | 
| 2308 2319 |  | 
| 2309 | 
            -
            /*@SWIG:/usr/local/share/swig/2.0. | 
| 2320 | 
            +
            /*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
         | 
| 2310 2321 | 
             
            SWIGINTERN VALUE SWIG_AUX_NUM2DBL(VALUE *args)
         | 
| 2311 2322 | 
             
            {
         | 
| 2312 2323 | 
             
              VALUE obj = args[0];
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            /* ----------------------------------------------------------------------------
         | 
| 2 2 | 
             
             * This file was automatically generated by SWIG (http://www.swig.org).
         | 
| 3 | 
            -
             * Version 2.0. | 
| 3 | 
            +
             * Version 2.0.8
         | 
| 4 4 | 
             
             * 
         | 
| 5 5 | 
             
             * This file is not intended to be easily readable and contains a number of 
         | 
| 6 6 | 
             
             * coding conventions designed to improve portability and efficiency. Do not make
         | 
| @@ -1848,7 +1848,7 @@ static VALUE mMPEG; | |
| 1848 1848 | 
             
            #define SWIG_RUBY_THREAD_END_BLOCK
         | 
| 1849 1849 |  | 
| 1850 1850 |  | 
| 1851 | 
            -
            #define SWIGVERSION  | 
| 1851 | 
            +
            #define SWIGVERSION 0x020008 
         | 
| 1852 1852 | 
             
            #define SWIG_VERSION SWIGVERSION
         | 
| 1853 1853 |  | 
| 1854 1854 |  | 
| @@ -1889,7 +1889,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) { | |
| 1889 1889 | 
             
            }
         | 
| 1890 1890 |  | 
| 1891 1891 | 
             
            TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
         | 
| 1892 | 
            -
               | 
| 1892 | 
            +
              if (NIL_P(s)) {
         | 
| 1893 | 
            +
                return TagLib::ByteVector::null;
         | 
| 1894 | 
            +
              } else {
         | 
| 1895 | 
            +
                return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
         | 
| 1896 | 
            +
              }
         | 
| 1893 1897 | 
             
            }
         | 
| 1894 1898 |  | 
| 1895 1899 | 
             
            VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
         | 
| @@ -1903,7 +1907,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) { | |
| 1903 1907 | 
             
            }
         | 
| 1904 1908 |  | 
| 1905 1909 | 
             
            TagLib::String ruby_string_to_taglib_string(VALUE s) {
         | 
| 1906 | 
            -
               | 
| 1910 | 
            +
              if (NIL_P(s)) {
         | 
| 1911 | 
            +
                return TagLib::String::null;
         | 
| 1912 | 
            +
              } else {
         | 
| 1913 | 
            +
                return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
         | 
| 1914 | 
            +
              }
         | 
| 1907 1915 | 
             
            }
         | 
| 1908 1916 |  | 
| 1909 1917 | 
             
            VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
         | 
| @@ -1917,6 +1925,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) { | |
| 1917 1925 |  | 
| 1918 1926 | 
             
            TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
         | 
| 1919 1927 | 
             
              TagLib::StringList result = TagLib::StringList();
         | 
| 1928 | 
            +
              if (NIL_P(ary)) {
         | 
| 1929 | 
            +
                return result;
         | 
| 1930 | 
            +
              }
         | 
| 1920 1931 | 
             
              for (long i = 0; i < RARRAY_LEN(ary); i++) {
         | 
| 1921 1932 | 
             
                VALUE e = RARRAY_PTR(ary)[i];
         | 
| 1922 1933 | 
             
                TagLib::String s = ruby_string_to_taglib_string(e);
         | 
| @@ -2058,7 +2069,7 @@ SWIG_ruby_failed(void) | |
| 2058 2069 | 
             
            } 
         | 
| 2059 2070 |  | 
| 2060 2071 |  | 
| 2061 | 
            -
            /*@SWIG:/usr/local/share/swig/2.0. | 
| 2072 | 
            +
            /*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
         | 
| 2062 2073 | 
             
            SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
         | 
| 2063 2074 | 
             
            {
         | 
| 2064 2075 | 
             
              VALUE obj = args[0];
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            /* ----------------------------------------------------------------------------
         | 
| 2 2 | 
             
             * This file was automatically generated by SWIG (http://www.swig.org).
         | 
| 3 | 
            -
             * Version 2.0. | 
| 3 | 
            +
             * Version 2.0.8
         | 
| 4 4 | 
             
             * 
         | 
| 5 5 | 
             
             * This file is not intended to be easily readable and contains a number of 
         | 
| 6 6 | 
             
             * coding conventions designed to improve portability and efficiency. Do not make
         | 
| @@ -1840,7 +1840,7 @@ static VALUE mOgg; | |
| 1840 1840 | 
             
            #define SWIG_RUBY_THREAD_END_BLOCK
         | 
| 1841 1841 |  | 
| 1842 1842 |  | 
| 1843 | 
            -
            #define SWIGVERSION  | 
| 1843 | 
            +
            #define SWIGVERSION 0x020008 
         | 
| 1844 1844 | 
             
            #define SWIG_VERSION SWIGVERSION
         | 
| 1845 1845 |  | 
| 1846 1846 |  | 
| @@ -1878,7 +1878,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) { | |
| 1878 1878 | 
             
            }
         | 
| 1879 1879 |  | 
| 1880 1880 | 
             
            TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
         | 
| 1881 | 
            -
               | 
| 1881 | 
            +
              if (NIL_P(s)) {
         | 
| 1882 | 
            +
                return TagLib::ByteVector::null;
         | 
| 1883 | 
            +
              } else {
         | 
| 1884 | 
            +
                return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
         | 
| 1885 | 
            +
              }
         | 
| 1882 1886 | 
             
            }
         | 
| 1883 1887 |  | 
| 1884 1888 | 
             
            VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
         | 
| @@ -1892,7 +1896,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) { | |
| 1892 1896 | 
             
            }
         | 
| 1893 1897 |  | 
| 1894 1898 | 
             
            TagLib::String ruby_string_to_taglib_string(VALUE s) {
         | 
| 1895 | 
            -
               | 
| 1899 | 
            +
              if (NIL_P(s)) {
         | 
| 1900 | 
            +
                return TagLib::String::null;
         | 
| 1901 | 
            +
              } else {
         | 
| 1902 | 
            +
                return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
         | 
| 1903 | 
            +
              }
         | 
| 1896 1904 | 
             
            }
         | 
| 1897 1905 |  | 
| 1898 1906 | 
             
            VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
         | 
| @@ -1906,6 +1914,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) { | |
| 1906 1914 |  | 
| 1907 1915 | 
             
            TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
         | 
| 1908 1916 | 
             
              TagLib::StringList result = TagLib::StringList();
         | 
| 1917 | 
            +
              if (NIL_P(ary)) {
         | 
| 1918 | 
            +
                return result;
         | 
| 1919 | 
            +
              }
         | 
| 1909 1920 | 
             
              for (long i = 0; i < RARRAY_LEN(ary); i++) {
         | 
| 1910 1921 | 
             
                VALUE e = RARRAY_PTR(ary)[i];
         | 
| 1911 1922 | 
             
                TagLib::String s = ruby_string_to_taglib_string(e);
         | 
| @@ -1969,7 +1980,7 @@ SWIG_ruby_failed(void) | |
| 1969 1980 | 
             
            } 
         | 
| 1970 1981 |  | 
| 1971 1982 |  | 
| 1972 | 
            -
            /*@SWIG:/usr/local/share/swig/2.0. | 
| 1983 | 
            +
            /*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
         | 
| 1973 1984 | 
             
            SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args)
         | 
| 1974 1985 | 
             
            {
         | 
| 1975 1986 | 
             
              VALUE obj = args[0];
         | 
| @@ -2092,7 +2103,7 @@ SWIG_From_unsigned_SS_int  (unsigned int value) | |
| 2092 2103 | 
             
            }
         | 
| 2093 2104 |  | 
| 2094 2105 |  | 
| 2095 | 
            -
            /*@SWIG:/usr/local/share/swig/2.0. | 
| 2106 | 
            +
            /*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
         | 
| 2096 2107 | 
             
            SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
         | 
| 2097 2108 | 
             
            {
         | 
| 2098 2109 | 
             
              VALUE obj = args[0];
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            /* ----------------------------------------------------------------------------
         | 
| 2 2 | 
             
             * This file was automatically generated by SWIG (http://www.swig.org).
         | 
| 3 | 
            -
             * Version 2.0. | 
| 3 | 
            +
             * Version 2.0.8
         | 
| 4 4 | 
             
             * 
         | 
| 5 5 | 
             
             * This file is not intended to be easily readable and contains a number of 
         | 
| 6 6 | 
             
             * coding conventions designed to improve portability and efficiency. Do not make
         | 
| @@ -1844,7 +1844,7 @@ static VALUE mVorbis; | |
| 1844 1844 | 
             
            #define SWIG_RUBY_THREAD_END_BLOCK
         | 
| 1845 1845 |  | 
| 1846 1846 |  | 
| 1847 | 
            -
            #define SWIGVERSION  | 
| 1847 | 
            +
            #define SWIGVERSION 0x020008 
         | 
| 1848 1848 | 
             
            #define SWIG_VERSION SWIGVERSION
         | 
| 1849 1849 |  | 
| 1850 1850 |  | 
| @@ -1882,7 +1882,11 @@ VALUE taglib_bytevector_to_ruby_string(const TagLib::ByteVector &byteVector) { | |
| 1882 1882 | 
             
            }
         | 
| 1883 1883 |  | 
| 1884 1884 | 
             
            TagLib::ByteVector ruby_string_to_taglib_bytevector(VALUE s) {
         | 
| 1885 | 
            -
               | 
| 1885 | 
            +
              if (NIL_P(s)) {
         | 
| 1886 | 
            +
                return TagLib::ByteVector::null;
         | 
| 1887 | 
            +
              } else {
         | 
| 1888 | 
            +
                return TagLib::ByteVector(RSTRING_PTR(s), RSTRING_LEN(s));
         | 
| 1889 | 
            +
              }
         | 
| 1886 1890 | 
             
            }
         | 
| 1887 1891 |  | 
| 1888 1892 | 
             
            VALUE taglib_string_to_ruby_string(const TagLib::String & string) {
         | 
| @@ -1896,7 +1900,11 @@ VALUE taglib_string_to_ruby_string(const TagLib::String & string) { | |
| 1896 1900 | 
             
            }
         | 
| 1897 1901 |  | 
| 1898 1902 | 
             
            TagLib::String ruby_string_to_taglib_string(VALUE s) {
         | 
| 1899 | 
            -
               | 
| 1903 | 
            +
              if (NIL_P(s)) {
         | 
| 1904 | 
            +
                return TagLib::String::null;
         | 
| 1905 | 
            +
              } else {
         | 
| 1906 | 
            +
                return TagLib::String(RSTRING_PTR(CONVERT_TO_UTF8(s)), TagLib::String::UTF8);
         | 
| 1907 | 
            +
              }
         | 
| 1900 1908 | 
             
            }
         | 
| 1901 1909 |  | 
| 1902 1910 | 
             
            VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) {
         | 
| @@ -1910,6 +1918,9 @@ VALUE taglib_string_list_to_ruby_array(const TagLib::StringList & list) { | |
| 1910 1918 |  | 
| 1911 1919 | 
             
            TagLib::StringList ruby_array_to_taglib_string_list(VALUE ary) {
         | 
| 1912 1920 | 
             
              TagLib::StringList result = TagLib::StringList();
         | 
| 1921 | 
            +
              if (NIL_P(ary)) {
         | 
| 1922 | 
            +
                return result;
         | 
| 1923 | 
            +
              }
         | 
| 1913 1924 | 
             
              for (long i = 0; i < RARRAY_LEN(ary); i++) {
         | 
| 1914 1925 | 
             
                VALUE e = RARRAY_PTR(ary)[i];
         | 
| 1915 1926 | 
             
                TagLib::String s = ruby_string_to_taglib_string(e);
         | 
| @@ -1973,7 +1984,7 @@ SWIG_ruby_failed(void) | |
| 1973 1984 | 
             
            } 
         | 
| 1974 1985 |  | 
| 1975 1986 |  | 
| 1976 | 
            -
            /*@SWIG:/usr/local/share/swig/2.0. | 
| 1987 | 
            +
            /*@SWIG:/usr/local/share/swig/2.0.8/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
         | 
| 1977 1988 | 
             
            SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
         | 
| 1978 1989 | 
             
            {
         | 
| 1979 1990 | 
             
              VALUE obj = args[0];
         | 
    
        data/lib/libtag.dll
    CHANGED
    
    | Binary file | 
    
        data/lib/taglib/version.rb
    CHANGED
    
    
    
        data/lib/taglib_base.so
    CHANGED
    
    | Binary file | 
    
        data/lib/taglib_flac.so
    CHANGED
    
    | Binary file | 
    
        data/lib/taglib_id3v1.so
    CHANGED
    
    | Binary file | 
    
        data/lib/taglib_id3v2.so
    CHANGED
    
    | Binary file | 
    
        data/lib/taglib_mpeg.so
    CHANGED
    
    | Binary file | 
    
        data/lib/taglib_ogg.so
    CHANGED
    
    | Binary file | 
    
        data/lib/taglib_vorbis.so
    CHANGED
    
    | Binary file | 
    
        data/tasks/ext.rake
    CHANGED
    
    | @@ -7,9 +7,10 @@ tmp = "#{Dir.pwd}/tmp/#{plat}" | |
| 7 7 | 
             
            toolchain_file = "#{Dir.pwd}/ext/win.cmake"
         | 
| 8 8 | 
             
            install_dir = "#{tmp}/install"
         | 
| 9 9 | 
             
            install_dll = "#{install_dir}/bin/libtag.dll"
         | 
| 10 | 
            -
             | 
| 10 | 
            +
            ldflags = "-static-libgcc -static-libstdc++"
         | 
| 11 | 
            +
            $cross_config_options = [%(--with-opt-dir=#{install_dir} --with-ldflags="#{ldflags}")]
         | 
| 11 12 |  | 
| 12 | 
            -
            taglib_version = '1.7. | 
| 13 | 
            +
            taglib_version = '1.7.2'
         | 
| 13 14 | 
             
            taglib = "taglib-#{taglib_version}"
         | 
| 14 15 | 
             
            taglib_url = "http://cloud.github.com/downloads/taglib/taglib/#{taglib}.tar.gz"
         | 
| 15 16 | 
             
            # WITH_MP4, WITH_ASF only needed with taglib 1.7, will be default in 1.8
         | 
| @@ -57,8 +58,8 @@ task :taglib => [install_dll] | |
| 57 58 |  | 
| 58 59 | 
             
            file install_dll => ["#{tmp}/#{taglib}"] do
         | 
| 59 60 | 
             
              chdir "#{tmp}/#{taglib}" do
         | 
| 60 | 
            -
                sh  | 
| 61 | 
            -
                sh "make"
         | 
| 61 | 
            +
                sh %(cmake -DCMAKE_INSTALL_PREFIX=#{install_dir} -DCMAKE_TOOLCHAIN_FILE=#{toolchain_file} -DCMAKE_SHARED_LINKER_FLAGS="#{ldflags}" #{taglib_options})
         | 
| 62 | 
            +
                sh "make VERBOSE=1"
         | 
| 62 63 | 
             
                sh "make install"
         | 
| 63 64 | 
             
              end
         | 
| 64 65 | 
             
            end
         | 
    
        data/test/id3v2_frames_test.rb
    CHANGED
    
    | @@ -41,6 +41,10 @@ class TestID3v2Frames < Test::Unit::TestCase | |
| 41 41 | 
             
                  assert_equal TagLib::ID3v2::UserTextIdentificationFrame, txxx.class
         | 
| 42 42 | 
             
                end
         | 
| 43 43 |  | 
| 44 | 
            +
                should "not fail for nil String" do
         | 
| 45 | 
            +
                  assert_equal [], @tag.frame_list(nil)
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
             | 
| 44 48 | 
             
                should "be removable" do
         | 
| 45 49 | 
             
                  assert_equal 11, @tag.frame_list.size
         | 
| 46 50 | 
             
                  tit2 = @tag.frame_list('TIT2').first
         | 
    
        data/test/id3v2_write_test.rb
    CHANGED
    
    | @@ -8,6 +8,12 @@ class TestID3v2Write < Test::Unit::TestCase | |
| 8 8 | 
             
              OUTPUT_FILE = "test/data/output.mp3"
         | 
| 9 9 | 
             
              PICTURE_FILE = "test/data/globe_east_540.jpg"
         | 
| 10 10 |  | 
| 11 | 
            +
              def reloaded
         | 
| 12 | 
            +
                TagLib::MPEG::File.open(OUTPUT_FILE, false) do |file|
         | 
| 13 | 
            +
                  yield file
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
             | 
| 11 17 | 
             
              context "TagLib::MPEG::File" do
         | 
| 12 18 | 
             
                setup do
         | 
| 13 19 | 
             
                  FileUtils.cp SAMPLE_FILE, OUTPUT_FILE
         | 
| @@ -19,6 +25,39 @@ class TestID3v2Write < Test::Unit::TestCase | |
| 19 25 | 
             
                  success = @file.strip
         | 
| 20 26 | 
             
                  assert success
         | 
| 21 27 | 
             
                  assert_nil @file.id3v2_tag
         | 
| 28 | 
            +
                  @file.close
         | 
| 29 | 
            +
                  @file = nil
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                  reloaded do |file|
         | 
| 32 | 
            +
                    assert_equal true, file.id3v1_tag.empty?
         | 
| 33 | 
            +
                    assert_equal true, file.id3v2_tag.empty?
         | 
| 34 | 
            +
                  end
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                should "be able to save only ID3v2 tag" do
         | 
| 38 | 
            +
                  assert_not_nil @file.id3v2_tag
         | 
| 39 | 
            +
                  assert_not_nil @file.id3v1_tag
         | 
| 40 | 
            +
                  @file.save(TagLib::MPEG::File::ID3v2)
         | 
| 41 | 
            +
                  @file.close
         | 
| 42 | 
            +
                  @file = nil
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                  reloaded do |file|
         | 
| 45 | 
            +
                    id3v1_tag = file.id3v1_tag
         | 
| 46 | 
            +
                    id3v2_tag = file.id3v2_tag
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                    # TagLib always creates the tags
         | 
| 49 | 
            +
                    assert_not_nil id3v1_tag
         | 
| 50 | 
            +
                    assert_not_nil id3v2_tag
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                    assert_equal true, file.id3v1_tag.empty?
         | 
| 53 | 
            +
                    assert_equal false, file.id3v2_tag.empty?
         | 
| 54 | 
            +
                  end
         | 
| 55 | 
            +
                end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                should "be able to set fields to nil" do
         | 
| 58 | 
            +
                  tag = @file.id3v2_tag
         | 
| 59 | 
            +
                  tag.title = nil
         | 
| 60 | 
            +
                  assert_equal [], tag.frame_list('TIT2')
         | 
| 22 61 | 
             
                end
         | 
| 23 62 |  | 
| 24 63 | 
             
                context "with a fresh tag" do
         | 
| @@ -72,6 +111,12 @@ class TestID3v2Write < Test::Unit::TestCase | |
| 72 111 | 
             
                    assert success
         | 
| 73 112 | 
             
                  end
         | 
| 74 113 |  | 
| 114 | 
            +
                  should "not fail when field_list is nil" do
         | 
| 115 | 
            +
                    tit2 = TagLib::ID3v2::TextIdentificationFrame.new("TIT2", TagLib::String::UTF8)
         | 
| 116 | 
            +
                    tit2.field_list = nil
         | 
| 117 | 
            +
                    assert_equal [], tit2.field_list
         | 
| 118 | 
            +
                  end
         | 
| 119 | 
            +
             | 
| 75 120 | 
             
                  if HAVE_ENCODING
         | 
| 76 121 | 
             
                    should "be able to set unicode fields" do
         | 
| 77 122 | 
             
                      # Hello, Unicode Snowman (not in Latin1)
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: taglib-ruby
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.5. | 
| 4 | 
            +
              version: 0.5.1
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: x86-mingw32
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012- | 
| 12 | 
            +
            date: 2012-06-16 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: bundler
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &20593060 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ~>
         | 
| @@ -21,10 +21,10 @@ dependencies: | |
| 21 21 | 
             
                    version: 1.1.0
         | 
| 22 22 | 
             
              type: :development
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *20593060
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: rake-compiler
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &20592500 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ~>
         | 
| @@ -32,10 +32,10 @@ dependencies: | |
| 32 32 | 
             
                    version: '0.8'
         | 
| 33 33 | 
             
              type: :development
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *20592500
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: shoulda-context
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &20592000 !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                none: false
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 41 | 
             
                - - ~>
         | 
| @@ -43,10 +43,10 @@ dependencies: | |
| 43 43 | 
             
                    version: '1.0'
         | 
| 44 44 | 
             
              type: :development
         | 
| 45 45 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 46 | 
            +
              version_requirements: *20592000
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: yard
         | 
| 49 | 
            -
              requirement: & | 
| 49 | 
            +
              requirement: &20591280 !ruby/object:Gem::Requirement
         | 
| 50 50 | 
             
                none: false
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - ~>
         | 
| @@ -54,7 +54,7 @@ dependencies: | |
| 54 54 | 
             
                    version: '0.7'
         | 
| 55 55 | 
             
              type: :development
         | 
| 56 56 | 
             
              prerelease: false
         | 
| 57 | 
            -
              version_requirements: * | 
| 57 | 
            +
              version_requirements: *20591280
         | 
| 58 58 | 
             
            description: ! 'Ruby interface for the taglib C++ library, for reading and writing
         | 
| 59 59 |  | 
| 60 60 | 
             
              meta-data (tags) of many audio formats.
         | 
| @@ -183,7 +183,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 183 183 | 
             
                  version: '0'
         | 
| 184 184 | 
             
                  segments:
         | 
| 185 185 | 
             
                  - 0
         | 
| 186 | 
            -
                  hash: - | 
| 186 | 
            +
                  hash: -2354278842585131059
         | 
| 187 187 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 188 188 | 
             
              none: false
         | 
| 189 189 | 
             
              requirements:
         | 
| @@ -192,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 192 192 | 
             
                  version: '0'
         | 
| 193 193 | 
             
                  segments:
         | 
| 194 194 | 
             
                  - 0
         | 
| 195 | 
            -
                  hash: - | 
| 195 | 
            +
                  hash: -2354278842585131059
         | 
| 196 196 | 
             
            requirements:
         | 
| 197 197 | 
             
            - taglib (libtag1-dev in Debian/Ubuntu, taglib-devel in Fedora/RHEL)
         | 
| 198 198 | 
             
            rubyforge_project: 
         |