module Tins::FileBinary
Attributes
Default options can be queried/set via this hash.
Public Class Methods
Source
# File lib/tins/file_binary.rb, line 60 def self.included(modul) modul.instance_eval do extend ClassMethods end super end
Calls superclass method
Public Instance Methods
Source
# File lib/tins/file_binary.rb, line 53 def ascii?(options = {}) case binary?(options) when true then false when false then true end end
Returns true if FileBinary#binary?
returns false, false if FileBinary#binary?
returns true, and nil otherwise. For an explanation of options
, see FileBinary#binary?
.
Source
# 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_RE).to_f / data_size > options[:percentage_zeros] / 100.0 and return true data.count(Constants::BINARY_RE).to_f / data_size > options[:percentage_binary] / 100.0 ensure old_pos and seek old_pos, Constants::SEEK_SET 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 FileBinary.default_options
is used instead.