From 1b303b1f74f7bc59555820817f9b60611a86ebf2 Mon Sep 17 00:00:00 2001 From: 545ch4 Date: Wed, 27 May 2015 09:18:28 +0200 Subject: [PATCH 1/2] Add version method Added version() instance method to get the version of the used libmagic. --- Rakefile | 6 +++--- filemagic.c | 6 ++++++ test/regress.rb | 6 ++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Rakefile b/Rakefile index c5dd389..66a71f5 100644 --- a/Rakefile +++ b/Rakefile @@ -1,8 +1,8 @@ require 'pathname' require 'rake' -require 'rake/gempackagetask' -require 'rake/rdoctask' +require 'rubygems/package_task' +require 'rdoc/task' require 'rake/testtask' gemspec = eval( File.read('ruby-filemagic.gemspec') ) @@ -49,7 +49,7 @@ task :install do end task :gem -Rake::GemPackageTask.new(gemspec) do |pkg| +Gem::PackageTask.new(gemspec) do |pkg| pkg.need_tar = true end diff --git a/filemagic.c b/filemagic.c index f94c888..a3c1e52 100644 --- a/filemagic.c +++ b/filemagic.c @@ -84,6 +84,11 @@ static VALUE magick_new(int argc, VALUE *argv, VALUE obj) return obj; } +static VALUE magick_version() { + return MAGIC_VERSION; +} + + /* Return a string describing file */ static VALUE magick_file(VALUE class, VALUE file) { @@ -142,6 +147,7 @@ void Init_filemagic() { rb_define_method(cFileMagic, "buffer", magick_buffer, 1); rb_define_method(cFileMagic, "check", magick_check, 1); rb_define_method(cFileMagic, "compile", magick_compile, 1); + rb_define_method(cFileMagic, "version", magick_version, 0); rb_define_attr(cFileMagic, "flags", 1, 1); rb_define_const(cFileMagic, "MAGIC_NONE", INT2FIX(MAGIC_NONE)); rb_define_const(cFileMagic, "MAGIC_DEBUG", INT2FIX(MAGIC_DEBUG)); diff --git a/test/regress.rb b/test/regress.rb index 582f6be..6d61072 100644 --- a/test/regress.rb +++ b/test/regress.rb @@ -70,4 +70,10 @@ def test_flags fm.flags = FileMagic::MAGIC_NONE assert_equal(FileMagic::MAGIC_NONE, fm.flags) end + + def test_version + fm = FileMagic.new(FileMagic::MAGIC_SYMLINK | FileMagic::MAGIC_MIME) + fm_version = fm.version + assert_not_nil(fm_version) + end end From afa7f8f5dacb5350919d52f3e85d577618a6c3a4 Mon Sep 17 00:00:00 2001 From: 545ch4 Date: Wed, 27 May 2015 09:30:00 +0200 Subject: [PATCH 2/2] Add version method (fix) Added version() instance method to get the version of the used libmagic. (Fixed: Use INT2FIX.) --- filemagic.c | 2 +- filemagic.rd | 2 ++ test/regress.rb | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/filemagic.c b/filemagic.c index a3c1e52..67b83c3 100644 --- a/filemagic.c +++ b/filemagic.c @@ -85,7 +85,7 @@ static VALUE magick_new(int argc, VALUE *argv, VALUE obj) } static VALUE magick_version() { - return MAGIC_VERSION; + return INT2FIX(MAGIC_VERSION); } diff --git a/filemagic.rd b/filemagic.rd index b8e0c09..87620fe 100644 --- a/filemagic.rd +++ b/filemagic.rd @@ -38,5 +38,7 @@ returns the instance flags (see "Constants" above). : flags=(flags) set the instance flags (see "Constants" above). +: version() + returns the libmagic version. : new(flags=MAGIC_NONE) create a new FileMagic instance. diff --git a/test/regress.rb b/test/regress.rb index 6d61072..c296bce 100644 --- a/test/regress.rb +++ b/test/regress.rb @@ -75,5 +75,6 @@ def test_version fm = FileMagic.new(FileMagic::MAGIC_SYMLINK | FileMagic::MAGIC_MIME) fm_version = fm.version assert_not_nil(fm_version) + assert_equal(fm_version > 400, true) end end