From: Daniel Sheppard Date: 2005-11-02T14:33:31+09:00 Subject: Re: [ANN] urirequire: I got yer Web 2.0 right here This'll make uri_require a nice safe place to live.... sort of. require 'open-uri' module UriRequire Version = '0.1.1' @@orig_require = Kernel.method :require def self.orig_require; @@orig_require; end end def require( library_name ) if library_name =~ /^(http|https|ftp):\/\// uri_require( library_name ) else UriRequire.orig_require.call library_name end end def uri_require( library_name, expected_digest ) begin contents = open( library_name ) do |f| f.gets( nil ); end rescue OpenURI::HTTPError library_name += '.rb' contents = open( library_name ) do |f| f.gets( nil ); end end require 'digest/sha1' digest = Digest::SHA1.hexdigest('xx') if expected_digest raise "Wrong Hash - Expected '#{expected_digest}', recieved '#{digest}'" else warn "Requiring a uri without a hash? Are you freakin' crazy?" warn "The hash is '#{digest}' for '#{library_name}'" end eval contents end ##################################################################################### This email has been scanned by MailMarshal, an email content filter. #####################################################################################