/
basic.rb
45 lines (35 loc) · 1.16 KB
/
basic.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
require 'net/http'
module TwitterAuth
module Dispatcher
class Basic
include TwitterAuth::Dispatcher::Shared
attr_accessor :user
def initialize(user)
raise TwitterAuth::Error, 'Dispatcher must be initialized with a User.' unless user.is_a?(TwitterAuth::BasicUser)
self.user = user
end
def request(http_method, path, body=nil, *arguments)
path << '.json' unless path.match(/\.(:?xml|json)\z/i)
response = TwitterAuth.net.start{ |http|
req = "Net::HTTP::#{http_method.to_s.capitalize}".constantize.new(path, *arguments)
req.basic_auth user.login, user.password
req.set_form_data(body) unless body.nil?
http.request(req)
}
handle_response(response)
end
def get(path, *arguments)
request(:get, path, *arguments)
end
def post(path, body='', *arguments)
request(:post, path, body, *arguments)
end
def put(path, body='', *arguments)
request(:put, path, body, *arguments)
end
def delete(path, *arguments)
request(:delete, path, *arguments)
end
end
end
end