Module: Timelog4r::Utils

Included in:
Timelog4r
Defined in:
lib/timelog4r/utils.rb

Overview

Description

Utility Module. there in ‘http’, ‘uri’, ‘parser’, etc…

Instance Method Summary collapse

Instance Method Details

#create_request(type, uri, use_basic_auth = false) ⇒ Object

Description

create of Net::HTTP::Request-Instance.

Params

:type http-method (:get|:post) [String] :uri request-uri [URI] :use_basic_auth basic_auth flag [Boolean] default false

Return

Net::HTTP::Request-Instance



77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/timelog4r/utils.rb', line 77

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)
      request.content_length = 0
  end
  request['Accept-Charset'] = 'euc-jp, utf-8'
  request['Accept-Language'] = 'ja, en'
  request['User-Agent'] = @user_agent
  request.basic_auth(@user_id, @password) if use_basic_auth
  return request
end

#create_uri(url_string) ⇒ Object

Description

url_string to URI-Instance.

Params

:url_string url_string [String]

Return

URI-Instance



59
60
61
# File 'lib/timelog4r/utils.rb', line 59

def create_uri(url_string)
  return URI.parse(url_string)
end

#http_access(uri, request) ⇒ Object

Description

access to TimelogAPI.

Params

:uri request-uri [URI] :request http-request [Net::HTTP::Request]

Return

REXML::Document-Instance (case of ‘success’) false (case of ‘failed’)



107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/timelog4r/utils.rb', line 107

def http_access(uri, request)
  Net::HTTP.start(uri.host, uri.port){|http|
    response = http.request(request)
    if RUBY_VERSION.match(/^1\.9\./)
      response.body.force_encoding('UTF-8')
    end
    if response.code == '200'
      return REXML::Document.new(response.body)
    else
      return false
    end
  }
end

#parse_options(options) ⇒ Object

Description

parse for uri queries.

Params

options

:key => :value

[Hash]

Return

‘?key=value&key2=value2’



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/timelog4r/utils.rb', line 29

def parse_options(options)
  if options.has_key?(:since)
    options[:since] = options[:since].strftime '%Y%m%d%H%M'
  end
  options = options.find_all{|option|
    option.last
  }
  if options.empty?
    result = nil
  else
    result = URI.escape(
      '?' + options.collect{|option|
        option.join('=')
      }.join('&')
    )
  end
  return result
end