module OpenURI::Meta

[edit]

要約

サーバから取得したデータの属性を扱うために使われるモジュールです。データを表す文字列や StringIO が extend します。

目次

インスタンスメソッド

インスタンスメソッド

base_uri -> URI[permalink][rdoc][edit]

リソースの実際の URI を URI オブジェクトとして返します。リダイレクトされた場合は、リダイレクトされた後のデータが存在する URI を返します。



require 'open-uri'
open('http://www.ruby-lang.org/') {|f|
  p f.base_uri
  #=> #<URI::HTTP:0xb7043aa0 URL:http://www.ruby-lang.org/en/>
}
charset -> String | nil[permalink][rdoc][edit]
charset { ... } -> String

対象となるリソースの文字コードを文字列で返します。Content-Type ヘッダの文字コード情報が使われます。文字列は小文字へと変換されています。

Content-Type ヘッダがない場合は、nil を返します。ただし、ブロックが与えられている場合は、その結果を返します。また対象となる URI のスキームが HTTP であり、自身のタイプが text である場合は、 [RFC2616] 3.7.1 で定められているとおり、文字列 "iso-8859-1" を返します。



require 'open-uri'
open("http://www.ruby-lang.org/en") {|f|
  p f.content_type  # => "text/html"
  p f.charset       # => "iso-8859-1"
}
content_encoding -> [String][permalink][rdoc][edit]

対象となるリソースの Content-Encoding を文字列の配列として返します。 Content-Encoding ヘッダがない場合は、空の配列を返します。

例:



require 'open-uri'
open('http://example.com/f.tar.gz') {|f|
  p f.content_encoding  #=> ["x-gzip"]
}
content_type -> String[permalink][rdoc][edit]

対象となるリソースの Content-Type を文字列の配列で返します。Content-Type ヘッダの情報が使われます。 Content-Type ヘッダがない場合は、"application/octet-stream" を返します。



require 'open-uri'
open('http://www.ruby-lang.org/') {|f|
  p f.content_type  #=> "text/html"
}
last_modified -> Time | nil[permalink][rdoc][edit]

対象となる URI の最終更新時刻を Time オブジェクトで返します。 Last-Modified ヘッダがない場合は nil を返します。

例:



require 'open-uri'
open('http://www.rubyist.net/') {|f|
  p f.last_modified
  #=> Thu Feb 26 16:54:58 +0900 2004
}
meta -> Hash[permalink][rdoc][edit]

ヘッダを収録したハッシュを返します。



require 'open-uri'
open('http://example.com/') {|f|
  p f.meta
  #=> {"date"=>"Sun, 04 May 2008 11:26:40 GMT",
  #    "content-type"=>"text/html;charset=utf-8",
  #    "server"=>"Apache/2.0.54 (Debian GNU/Linux) mod_ssl/2.0.54 OpenSSL/0.9.7e",
  #    "transfer-encoding"=>"chunked"}
}
status -> [String][permalink][rdoc][edit]

対象となるリソースのステータスコードと reason phrase を文字列の配列として返します。



require 'open-uri'
open('http://example.com/') {|f|
  p f.status  #=> ["200", "OK"]
}