Default options can be queried/set via this hash.
# File lib/tins/file_binary.rb, line 60 def self.included(modul) modul.instance_eval do extend ClassMethods end super end
Returns true if this file is considered to be binary, false if it is not considered to be binary, and nil if it was empty.
A file is considered to be binary if the percentage of zeros exceeds
options[:percentage_zeros]
or the percentage of binary bytes
(8-th bit is 1) exceeds options[:percentage_binary]
in the
buffer of size options[:buffer_size]
that is checked
(beginning from offset options[:offset]
). If an option
isn't given the one from ::default_options is
used instead.
# File lib/tins/file_binary.rb, line 35 def binary?(options = {}) options = FileBinary.default_options.merge(options) old_pos = tell seek options[:offset], Constants::SEEK_SET data = read options[:buffer_size] !data or data.empty? and return nil data_size = data.size data.count(Constants::ZERO).to_f / data_size > options[:percentage_zeros] / 100.0 and return true data.count(Constants::BINARY).to_f / data_size > options[:percentage_binary] / 100.0 ensure old_pos and seek old_pos, Constants::SEEK_SET end