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

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 parse_options(options)
  result = ''
  if options[:since]
    options[:since] = Time.parse(options[:since].to_s).httpdate
  end
  options = options.find_all{|option|option.last}
  result = '?' + options.collect{|option|
    option.join('=')
  }.join('&') unless options.empty?
  return result
end