class Magic

Constants

APPLE
CHECK
COMPRESS
CONTINUE
DEBUG
DEVICES
ERROR
Error
MIME
MIME_ENCODING
MIME_TYPE
NONE
NO_CHECK_APPTYPE
NO_CHECK_CDF
NO_CHECK_COMPRESS
NO_CHECK_ELF
NO_CHECK_ENCODING
NO_CHECK_SOFT
NO_CHECK_TAR
NO_CHECK_TEXT
NO_CHECK_TOKENS
PRESERVE_ATIME
RAW
VERSION

Attributes

flags[R]
path[R]

Public Class Methods

compile(path) click to toggle source
# File lib/magic.rb, line 45
def self.compile(path)
  cookie = magic_open(NONE)

  unless magic_compile(cookie, path) == 0
    raise Error, "failed compile: #{magic_error(cookie)}"
  end

  magic_close(cookie)

  true
end
new(flags = NONE, path = nil) click to toggle source
# File lib/magic.rb, line 57
def initialize(flags = NONE, path = nil)
  @flags = flags
  @path = path

  unless @cookie = magic_open(@flags)
    raise Error, "failed to initialize magic cookie"
  end

  if magic_load(@cookie, @path) != 0
    raise Error, "failed to load database: #{magic_error(@cookie)}"
  end

  begin
    ObjectSpace.define_finalizer(self){ close }
  rescue
  end
end

Public Instance Methods

buffer(string) click to toggle source
# File lib/magic.rb, line 83
def buffer(string)
  input = string.to_str

  if input.respond_to?(:bytesize)
    magic_buffer(@cookie, input, input.bytesize)
  else
    magic_buffer(@cookie, input, input.size)
  end
end
close() click to toggle source
# File lib/magic.rb, line 109
def close
  magic_close(@cookie) if @cookie
  @cookie = nil
end
file(path) click to toggle source
# File lib/magic.rb, line 75
def file(path)
  unless msg = magic_file(@cookie, path)
    raise Error, "failed lookup: #{magic_error(@cookie)}"
  end

  msg
end
flags=(flags) click to toggle source
# File lib/magic.rb, line 93
def flags=(flags)
  @flags = flags
  magic_setflags(@cookie, flags)
end
load(path = @path) click to toggle source
# File lib/magic.rb, line 102
def load(path = @path)
  unless magic_load(@cookie, path) == 0
    raise Error, "failed load: #{magic_error(@cookie)}"
  end
  @path = path
end
valid?(path = nil) click to toggle source
# File lib/magic.rb, line 98
def valid?(path = nil)
  magic_check(@cookie, path) == 0
end