Sha256: 5572d76339d045fc6848d889eca8a45cffa076e4a543ca7b0e793aabf8248756
Contents?: true
Size: 1.18 KB
Versions: 1
Compression:
Stored size: 1.18 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 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.6 | lib/eat.rb |