simple_uri 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/simple_uri/version.rb +3 -0
- data/lib/simple_uri.rb +73 -0
- metadata +45 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ec702d34f2557e5de6826359b3ed063f1ec45ddd
|
4
|
+
data.tar.gz: e363ffc17f368545752ca46c4cac3f3a990115b6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: fd98e25200c345adf2cb110dcf58ce68d11b2ba49a818b9eb9365b92bb9b376ef8fdd44999146ecb149ece1dc5008477119b949083196004f37d6506e21acb81
|
7
|
+
data.tar.gz: b09024e3b7d317bcab29e18045b4ec2d49a03dca086fd71157db10f1189f3f86113f5bed6b182913fdc81c0ea3927068d268ad496a23b32cbb1fa42345744e00
|
data/lib/simple_uri.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'logger'
|
2
|
+
require 'uri'
|
3
|
+
require 'net/http'
|
4
|
+
require 'openssl'
|
5
|
+
require 'active_support/inflector'
|
6
|
+
|
7
|
+
module SimpleUri
|
8
|
+
|
9
|
+
class << self
|
10
|
+
|
11
|
+
@@debug_mode = false
|
12
|
+
|
13
|
+
#parameters:url-String, method-Symbol||String, params-String, user-String, password:String, debug-Boolean
|
14
|
+
def connect(url: nil, method: nil, params: nil, user: nil, password: nil, debug: @@debug_mode)
|
15
|
+
enable_debug_mode(debug)
|
16
|
+
uri = URI.parse(URI.encode(url))
|
17
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
18
|
+
http.read_timeout = 1000
|
19
|
+
debug_http(http)
|
20
|
+
if url.match(/^https/)
|
21
|
+
debug_msg 'Use SSL'
|
22
|
+
http.use_ssl = true
|
23
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
24
|
+
end
|
25
|
+
req = "Net::HTTP::#{method.to_s.capitalize}".constantize.new(uri.path+params.to_s)
|
26
|
+
req.basic_auth user, password if user && password
|
27
|
+
[req, http]
|
28
|
+
end
|
29
|
+
|
30
|
+
#parameters:url-String, method-Symbol||String, params-String, req_body-String, req_headers-Hash, user-String, password:String, debug-Boolean, cookies-Boolean
|
31
|
+
def send_request(url: nil, method: nil, params: nil, req_body: nil, req_headers: nil, user: nil, password: nil, debug: @@debug_mode, cookies: false)
|
32
|
+
req, http = connect(url: url, method: method, params: params, user: user, password: password, debug: debug)
|
33
|
+
req.body = req_body
|
34
|
+
req_headers.each { |k, v| req[k] = v } if req_headers
|
35
|
+
res = http.request(req)
|
36
|
+
res.body
|
37
|
+
res_body = begin
|
38
|
+
JSON.parse(res.body)
|
39
|
+
rescue
|
40
|
+
debug_msg 'Can\'t convert response to JSON'
|
41
|
+
res.body
|
42
|
+
end
|
43
|
+
cookies ? { body: res_body, cookies: res.response['set-cookie'] } : res_body
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def enable_debug_mode(enabled)
|
49
|
+
if enabled
|
50
|
+
@@debug_mode = true
|
51
|
+
@log = Logger.new(debug_output)
|
52
|
+
@log.level = Logger::DEBUG
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def debug_msg(msg)
|
57
|
+
@log.debug(msg) if @log && @@debug_mode
|
58
|
+
end
|
59
|
+
|
60
|
+
def debug_http(http)
|
61
|
+
http.set_debug_output(debug_output) if @@debug_mode
|
62
|
+
end
|
63
|
+
|
64
|
+
def debug_output
|
65
|
+
STDOUT
|
66
|
+
end
|
67
|
+
|
68
|
+
def body_to_str_params(body)
|
69
|
+
body.map { |k, v| "#{k.to_s}=#{v.to_s}" }.join('&')
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
metadata
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: simple_uri
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Nikulin Aleksander
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-10-15 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: To simplify working with url
|
14
|
+
email: nikulinaleksandr@gmail.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/simple_uri.rb
|
20
|
+
- lib/simple_uri/version.rb
|
21
|
+
homepage: https://github.com/niksan/simple_uri
|
22
|
+
licenses:
|
23
|
+
- MIT
|
24
|
+
metadata: {}
|
25
|
+
post_install_message:
|
26
|
+
rdoc_options: []
|
27
|
+
require_paths:
|
28
|
+
- lib
|
29
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ">="
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
requirements: []
|
40
|
+
rubyforge_project:
|
41
|
+
rubygems_version: 2.2.2
|
42
|
+
signing_key:
|
43
|
+
specification_version: 4
|
44
|
+
summary: To simplify working with url
|
45
|
+
test_files: []
|