Sha256: 0d7163c84dd7cc4bee4ceec0c8f36e03767632ad1646d923e7a559df55b9128f
Contents?: true
Size: 1.15 KB
Versions: 2
Compression:
Stored size: 1.15 KB
Contents
module Magic class Database # Creates an instance of +Magic::Database+ using given flags def initialize(*flags) open(*flags) load end # Opens magic db using given flags def open(*flags) magic_flags = flags.inject(0) { |acc, flag| acc |= Constants::Flag.const_get(flag.to_s.upcase) } @magic_set = Api.magic_open(magic_flags) end # Closes the database def close Api.magic_close(@magic_set) end # Loads given database file (or default if +nil+ given) def load(database = nil) Api.magic_load(@magic_set, database) end # Determine type of a file at given path def file(filename) result = Api.magic_file(@magic_set, filename.to_s) if result.null? raise Exception, error else result.get_string(0) end end # Determine type of given string def buffer(string) result = Api.magic_buffer(@magic_set, string, string.bytesize) if result.null? raise Exception, error else result.get_string(0) end end # Returns last error occured def error Api.magic_error(@magic_set) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
magic-0.1.1 | lib/magic/database.rb |
magic-0.1.0 | lib/magic/database.rb |