Sha256: 73efcb9793a450da14117e22aa67a9838cd293e3415e464c60e382950d85b2ea
Contents?: true
Size: 1.13 KB
Versions: 1
Compression:
Stored size: 1.13 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 nil if ::File.readable? uri.path ::IO.read uri.path else `sudo 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
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
eat-0.0.3 | lib/eat.rb |