rong_cloud_server 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/README.md +3 -4
- data/lib/rong_cloud/configuration.rb +6 -1
- data/lib/rong_cloud/request.rb +27 -0
- data/rong_cloud.gemspec +1 -1
- data/test/test_helper.rb +4 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6be41c66282f7b2fede5bdcb34a09f19147480db
|
4
|
+
data.tar.gz: a9359a4d519e77a867bf10d32d484ec4629f743a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ef454bbea716cdebfcbfb9c603f2771111354f3aeb7618f8466828f47f547648ddd93d5ed554a68e4b389f8ec2c2037439c303111562d32700a0d7455e541bc
|
7
|
+
data.tar.gz: 409b2fc2ebb46cebaa8cc15251209c33365ccb45c2006855584ea226996b9951fab689186c2bf81f3de879e90a2af50cd4d00eedc4ba9bcb01461ee86347ea59
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -28,6 +28,8 @@ This repository implements most essential apis for [RongCloud Server API](http:/
|
|
28
28
|
config.app_key = "APP_KEY"
|
29
29
|
config.app_secret = "SECRET_KEY"
|
30
30
|
# config.host = "http://api.cn.ronghub.com" # default: https://api.cn.ronghub.com, use http here is just convenient for debugging
|
31
|
+
# config.timeout = 10 # set open timeout and read timeout in seconds for http request, default is 2 seconds
|
32
|
+
# config.debug_mode = true # if need to log request and response details, the log file is at "log/rong_cloud_debug.log", default is `false`
|
31
33
|
end
|
32
34
|
```
|
33
35
|
3. Use the instance of `RongCloud::Service` to talk to RongCloud Server:
|
@@ -57,7 +59,4 @@ ruby -Ilib -Itest -e 'ARGV.each { |f| require f }' ./test/**/*_test.rb
|
|
57
59
|
### How to contribute
|
58
60
|
1. Fork this repo;
|
59
61
|
2. Write your code and test;
|
60
|
-
3. Open a new Pull Request.
|
61
|
-
|
62
|
-
### TODO
|
63
|
-
1. Logger support
|
62
|
+
3. Open a new Pull Request.
|
@@ -7,10 +7,11 @@ module RongCloud
|
|
7
7
|
# The default host to accept connections, use a https protocol
|
8
8
|
DEFAULT_HOST = "https://api.cn.ronghub.com".freeze
|
9
9
|
DEFAULT_TIMEOUT = 2
|
10
|
+
DEFAULT_DEBUG_MODE = false
|
10
11
|
|
11
12
|
module ModuleMethods
|
12
13
|
attr_accessor :app_key, :app_secret
|
13
|
-
attr_writer :host, :timeout
|
14
|
+
attr_writer :host, :timeout, :debug_mode
|
14
15
|
|
15
16
|
# Fetch the api host, the default is: https://api.cn.ronghub.com
|
16
17
|
#
|
@@ -21,6 +22,10 @@ module RongCloud
|
|
21
22
|
def timeout
|
22
23
|
@timeout || DEFAULT_TIMEOUT
|
23
24
|
end
|
25
|
+
|
26
|
+
def debug_mode
|
27
|
+
@debug_mode || DEFAULT_DEBUG_MODE
|
28
|
+
end
|
24
29
|
end
|
25
30
|
extend ModuleMethods
|
26
31
|
end
|
data/lib/rong_cloud/request.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'net/http'
|
2
2
|
require 'json'
|
3
3
|
require 'rong_cloud/signature'
|
4
|
+
require 'logger'
|
4
5
|
|
5
6
|
module RongCloud
|
6
7
|
# Handle api request, based on Ruby's built-in Net::HTTP,
|
@@ -23,9 +24,11 @@ module RongCloud
|
|
23
24
|
request_options = { use_ssl: use_ssl, open_timeout: timeout, read_timeout: timeout }
|
24
25
|
|
25
26
|
res = Net::HTTP.start(uri.hostname, uri.port, request_options) do |http|
|
27
|
+
inspect_debug_informations(req, uri, request_options)
|
26
28
|
http.request(req)
|
27
29
|
end
|
28
30
|
|
31
|
+
inspect_debug_informations(res)
|
29
32
|
handle_response(res)
|
30
33
|
end
|
31
34
|
|
@@ -79,5 +82,29 @@ module RongCloud
|
|
79
82
|
raise error
|
80
83
|
end
|
81
84
|
end
|
85
|
+
|
86
|
+
def inspect_debug_informations(*objects)
|
87
|
+
return unless RongCloud::Configuration.debug_mode
|
88
|
+
|
89
|
+
objects.each do |obj|
|
90
|
+
begin
|
91
|
+
case
|
92
|
+
when obj.is_a?(URI::Generic)
|
93
|
+
logger.debug("Requesting #{obj.hostname}:#{obj.port}")
|
94
|
+
when obj.is_a?(Net::HTTPGenericRequest)
|
95
|
+
logger.debug("request method: #{obj.method}, headers: #{obj.to_hash}, raw body: #{obj.body}")
|
96
|
+
when obj.is_a?(Net::HTTPResponse)
|
97
|
+
logger.debug("response headers: #{obj.to_hash}, raw body: #{obj.body}")
|
98
|
+
else
|
99
|
+
logger.debug(obj.inspect)
|
100
|
+
end
|
101
|
+
rescue
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def logger
|
107
|
+
@logger ||= ::Logger.new("log/rong_cloud_debug.log")
|
108
|
+
end
|
82
109
|
end
|
83
110
|
end
|
data/rong_cloud.gemspec
CHANGED
@@ -4,7 +4,7 @@ Gem::Specification.new do |s|
|
|
4
4
|
s.require_path = 'lib'
|
5
5
|
s.summary = 'RongCloud Server API SDK'
|
6
6
|
s.description = 'RongCloud Server API in Ruby,http://www.rongcloud.cn/docs/server.html'
|
7
|
-
s.version = '0.2.
|
7
|
+
s.version = '0.2.1'
|
8
8
|
s.files = `git ls-files`.split("\n")
|
9
9
|
s.authors = ['Martin Hong']
|
10
10
|
s.email = 'hongzeqin@gmail.com'
|
data/test/test_helper.rb
CHANGED
@@ -14,6 +14,7 @@ end
|
|
14
14
|
require 'minitest/autorun'
|
15
15
|
require 'byebug'
|
16
16
|
require 'rong_cloud'
|
17
|
+
require 'fileutils'
|
17
18
|
|
18
19
|
def rong_cloud_configure_with_settings
|
19
20
|
RongCloud.configure do |config|
|
@@ -21,5 +22,8 @@ def rong_cloud_configure_with_settings
|
|
21
22
|
config.app_secret = ENV["RONGCLOUD_APP_SECRET"]
|
22
23
|
config.host = ENV["RONGCLOUD_API_HOST"] || "https://api.cn.ronghub.com"
|
23
24
|
config.timeout = 10
|
25
|
+
config.debug_mode = true
|
26
|
+
|
27
|
+
FileUtils.mkdir_p "log/"
|
24
28
|
end
|
25
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rong_cloud_server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Hong
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|