diff --git a/mimemagic-0.3.2.gem b/mimemagic-0.3.2.gem deleted file mode 100644 index b82b15a..0000000 Binary files a/mimemagic-0.3.2.gem and /dev/null differ diff --git a/mimemagic-0.4.3.gem b/mimemagic-0.4.3.gem new file mode 100644 index 0000000..aaa4175 Binary files /dev/null and b/mimemagic-0.4.3.gem differ diff --git a/rubygem-mimemagic-0.3.2-use-minitest-test.patch b/rubygem-mimemagic-0.3.2-use-minitest-test.patch deleted file mode 100644 index b751d26..0000000 --- a/rubygem-mimemagic-0.3.2-use-minitest-test.patch +++ /dev/null @@ -1,249 +0,0 @@ -diff --git a/test/mimemagic_test.rb b/test/mimemagic_test.rb -index 7ac11b0..e5465c9 100644 ---- a/test/mimemagic_test.rb -+++ b/test/mimemagic_test.rb -@@ -1,136 +1,155 @@ --require 'bacon' -+require 'minitest/autorun' - require 'mimemagic' - require 'stringio' - require 'forwardable' - --describe 'MimeMagic' do -- it 'should have type, mediatype and subtype' do -- MimeMagic.new('text/html').type.should.equal 'text/html' -- MimeMagic.new('text/html').mediatype.should.equal 'text' -- MimeMagic.new('text/html').subtype.should.equal 'html' -+class TestMimeMagic < Minitest::Test -+ # Do deep copy for constants of initial state. -+ INIT_EXTENSIONS = Marshal.load(Marshal.dump(MimeMagic::EXTENSIONS)) -+ INIT_TYPES = Marshal.load(Marshal.dump(MimeMagic::TYPES)) -+ INIT_MAGIC = Marshal.load(Marshal.dump(MimeMagic::MAGIC)) -+ -+ def setup -+ extentions = Marshal.load(Marshal.dump(INIT_EXTENSIONS)) -+ types = Marshal.load(Marshal.dump(INIT_TYPES)) -+ magic = Marshal.load(Marshal.dump(INIT_MAGIC)) -+ MimeMagic.send(:remove_const, :EXTENSIONS) if MimeMagic.const_defined?(:EXTENSIONS) -+ MimeMagic.send(:remove_const, :TYPES) if MimeMagic.const_defined?(:TYPES) -+ MimeMagic.send(:remove_const, :MAGIC) if MimeMagic.const_defined?(:MAGIC) -+ MimeMagic.const_set('EXTENSIONS', extentions) -+ MimeMagic.const_set('TYPES', types) -+ MimeMagic.const_set('MAGIC', magic) - end - -- it 'should have mediatype helpers' do -- MimeMagic.new('text/plain').should.be.text -- MimeMagic.new('text/html').should.be.text -- MimeMagic.new('application/xhtml+xml').should.be.text -- MimeMagic.new('application/octet-stream').should.not.be.text -- MimeMagic.new('image/png').should.not.be.text -- MimeMagic.new('image/png').should.be.image -- MimeMagic.new('video/ogg').should.be.video -- MimeMagic.new('audio/mpeg').should.be.audio -+ def test_have_type_mediatype_and_subtype -+ assert_equal 'text/html', MimeMagic.new('text/html').type -+ assert_equal 'text', MimeMagic.new('text/html').mediatype -+ assert_equal 'html', MimeMagic.new('text/html').subtype - end - -- it 'should have hierarchy' do -- MimeMagic.new('text/html').should.be.child_of 'text/plain' -- MimeMagic.new('text/x-java').should.be.child_of 'text/plain' -+ def test_have_mediatype_helpers -+ assert MimeMagic.new('text/plain').text? -+ assert MimeMagic.new('text/html').text? -+ assert MimeMagic.new('application/xhtml+xml').text? -+ refute MimeMagic.new('application/octet-stream').text? -+ refute MimeMagic.new('image/png').text? -+ assert MimeMagic.new('image/png').image? -+ assert MimeMagic.new('video/ogg').video? -+ assert MimeMagic.new('audio/mpeg').audio? - end - -- it 'should have extensions' do -- MimeMagic.new('text/html').extensions.should.equal %w(htm html) -+ def test_have_hierarchy -+ assert MimeMagic.new('text/html').child_of?('text/plain') -+ assert MimeMagic.new('text/x-java').child_of?('text/plain') - end - -- it 'should have comment' do -- MimeMagic.new('text/html').comment.should.equal 'HTML document' -+ def test_have_extensions -+ assert_equal %w(htm html), MimeMagic.new('text/html').extensions - end - -- it 'should recognize extensions' do -- MimeMagic.by_extension('.html').should.equal 'text/html' -- MimeMagic.by_extension('html').should.equal 'text/html' -- MimeMagic.by_extension(:html).should.equal 'text/html' -- MimeMagic.by_extension('rb').should.equal 'application/x-ruby' -- MimeMagic.by_extension('crazy').should.equal nil -- MimeMagic.by_extension('').should.equal nil -+ def test_have_comment -+ assert_equal 'HTML document', MimeMagic.new('text/html').comment - end - -- it 'should recognize by a path' do -- MimeMagic.by_path('/adsjkfa/kajsdfkadsf/kajsdfjasdf.html').should.equal 'text/html' -- MimeMagic.by_path('something.html').should.equal 'text/html' -- MimeMagic.by_path('wtf.rb').should.equal 'application/x-ruby' -- MimeMagic.by_path('where/am.html/crazy').should.equal nil -- MimeMagic.by_path('').should.equal nil -+ def test_recognize_extensions -+ assert_equal 'text/html', MimeMagic.by_extension('.html').to_s -+ assert_equal 'text/html', MimeMagic.by_extension('html').to_s -+ assert_equal 'text/html', MimeMagic.by_extension(:html).to_s -+ assert_equal 'application/x-ruby', MimeMagic.by_extension('rb').to_s -+ assert_nil MimeMagic.by_extension('crazy') -+ assert_nil MimeMagic.by_extension('') - end - -- it 'should recognize xlsx as zip without magic' do -+ def test_recognize_by_a_path -+ assert_equal 'text/html', MimeMagic.by_path('/adsjkfa/kajsdfkadsf/kajsdfjasdf.html').to_s -+ assert_equal 'text/html', MimeMagic.by_path('something.html').to_s -+ assert_equal 'application/x-ruby', MimeMagic.by_path('wtf.rb').to_s -+ assert_nil MimeMagic.by_path('where/am.html/crazy') -+ assert_nil MimeMagic.by_path('') -+ end -+ -+ def test_recognize_xlsx_as_zip_without_magic - file = "test/files/application.vnd.openxmlformats-officedocument.spreadsheetml.sheet" -- MimeMagic.by_magic(File.read(file)).should.equal "application/zip" -- MimeMagic.by_magic(File.open(file, 'rb')).should.equal "application/zip" -+ assert_equal "application/zip", MimeMagic.by_magic(File.read(file)).to_s -+ assert_equal "application/zip", MimeMagic.by_magic(File.open(file, 'rb')).to_s - end - -- it 'should recognize by magic' do -- require "mimemagic/overlay" -+ def test_recognize_by_magic -+ load "mimemagic/overlay.rb" - Dir['test/files/*'].each do |file| - mime = file[11..-1].sub('.', '/') -- MimeMagic.by_magic(File.read(file)).should.equal mime -- MimeMagic.by_magic(File.open(file, 'rb')).should.equal mime -+ assert_equal mime, MimeMagic.by_magic(File.read(file)).to_s -+ assert_equal mime, MimeMagic.by_magic(File.open(file, 'rb')).to_s - end - end - -- it 'should recognize all by magic' do -- require 'mimemagic/overlay' -+ def test_recognize_all_by_magic -+ load 'mimemagic/overlay.rb' - file = 'test/files/application.vnd.openxmlformats-officedocument.spreadsheetml.sheet' - mimes = %w[application/vnd.openxmlformats-officedocument.spreadsheetml.sheet application/zip] -- MimeMagic.all_by_magic(File.read(file)).map(&:type).should.equal mimes -+ assert_equal mimes, MimeMagic.all_by_magic(File.read(file)).map(&:type) - end - -- it 'should have add' do -+ def test_have_add - MimeMagic.add('application/mimemagic-test', - extensions: %w(ext1 ext2), - parents: 'application/xml', - comment: 'Comment') -- MimeMagic.by_extension('ext1').should.equal 'application/mimemagic-test' -- MimeMagic.by_extension('ext2').should.equal 'application/mimemagic-test' -- MimeMagic.by_extension('ext2').comment.should.equal 'Comment' -- MimeMagic.new('application/mimemagic-test').extensions.should.equal %w(ext1 ext2) -- MimeMagic.new('application/mimemagic-test').should.be.child_of 'text/plain' -+ assert_equal 'application/mimemagic-test', MimeMagic.by_extension('ext1').to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_extension('ext2').to_s -+ assert_equal 'Comment', MimeMagic.by_extension('ext2').comment -+ assert_equal %w(ext1 ext2), MimeMagic.new('application/mimemagic-test').extensions -+ assert MimeMagic.new('application/mimemagic-test').child_of?('text/plain') - end - -- it 'should process magic' do -+ def test_process_magic - MimeMagic.add('application/mimemagic-test', - magic: [[0, 'MAGICTEST'], # MAGICTEST at position 0 - [1, 'MAGICTEST'], # MAGICTEST at position 1 - [9..12, 'MAGICTEST'], # MAGICTEST starting at position 9 to 12 - [2, 'MAGICTEST', [[0, 'X'], [0, 'Y']]]]) # MAGICTEST at position 2 and (X at 0 or Y at 0) - -- MimeMagic.by_magic('MAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic('XMAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic(' MAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic('123456789MAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic('123456789ABMAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic('123456789ABCMAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic('123456789ABCDMAGICTEST').should.equal nil -- MimeMagic.by_magic('X MAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic('Y MAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic('Z MAGICTEST').should.equal nil -- -- MimeMagic.by_magic(StringIO.new 'MAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic(StringIO.new 'XMAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic(StringIO.new ' MAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic(StringIO.new '123456789MAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic(StringIO.new '123456789ABMAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic(StringIO.new '123456789ABCMAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic(StringIO.new '123456789ABCDMAGICTEST').should.equal nil -- MimeMagic.by_magic(StringIO.new 'X MAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic(StringIO.new 'Y MAGICTEST').should.equal 'application/mimemagic-test' -- MimeMagic.by_magic(StringIO.new 'Z MAGICTEST').should.equal nil -- end -- -- it 'should handle different file objects' do -- MimeMagic.add('application/mimemagic-test', magic: [[0, 'MAGICTEST']]) -- class IOObject -- def initialize -- @io = StringIO.new('MAGICTEST') -- end -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic('MAGICTEST').to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic('XMAGICTEST').to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic(' MAGICTEST').to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic('123456789MAGICTEST').to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic('123456789ABMAGICTEST').to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic('123456789ABCMAGICTEST').to_s -+ assert_nil MimeMagic.by_magic('123456789ABCDMAGICTEST') -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic('X MAGICTEST').to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic('Y MAGICTEST').to_s -+ assert_nil MimeMagic.by_magic('Z MAGICTEST') -+ -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic(StringIO.new 'MAGICTEST').to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic(StringIO.new 'XMAGICTEST').to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic(StringIO.new ' MAGICTEST').to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic(StringIO.new '123456789MAGICTEST').to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic(StringIO.new '123456789ABMAGICTEST').to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic(StringIO.new '123456789ABCMAGICTEST').to_s -+ assert_nil MimeMagic.by_magic(StringIO.new '123456789ABCDMAGICTEST') -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic(StringIO.new 'X MAGICTEST').to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic(StringIO.new 'Y MAGICTEST').to_s -+ assert_nil MimeMagic.by_magic(StringIO.new 'Z MAGICTEST') -+ end - -- extend Forwardable -- delegate [:read, :size, :rewind, :eof?, :close] => :@io -+ class IOObject -+ def initialize -+ @io = StringIO.new('MAGICTEST') - end -- MimeMagic.by_magic(IOObject.new).should.equal 'application/mimemagic-test' -- class StringableObject -- def to_s -- 'MAGICTEST' -- end -+ -+ extend Forwardable -+ delegate [:read, :size, :rewind, :eof?, :close] => :@io -+ end -+ -+ class StringableObject -+ def to_s -+ 'MAGICTEST' - end -- MimeMagic.by_magic(StringableObject.new).should.equal 'application/mimemagic-test' -+ end -+ -+ def test_handle_different_file_objects -+ MimeMagic.add('application/mimemagic-test', magic: [[0, 'MAGICTEST']]) -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic(IOObject.new).to_s -+ assert_equal 'application/mimemagic-test', MimeMagic.by_magic(StringableObject.new).to_s - end - end diff --git a/rubygem-mimemagic-0.3.2-use-minitest.patch b/rubygem-mimemagic-0.3.2-use-minitest.patch deleted file mode 100644 index 4bae9d4..0000000 --- a/rubygem-mimemagic-0.3.2-use-minitest.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/mimemagic.gemspec b/mimemagic.gemspec -index e0c3e35..1faffcb 100644 ---- a/mimemagic.gemspec -+++ b/mimemagic.gemspec -@@ -19,6 +19,6 @@ Gem::Specification.new do |s| - s.homepage = 'https://github.com/minad/mimemagic' - s.license = 'MIT' - -- s.add_development_dependency('bacon') -+ s.add_development_dependency('minitest', '~> 5.11') - s.add_development_dependency('rake') - end diff --git a/rubygem-mimemagic.spec b/rubygem-mimemagic.spec index a99351c..065f9ab 100644 --- a/rubygem-mimemagic.spec +++ b/rubygem-mimemagic.spec @@ -1,15 +1,15 @@ %global gem_name mimemagic Name: rubygem-%{gem_name} -Version: 0.3.2 +Version: 0.4.3 Release: 1 Summary: Fast mime detection by extension or content License: MIT URL: https://github.com/minad/mimemagic Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem -Patch0: rubygem-mimemagic-0.3.2-use-minitest.patch -Patch1: rubygem-mimemagic-0.3.2-use-minitest-test.patch BuildRequires: ruby(release) rubygems-devel ruby rubygem(minitest) +BuildRequires: rubygem-rake shared-mime-info BuildArch: noarch + %description Fast mime detection by extension or content in pure ruby (Uses freedesktop.org.xml shared-mime-info database). @@ -23,7 +23,6 @@ Documentation for %{name}. %prep %setup -q -n %{gem_name}-%{version} -%patch0 -p1 %build gem build ../%{gem_name}-%{version}.gemspec @@ -36,7 +35,6 @@ cp -a .%{gem_dir}/* \ %check pushd .%{gem_instdir} -cat "%{PATCH1}" | patch -p1 ruby -Ilib -e 'Dir.glob "./test/**/*_test.rb", &method(:require)' popd @@ -44,8 +42,8 @@ popd %dir %{gem_instdir} %exclude %{gem_instdir}/.* %license %{gem_instdir}/LICENSE +%{gem_instdir}/CHANGELOG.md %{gem_libdir} -%{gem_instdir}/script %exclude %{gem_cache} %{gem_spec} @@ -54,9 +52,12 @@ popd %{gem_instdir}/Gemfile %doc %{gem_instdir}/README.md %{gem_instdir}/Rakefile +%{gem_instdir}/ext/mimemagic/Rakefile %{gem_instdir}/mimemagic.gemspec -%{gem_instdir}/test %changelog +* Fri Jul 01 2022 xu_ping - 0.4.3-1 +- Upgrade 0.4.3 + * Wed Aug 19 2020 geyanan - 0.3.2-1 - package init