Class: Mushikago::Http::Request
- Inherits:
-
Object
- Object
- Mushikago::Http::Request
- Defined in:
- lib/mushikago/http/request.rb
Overview
MushikagoサービスのHTTPリクエストを表すクラス
Direct Known Subclasses
Mushikago::Hotaru::Request, MultipartRequest, Mitsubachi::Request, Tombo::Request
Instance Attribute Summary (collapse)
-
- (Hash) headers
readonly
Headers.
-
- (String) host
Host.
-
- (String) http_method
Http_method.
-
- (String) params
readonly
Params.
-
- (String) path
Path.
-
- (Integer) port
Port.
Class Method Summary (collapse)
-
+ (Object) add_param(name, options = {}) {|value| ... }
(also: request_parameter)
リクエストパラメータへのアクセサを定義する.
Instance Method Summary (collapse)
-
- (String) [](key)
パラメータの値.
- - (Object) []=(key, value)
-
- (Request) initialize
constructor
A new instance of Request.
-
- (Net::HTTPRequest) to_http_request
HTTPリクエストオブジェクトに変換する.
-
- (String) url_encoded_params
URLエンコードされ、&で接続されたパラメータの文字列.
Constructor Details
- (Request) initialize
A new instance of Request
21 22 23 24 25 26 27 28 |
# File 'lib/mushikago/http/request.rb', line 21 def initialize @headers = {} @host = '' @port = 80 @path = '/' @params = {} @http_method = new_http_request.method end |
Instance Attribute Details
- (Hash) headers (readonly)
Headers
9 10 11 |
# File 'lib/mushikago/http/request.rb', line 9 def headers @headers end |
- (String) host
Host
13 14 15 |
# File 'lib/mushikago/http/request.rb', line 13 def host @host end |
- (String) http_method
Http_method
11 12 13 |
# File 'lib/mushikago/http/request.rb', line 11 def http_method @http_method end |
- (String) params (readonly)
Params
19 20 21 |
# File 'lib/mushikago/http/request.rb', line 19 def params @params end |
- (String) path
Path
17 18 19 |
# File 'lib/mushikago/http/request.rb', line 17 def path @path end |
- (Integer) port
Port
15 16 17 |
# File 'lib/mushikago/http/request.rb', line 15 def port @port end |
Class Method Details
+ (Object) add_param(name, options = {}) {|value| ... } Also known as: request_parameter
リクエストパラメータへのアクセサを定義する
97 98 99 100 101 102 103 104 105 |
# File 'lib/mushikago/http/request.rb', line 97 def add_param name, ={}, &transform attr_accessor name define_method("#{name}=") do |value| value = value || [:default] value = transform ? transform.call(value) : value self[name.to_s] = value instance_variable_set("@#{name}".to_sym, value) end end |
Instance Method Details
- (String) [](key)
パラメータの値
38 39 40 41 |
# File 'lib/mushikago/http/request.rb', line 38 def [] key param = params.detect{|p| p[0] == key} param ? param[1] : nil end |
- (Object) []=(key, value)
32 33 34 |
# File 'lib/mushikago/http/request.rb', line 32 def []= key, value params[key] = value end |
- (Net::HTTPRequest) to_http_request
HTTPリクエストオブジェクトに変換する
50 51 52 53 54 55 56 57 |
# File 'lib/mushikago/http/request.rb', line 50 def to_http_request http_request = new_http_request headers.each do |key, value| http_request[key] = value end http_request.body = url_encoded_params if http_request.request_body_permitted? return http_request end |
- (String) url_encoded_params
URLエンコードされ、&で接続されたパラメータの文字列
44 45 46 |
# File 'lib/mushikago/http/request.rb', line 44 def url_encoded_params params.sort.select{|p| p[1].kind_of?(String)}.collect{|pp| pp.map{|p| encode p}.join('=')}.join('&') end |