module Spruz::FileBinary
Attributes
default_options[RW]
Default options can be queried/set via this hash.
Public Class Methods
included(modul)
click to toggle source
Calls superclass method
# File lib/spruz/file_binary.rb, line 62 def self.included(modul) modul.instance_eval do extend ClassMethods end super end
Public Instance Methods
ascii?(options = {})
click to toggle source
binary?(options = {})
click to toggle source
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/spruz/file_binary.rb, line 37 def binary?(options = {}) options |= FileBinary.default_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