multiforecast-client 0.62.0.2 → 0.62.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -1
- data/README.md +2 -3
- data/VERSION +1 -1
- data/lib/multiforecast/client.rb +2 -2
- data/lib/multiforecast/conversion_rule.rb +12 -4
- data/lib/multiforecast/shared_context/mock.rb +5 -5
- 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: fd49406437bfd41b01f10ede5949c037b07d4ada
|
4
|
+
data.tar.gz: 985af45511b980ad3c8b1a83a1e5dfbdda396973
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d0b3e3912b0107dd72e7411246926a518ada6a50398cf9fee152707f8f20d690c07598daaf57f253bb78202a4cffc6684c344a4a850bcc41fd1fc150befb728
|
7
|
+
data.tar.gz: bea0308427fe97696bc89c041b76a2614b203a5c658a35bb41260d197659efe6b8e002a90eacc867580948752a5f62b22d08e8cee04597eaef2c6d9d6acadeec
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -51,7 +51,6 @@ $ cat multiforecast.yml
|
|
51
51
|
---
|
52
52
|
mapping:
|
53
53
|
'': http://localhost:5125
|
54
|
-
short_metrics: true
|
55
54
|
```
|
56
55
|
|
57
56
|
Post a number and create a graph:
|
@@ -75,13 +74,13 @@ $ multiforecast help
|
|
75
74
|
## INSIDE: How to treat graphs of more than 3 levels
|
76
75
|
|
77
76
|
Although GrowthForecast can treat only graphs of 3 leveled path, MultiForecast can handle graphs of more than 3 levels.
|
78
|
-
This feature is achieved by converting a given path to
|
77
|
+
This feature is achieved by converting a given path string to `service_name/section_name/graph_name` path of GrowthForecast as follows:
|
79
78
|
|
80
79
|
service_name = 'multiforecast'
|
81
80
|
section_name = CGI.escape(File.dirname(path)).gsub('+', '%20').gsub('.', '%2E')
|
82
81
|
graph_name = File.basename(path)
|
83
82
|
|
84
|
-
As a viewer for
|
83
|
+
As a viewer for such converted graphs, you can use [Yohoushi](https://github.com/yohoushi/yohoushi) visualization tool.
|
85
84
|
|
86
85
|
## Contributing
|
87
86
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.62.0.
|
1
|
+
0.62.0.3
|
data/lib/multiforecast/client.rb
CHANGED
@@ -275,7 +275,7 @@ module MultiForecast
|
|
275
275
|
# @example
|
276
276
|
def get_graph_uri(path, params = {})
|
277
277
|
params = preprocess_time_params(params) if params
|
278
|
-
"#{@base_uris[id(path)]}/graph/#{
|
278
|
+
"#{@base_uris[id(path)]}/graph/#{uri_escape(service_name(path))}/#{uri_escape(section_name(path))}/#{uri_escape(graph_name(path))}?#{query_string(params)}"
|
279
279
|
end
|
280
280
|
|
281
281
|
# Get complex graph image uri
|
@@ -293,7 +293,7 @@ module MultiForecast
|
|
293
293
|
# @example
|
294
294
|
def get_complex_uri(path, params = {})
|
295
295
|
params = preprocess_time_params(params) if params
|
296
|
-
"#{@base_uris[id(path)]}/complex/graph/#{
|
296
|
+
"#{@base_uris[id(path)]}/complex/graph/#{uri_escape(service_name(path))}/#{uri_escape(section_name(path))}/#{uri_escape(graph_name(path))}?#{query_string(params)}"
|
297
297
|
end
|
298
298
|
|
299
299
|
# process the time params (from and to)
|
@@ -3,6 +3,16 @@ require 'cgi'
|
|
3
3
|
|
4
4
|
module MultiForecast
|
5
5
|
module ConversionRule
|
6
|
+
def uri_escape(string)
|
7
|
+
# + => '%20' is to avoid GF (Kossy?) bug
|
8
|
+
# . => '%2E' because a/./b is recognized as a/b as URL
|
9
|
+
CGI.escape(string).gsub('+', '%20').gsub('.', '%2E') if string
|
10
|
+
end
|
11
|
+
|
12
|
+
def uri_unescape(string)
|
13
|
+
CGI.unescape(string) if string
|
14
|
+
end
|
15
|
+
|
6
16
|
def service_name(path)
|
7
17
|
return path.split('/')[0] if path.count('/') == 2
|
8
18
|
'multiforecast'
|
@@ -10,9 +20,7 @@ module MultiForecast
|
|
10
20
|
|
11
21
|
def section_name(path)
|
12
22
|
return path.split('/')[1] if path.count('/') == 2
|
13
|
-
|
14
|
-
# . => '%2E' because a/./b is recognized as a/b as URL
|
15
|
-
CGI.escape(File.dirname(path)).gsub('+', '%20').gsub('.', '%2E')
|
23
|
+
uri_escape(File.dirname(path))
|
16
24
|
end
|
17
25
|
|
18
26
|
def graph_name(path)
|
@@ -21,7 +29,7 @@ module MultiForecast
|
|
21
29
|
|
22
30
|
def path(service_name, section_name, graph_name)
|
23
31
|
return "#{service_name}/#{section_name}/#{graph_name}" unless service_name == "multiforecast"
|
24
|
-
dirname =
|
32
|
+
dirname = uri_unescape(section_name)
|
25
33
|
basename = graph_name
|
26
34
|
dirname == "." ? basename : "#{dirname}/#{basename}"
|
27
35
|
end
|
@@ -5,13 +5,13 @@ base_uri = 'http://localhost:5125'
|
|
5
5
|
shared_context "stub_list_graph" do
|
6
6
|
def list_graph_example
|
7
7
|
[
|
8
|
-
{"
|
8
|
+
{"base_uri"=>'http://localhost:5125',
|
9
9
|
"path"=>"app name/host name/<1sec count",
|
10
10
|
"service_name"=>"multiforecast",
|
11
11
|
"section_name"=>"app%20name%2Fhost%20name",
|
12
12
|
"graph_name"=>"<1sec count",
|
13
13
|
"id"=>1},
|
14
|
-
{"
|
14
|
+
{"base_uri"=>'http://localhost:5125',
|
15
15
|
"path"=>"app name/host name/<2sec count",
|
16
16
|
"service_name"=>"multiforecast",
|
17
17
|
"section_name"=>"app+name%2Fhost+name",
|
@@ -30,7 +30,7 @@ end
|
|
30
30
|
shared_context "stub_get_graph" do
|
31
31
|
def graph_example
|
32
32
|
{
|
33
|
-
"
|
33
|
+
"base_uri"=>"http://localhost:5125",
|
34
34
|
"path"=>"app name/host name/<1sec count",
|
35
35
|
"number"=>0,
|
36
36
|
"llimit"=>-1000000000,
|
@@ -95,7 +95,7 @@ end
|
|
95
95
|
shared_context "stub_list_complex" do
|
96
96
|
def list_complex_example
|
97
97
|
[
|
98
|
-
{"
|
98
|
+
{"base_uri"=>"http://localhost:5125",
|
99
99
|
"path"=>"app name/host name/complex graph test",
|
100
100
|
"service_name"=>"multiforecast",
|
101
101
|
"section_name"=>"app%20name%2Fhost%20name",
|
@@ -113,7 +113,7 @@ end
|
|
113
113
|
|
114
114
|
shared_context "stub_get_complex" do
|
115
115
|
def complex_example
|
116
|
-
{"
|
116
|
+
{"base_uri"=>"http://localhost:5125",
|
117
117
|
"path"=>"app name/host name/complex graph test",
|
118
118
|
"service_name"=>"multiforecast",
|
119
119
|
"section_name"=>"app%20name%2Fhost%20name",
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: multiforecast-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.62.0.
|
4
|
+
version: 0.62.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Naotoshi Seo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: growthforecast-client
|