Module: Rhaiker::Utils
- Included in:
- Rhaiker
- Defined in:
- lib/rhaiker/utils.rb
Overview
Utility Module for Rhaiker. This module include URI, Net::HTTP, REXML::Document, and Time.
Instance Method Summary collapse
-
#create_request(type, uri, use_basic_auth = false) ⇒ Object
- Description
-
create Net::HTTPRequest instance.
-
#create_uri(url_string) ⇒ Object
- Description
-
create URI instance.
-
#http_access(uri, request, body = nil) ⇒ Object
- Description
-
access to Hatena::Haiku::API.
-
#parse_options(options) ⇒ Object
- Description
-
parse option parametors.
Instance Method Details
#create_request(type, uri, use_basic_auth = false) ⇒ Object
- Description
-
create Net::HTTPRequest instance.
- Params
-
type (:post|:get), uri URI-Instance, use_basic_auth (booleans)
- Return
-
Net::HTTPRequest-Instance
- RelatedMethods
-
create_uri, http_access
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/rhaiker/utils.rb', line 32 def create_request(type, uri, use_basic_auth = false) case type when :get request = Net::HTTP::Get.new(uri.request_uri) when :post request = Net::HTTP::Post.new(uri.request_uri) else raise ArgumentError, 'type must be :get or :post' end request['User-Agent'] = @user_agent request.basic_auth @user_id, @api_key if use_basic_auth return request end |
#create_uri(url_string) ⇒ Object
- Description
-
create URI instance.
- Params
-
url_string
- Return
-
URI-Instance
- RelatedMethods
-
parse_options, create_request, http_access
61 62 63 |
# File 'lib/rhaiker/utils.rb', line 61 def create_uri(url_string) return URI.parse(URI.escape(url_string)) end |
#http_access(uri, request, body = nil) ⇒ Object
- Description
-
access to Hatena::Haiku::API
- Params
-
uri (URI-Instance), request (Net::HTTPRequest-Instance)
- Return
-
REXML::Document-Instance
- RelatedMethods
-
create_uri, create_request
80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/rhaiker/utils.rb', line 80 def http_access(uri, request, body = nil) Net::HTTP.start(uri.host, uri.port){|http| response = http.request(request, body) if RUBY_VERSION.match(/^1\.9\./) response.body.force_encoding('UTF-8') end if response.code == '200' return REXML::Document.new(response.body) else raise "HTTP access failed: status code #{response.code}" end } end |
#parse_options(options) ⇒ Object
- Description
-
parse option parametors
- Params
-
options (=> value, […])
- Return
-
parsed-options (‘?param_name=value&…’)
- RelatedMethods
-
create_uri
107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/rhaiker/utils.rb', line 107 def () result = '' if [:since] [:since] = Time.parse([:since].to_s).httpdate end = .find_all{|option|option.last} result = '?' + .collect{|option| option.join('=') }.join('&') unless .empty? return result end |