def checksum_file(source, *args, **options)
      mode     = args.size.zero? ? 'sha256' : args.pop
      digester = DigestFile.new(source, mode, options)
      digester.call unless options[:noop]
    end
def checksum_file(source, *args, **options)
      mode     = args.size.zero? ? 'sha256' : args.pop
      digester = DigestFile.new(source, mode, options)
      digester.call unless options[:noop]
    end
Create checksum for a file, io or string objects

 @param [File, IO, String, Pathname] source
   the source to generate checksum for
 @param [String] mode
 @param [Hash[Symbol]] options
 @option options [String] :noop
   No operation

 @example
   checksum_file('/path/to/file')

 @example
   checksum_file('Some string content', 'md5')

 @return [String]
   the generated hex value

 @api public