Sha256: 714d5ee8b465293676d6cb360fd9d4dbe9a177e730384b06c5e143dd660f3253

Contents?: true

Size: 1.18 KB

Versions: 4

Compression:

Stored size: 1.18 KB

Contents

# Copyright: Copyright (c) 2004  Nicolas Despres. All rights reserved.
# Author: Nicolas Despres  <polrop@lrde.epita.fr>.
# License: Gnu General Public License.

# $LastChangedBy: polrop $
# $Id: md5sum.rb 88 2005-01-09 21:11:26Z polrop $


require 'md5'


class File

  def self.md5sum(filename)
    md5 = Digest::MD5.new
    IO.foreach(filename) { |l| md5 << l }
    md5
  end

end # module File


class Pathname

  def md5sum
    md5 = Digest::MD5.new
    each_line { |l| md5 << l }
    md5
  end

end # class Pathname


#
# Unit test suite
#
if defined? TEST_MODE or __FILE__ == $0


require 'test/unit/ui/yaml/testrunner'
require 'mktemp'


class MD5SumTest < Test::Unit::TestCase

  #
  # Tests
  #
  def test_simple
    TempPath.new('src_md5sum') do |tmp_filename|
      assert(system("man printf > #{tmp_filename} 2> /dev/null"),
             'can\'t generate a tmp file from man printf')
      ref_md5sum = ''
      IO.popen("md5sum #{tmp_filename}") do |io|
        ref_md5sum = io.gets.chomp.sub(/\s+#{tmp_filename}$/, '')
      end
      assert_equal(ref_md5sum, File.md5sum(tmp_filename).to_s)
      assert_equal(ref_md5sum, tmp_filename.md5sum.to_s)
    end
  end

end # class MD5SumTest


end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
ttk-0.1.576 ruby_ex/md5sum.rb
ttk-0.1.580 ruby_ex/md5sum.rb
ttk-0.1.579 ruby_ex/md5sum.rb
vcs-0.2.148 ruby_ex/md5sum.rb