# File lib/open-uri/cached.rb, line 34
      def get(key)
        filename = filename_from_url(key)
        # TODO: head request to determine last_modified vs file modtime

        # Read metadata, if it exists
        meta = YAML::load(File.read("#{filename}.meta")) if File.exists?("#{filename}.meta")

        f = File.exists?(filename) ? StringIO.new(File.open(filename, "rb") { |f| f.read }) : nil

        # Add meta accessors
        if meta && f
          f.instance_variable_set("@meta""@meta", meta)

          def f.meta
            @meta
          end
          def f.base_uri
            @meta[:base_uri]
          end
          def f.content_type
            @meta[:content_type]
          end
          def f.charset
            @meta[:charset]
          end
          def f.content_encoding
            @meta[:content_encoding]
          end
          def f.last_modified
            @meta[:last_modified]
          end
          def f.status
            @meta[:status]
          end
        end

        f
      end