Class: GPDRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/gpd-request.rb

Instance Method Summary collapse

Constructor Details

#initialize(user = nil, pass = nil, headers = {}) ⇒ GPDRequest

Returns a new instance of GPDRequest.



10
11
12
13
14
15
# File 'lib/gpd-request.rb', line 10

def initialize(user=nil, pass=nil, headers={})
  @headers = {
    "User-Agent" => "Ruby-GPDRequest"
  }.merge headers
  @username, @password = user, pass
end

Instance Method Details

#array_delete(a, form_data = {}) ⇒ Object



58
59
60
61
62
63
64
65
66
# File 'lib/gpd-request.rb', line 58

def array_delete(a, form_data={})
  a.map do  |uri|
    request(uri) do |url| 
      req = Net::HTTP::Delete.new(url.path, @headers)
      req.set_form_data form_data unless form_data.empty?
      req
    end
  end
end

#delete(arg, form_data = {}) ⇒ Object



45
46
47
48
# File 'lib/gpd-request.rb', line 45

def delete(arg, form_data={})
  methods = {String: :string_delete, Array: :array_delete}
  send (methods[arg.class.to_s.to_sym]), arg, form_data
end

#get(uri) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/gpd-request.rb', line 28

def get(uri)
  
  if uri =~ /^http:/ then
    request(uri) {|url| Net::HTTP::Get.new url.path, @headers }
  elsif uri =~ /^https:/
    Net::HTTP.get_response(URI.parse(uri))
  end
end

#post(uri, form_data = {}) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/gpd-request.rb', line 37

def post(uri, form_data={})
  request(uri) do |url| 
    req = Net::HTTP::Post.new(url.path, @headers)
    req.set_form_data form_data unless form_data.empty?
    req
  end
end

#request(uri) ⇒ Object



17
18
19
20
21
22
23
24
25
26
# File 'lib/gpd-request.rb', line 17

def request(uri)  
  path = uri
  url = URI.parse(path)
  req = yield(url)
  req.basic_auth(@username, @password) if @username
  response = Net::HTTP.new(url.host, url.port).start do |http| 
    http.request(req) 
  end
  response
end

#string_delete(uri, form_data = {}) ⇒ Object



50
51
52
53
54
55
56
# File 'lib/gpd-request.rb', line 50

def string_delete(uri, form_data={})
  request(uri) do |url| 
    req = Net::HTTP::Delete.new(url.path, @headers)
    req.set_form_data form_data unless form_data.empty?
    req
  end
end