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..67b83c3 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 INT2FIX(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/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 582f6be..c296bce 100644 --- a/test/regress.rb +++ b/test/regress.rb @@ -70,4 +70,11 @@ 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) + assert_equal(fm_version > 400, true) + end end