Sha256: ea0e8b0a491042af56d37780fb6fea664b7597a4c09b80936c00f109e3d98bc5
Contents?: true
Size: 1.19 KB
Versions: 1
Compression:
Stored size: 1.19 KB
Contents
require 'uri' require 'singleton' module Eat def self.config ::Eat::Config.instance end class Config include ::Singleton attr_writer :remote_timeout def remote_timeout @remote_timeout || 2 #seconds end end module ObjectExtensions def eat(filesystem_path_or_uri) uri = ::URI.parse filesystem_path_or_uri.to_s case uri.scheme when 'file', nil if ::File.readable? uri.path ::File.read uri.path else `sudo /bin/cat #{uri.path}` end when 'http', 'https' require 'net/http' require 'net/https' if uri.scheme == 'https' (defined?(::SystemTimer) ? ::SystemTimer : ::Timeout).timeout(::Eat.config.remote_timeout) do http = ::Net::HTTP.new uri.host, uri.port if uri.scheme == 'https' http.use_ssl = true # if you were trying to be real safe, you wouldn't use this library http.verify_mode = ::OpenSSL::SSL::VERIFY_NONE end http.start { |session| session.get uri.request_uri } end.body end end end end ::Object.send(:include, ::Eat::ObjectExtensions) unless ::Object.method_defined?(:eat)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
eat-0.0.7 | lib/eat.rb |