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



70
71
72
73
74
75
76
77
78
# File 'lib/gpd-request.rb', line 70

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



57
58
59
60
# File 'lib/gpd-request.rb', line 57

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, params = {}) ⇒ Object



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

def get(uri, params={})
  
  if uri =~ /^http:/ then
    
    request(uri) do |url| 
      
      if params.any? then
        
        encoded_params = URI.encode_www_form(params)
        Net::HTTP::Get.new [url.path, encoded_params].join('?'), @headers
        
      else
        Net::HTTP::Get.new url.path, @headers
      end
    end
  elsif uri =~ /^https:/
    Net::HTTP.get_response(URI.parse(uri))
  end
end

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



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

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



62
63
64
65
66
67
68
# File 'lib/gpd-request.rb', line 62

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