Skip to content

Commit a8996df

Browse files
committed
Ruby 1.8.7 compatibility
1 parent 584829e commit a8996df

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

lib/detect_language/client.rb

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
require 'cgi'
12
require 'net/http'
23
require 'net/https'
34
require 'json'
@@ -16,7 +17,13 @@ def execute(method, params)
1617
request_params = params.merge(:key => configuration.api_key)
1718

1819
request = Net::HTTP::Post.new(request_uri(method))
19-
request.set_form_data(request_params)
20+
21+
if RUBY_VERSION == '1.8.7'
22+
set_form_data_18(request, request_params)
23+
else
24+
request.set_form_data(request_params)
25+
end
26+
2027
request.add_field('User-Agent', configuration.user_agent)
2128

2229
response = http.request(request)
@@ -63,5 +70,22 @@ def setup_http_connection
6370

6471
http
6572
end
73+
74+
def set_form_data_18(request, params, sep = '&')
75+
request.body = params.map {|k,v|
76+
if v.instance_of?(Array)
77+
v.map {|e| "#{urlencode(k.to_s)}=#{urlencode(e.to_s)}"}.join(sep)
78+
else
79+
"#{urlencode(k.to_s)}=#{urlencode(v.to_s)}"
80+
end
81+
}.join(sep)
82+
83+
request.content_type = 'application/x-www-form-urlencoded'
84+
end
85+
86+
def urlencode(str)
87+
CGI::escape(str)
88+
end
89+
6690
end
6791
end

0 commit comments

Comments
 (0)