Sha256: 86c56107bf0c19dc154a089bec3273e7e394481aff3bee5791934da76b34ad0f
Contents?: true
Size: 1.23 KB
Versions: 4
Compression:
Stored size: 1.23 KB
Contents
# Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved. # Author: Nicolas Despres <polrop@lrde.epita.fr>. # License: Gnu General Public License. # $LastChangedBy: ertai $ # $Id: fetchable.rb 186 2005-04-03 00:07:45Z ertai $ module Session module Fetchable # # Sessions-oriented requests # protected def request_fetch(sid, profile, filename, mode='r', perm=0644, &block) f = nil ret = false exc = nil begin f = File.open(filename, mode, perm) f.flock(File::LOCK_EX) md5 = Digest::MD5.new case mode when 'a', 'w' while (str = block[]) f.write(str) md5 << str end ret = (md5.to_s == block[].to_s) when 'r' until f.eof? str = f.read(1024) md5 << str block[str] end ret = (md5.to_s == block[nil].to_s) else raise(ArgumentError, "`#{mode}' - bad mode") end rescue Exception => exc ensure unless f.nil? f.flock(File::LOCK_UN) f.close end raise exc unless exc.nil? return ret end end end # module Fetchable end # module Session
Version data entries
4 entries across 4 versions & 2 rubygems
Version | Path |
---|---|
ttk-0.1.576 | ruby_ex/session/fetchable.rb |
ttk-0.1.580 | ruby_ex/session/fetchable.rb |
ttk-0.1.579 | ruby_ex/session/fetchable.rb |
vcs-0.2.148 | ruby_ex/session/fetchable.rb |