growthforecast-client 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.travis.yml +1 -1
- data/Gemfile +1 -1
- data/VERSION +1 -1
- data/bin/growthforecast-client +5 -0
- data/growthforecast-client.gemspec +1 -2
- data/lib/cli/growthforecast-client.rb +43 -0
- data/lib/growthforecast-client.rb +1 -0
- data/lib/growthforecast/client.rb +13 -5
- data/spec/cli/growthforecast-client_spec.rb +37 -0
- data/spec/growthforecast/client_spec.rb +10 -10
- data/spec/spec_helper.rb +1 -2
- data/spec/support/mock.rb +15 -15
- data/spec/support/setup.rb +22 -0
- metadata +37 -68
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: cc49802fafcfffae9ab1ba873d15a4d5e7d2118a
|
4
|
+
data.tar.gz: 16c23fa49c8f1bf380d2adaa37b36a0cf3187329
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 091ffcb68fff297f93bdf5c91bb506d41c4e9b16a5e55788518f5cf8f8f35735e2557312ed484e61e71fb39ea73f6d1271361eec256c77d05bc227cf28d3dcdc
|
7
|
+
data.tar.gz: 5464d4a3c35988b5f93502bc3c839de730c998f5a3ee2294a2651eb135139f818f378e4a7f7dca027bcaba88527f059afec3221f470d734d8900ca7b8e25d0e0
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
@@ -16,6 +16,7 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.require_paths = ["lib"]
|
17
17
|
|
18
18
|
gem.add_runtime_dependency "httpclient"
|
19
|
+
gem.add_runtime_dependency "thor"
|
19
20
|
|
20
21
|
# for testing
|
21
22
|
gem.add_development_dependency "rake"
|
@@ -24,7 +25,5 @@ Gem::Specification.new do |gem|
|
|
24
25
|
|
25
26
|
# for debug
|
26
27
|
gem.add_development_dependency "pry"
|
27
|
-
gem.add_development_dependency "pry-debugger"
|
28
|
-
gem.add_development_dependency "rb-readline"
|
29
28
|
gem.add_development_dependency "tapp"
|
30
29
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'thor'
|
3
|
+
|
4
|
+
module CLI
|
5
|
+
class GrowthforecastClient < Thor
|
6
|
+
desc 'delete_graph <url>', 'delete a graph or graphs under a url'
|
7
|
+
long_desc <<-LONGDESC
|
8
|
+
Delete a graph or graphs under a <url> where <url> is the one obtained from the view, e.g.,
|
9
|
+
http://{hostname}:{port}/list/{service_name}/{section_name}?t=sh
|
10
|
+
or
|
11
|
+
http://{hostname}:{port}/view_graph/{service_name}/{section_name}/{graph_name}?t=sh
|
12
|
+
LONGDESC
|
13
|
+
def delete_graph(url)
|
14
|
+
uri = URI.parse(url)
|
15
|
+
client = client(uri)
|
16
|
+
service_name, section_name, graph_name = split_path(uri.path)
|
17
|
+
graphs = client.list_graph(service_name, section_name, graph_name)
|
18
|
+
graphs.each do |graph|
|
19
|
+
begin
|
20
|
+
client.delete_graph(graph['service_name'], graph['section_name'], graph['graph_name'])
|
21
|
+
puts "Deleted #{e graph['service_name']}/#{e graph['section_name']}/#{e graph['graph_name']}"
|
22
|
+
rescue => e
|
23
|
+
puts "\tclass:#{e.class}\t#{e.message}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
no_tasks do
|
29
|
+
def e(str)
|
30
|
+
URI.escape(str) if str
|
31
|
+
end
|
32
|
+
|
33
|
+
def split_path(path)
|
34
|
+
path = path.gsub(/.*list\//, '').gsub(/.*view_graph\//, '')
|
35
|
+
path.split('/').map {|p| URI.unescape(p) }
|
36
|
+
end
|
37
|
+
|
38
|
+
def client(uri)
|
39
|
+
GrowthForecast::Client.new("#{uri.scheme}://#{uri.host}:#{uri.port}")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -61,8 +61,12 @@ module GrowthForecast
|
|
61
61
|
# "section_name"=>"hostname",
|
62
62
|
# "id"=>3},
|
63
63
|
# ]
|
64
|
-
def list_graph
|
65
|
-
get_json('/json/list/graph')
|
64
|
+
def list_graph(service_name = nil, section_name = nil, graph_name = nil)
|
65
|
+
graphs = get_json('/json/list/graph')
|
66
|
+
graphs = graphs.select {|g| g['service_name'] == service_name } if service_name
|
67
|
+
graphs = graphs.select {|g| g['section_name'] == section_name } if section_name
|
68
|
+
graphs = graphs.select {|g| g['graph_name'] == graph_name } if graph_name
|
69
|
+
graphs
|
66
70
|
end
|
67
71
|
|
68
72
|
# A Helper: Get the list of section
|
@@ -137,7 +141,7 @@ module GrowthForecast
|
|
137
141
|
# "sllimit"=>-100000,
|
138
142
|
# "md5"=>"3c59dc048e8850243be8079a5c74d079"}
|
139
143
|
def get_graph(service_name, section_name, graph_name)
|
140
|
-
get_json("/api/#{service_name}/#{section_name}/#{graph_name}")
|
144
|
+
get_json("/api/#{e service_name}/#{e section_name}/#{e graph_name}")
|
141
145
|
end
|
142
146
|
|
143
147
|
# Get the propety of a graph, /json/graph/:id
|
@@ -176,7 +180,7 @@ module GrowthForecast
|
|
176
180
|
# @param [String] graph_name
|
177
181
|
# @param [Hash] params The POST parameters. See #get_graph
|
178
182
|
def post_graph(service_name, section_name, graph_name, params)
|
179
|
-
post_query("/api/#{service_name}/#{section_name}/#{graph_name}", params)
|
183
|
+
post_query("/api/#{e service_name}/#{e section_name}/#{e graph_name}", params)
|
180
184
|
end
|
181
185
|
|
182
186
|
# Delete a graph, POST /delete/:service_name/:section_name/:graph_name
|
@@ -184,7 +188,7 @@ module GrowthForecast
|
|
184
188
|
# @param [String] section_name
|
185
189
|
# @param [String] graph_name
|
186
190
|
def delete_graph(service_name, section_name, graph_name)
|
187
|
-
post_query("/delete/#{service_name}/#{section_name}/#{graph_name}")
|
191
|
+
post_query("/delete/#{e service_name}/#{e section_name}/#{e graph_name}")
|
188
192
|
end
|
189
193
|
|
190
194
|
# Update the property of a graph, /json/edit/graph/:id
|
@@ -284,6 +288,10 @@ module GrowthForecast
|
|
284
288
|
|
285
289
|
private
|
286
290
|
|
291
|
+
def e(str)
|
292
|
+
URI.escape(str) if str
|
293
|
+
end
|
294
|
+
|
287
295
|
def client
|
288
296
|
@client ||= HTTPClient.new
|
289
297
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe CLI::GrowthforecastClient do
|
4
|
+
include_context "setup_growthforecast_client"
|
5
|
+
before(:all) { @cli = CLI::GrowthforecastClient.new }
|
6
|
+
|
7
|
+
context "#split_path" do
|
8
|
+
context 'list service url' do
|
9
|
+
before { @url = 'http://localhost/list/service_name?t=sh' }
|
10
|
+
before { @service_name, @section_name, @graph_name = @cli.split_path(URI.parse(@url).path) }
|
11
|
+
it { @service_name.should == 'service_name' }
|
12
|
+
it { @section_name.should be_nil }
|
13
|
+
it { @graph_name.should be_nil }
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'list section url' do
|
17
|
+
before { @url = 'http://localhost/list/service_name/section_name?t=sh' }
|
18
|
+
before { @service_name, @section_name, @graph_name = @cli.split_path(URI.parse(@url).path) }
|
19
|
+
it { @service_name.should == 'service_name' }
|
20
|
+
it { @section_name.should == 'section_name' }
|
21
|
+
it { @graph_name.should be_nil }
|
22
|
+
end
|
23
|
+
|
24
|
+
context 'view_graph url' do
|
25
|
+
before { @url = 'http://localhost/view_graph/service_name/section_name/graph_name?t=sh' }
|
26
|
+
before { @service_name, @section_name, @graph_name = @cli.split_path(URI.parse(@url).path) }
|
27
|
+
it { @service_name.should == 'service_name' }
|
28
|
+
it { @section_name.should == 'section_name' }
|
29
|
+
it { @graph_name.should == 'graph_name' }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context "delete_graph" do
|
34
|
+
pending
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
@@ -10,14 +10,14 @@ shared_context "setup_growthforecast_client" do
|
|
10
10
|
include_context "stub_post_graph" if ENV['MOCK'] == 'on'
|
11
11
|
include_context "stub_delete_graph" if ENV['MOCK'] == 'on'
|
12
12
|
before(:all) {
|
13
|
-
@client.delete_graph("
|
14
|
-
@client.delete_graph("
|
15
|
-
@client.post_graph("
|
16
|
-
@client.post_graph("
|
13
|
+
@client.delete_graph("app name", "host name", "<1sec count") rescue nil
|
14
|
+
@client.delete_graph("app name", "host name", "<2sec count") rescue nil
|
15
|
+
@client.post_graph("app name", "host name", "<1sec count", { 'number' => 0 }) rescue nil
|
16
|
+
@client.post_graph("app name", "host name", "<2sec count", { 'number' => 0 }) rescue nil
|
17
17
|
}
|
18
18
|
after(:all) {
|
19
|
-
@client.delete_graph("
|
20
|
-
@client.delete_graph("
|
19
|
+
@client.delete_graph("app name", "host name", "<1sec count") rescue nil
|
20
|
+
@client.delete_graph("app name", "host name", "<2sec count") rescue nil
|
21
21
|
}
|
22
22
|
end
|
23
23
|
|
@@ -80,9 +80,9 @@ describe GrowthForecast::Client do
|
|
80
80
|
include_context "stub_delete_graph" if ENV['MOCK'] == 'on'
|
81
81
|
let(:graph) {
|
82
82
|
{
|
83
|
-
"service_name" => "
|
84
|
-
"section_name" => "
|
85
|
-
"graph_name" => "<
|
83
|
+
"service_name" => "app name",
|
84
|
+
"section_name" => "host name",
|
85
|
+
"graph_name" => "<1sec count",
|
86
86
|
}
|
87
87
|
}
|
88
88
|
before { @client.post_graph(graph['service_name'], graph['section_name'], graph['graph_name'], { 'number' => 0 }) }
|
@@ -143,7 +143,7 @@ describe GrowthForecast::Client do
|
|
143
143
|
{
|
144
144
|
"service_name" => graphs.first["service_name"],
|
145
145
|
"section_name" => graphs.first["section_name"],
|
146
|
-
"graph_name" => "
|
146
|
+
"graph_name" => "complex graph test",
|
147
147
|
"description" => "complex graph test",
|
148
148
|
"sort" => 10
|
149
149
|
}
|
data/spec/spec_helper.rb
CHANGED
data/spec/support/mock.rb
CHANGED
@@ -5,13 +5,13 @@ base_uri = 'http://localhost:5125'
|
|
5
5
|
shared_context "stub_list_graph" do
|
6
6
|
let(:list_graph_example) {
|
7
7
|
[
|
8
|
-
{"service_name"=>"
|
9
|
-
"section_name"=>"
|
10
|
-
"graph_name"=>"<
|
8
|
+
{"service_name"=>"app name",
|
9
|
+
"section_name"=>"host name",
|
10
|
+
"graph_name"=>"<1sec count",
|
11
11
|
"id"=>1},
|
12
|
-
{"service_name"=>"
|
13
|
-
"section_name"=>"
|
14
|
-
"graph_name"=>"<
|
12
|
+
{"service_name"=>"app name",
|
13
|
+
"section_name"=>"host name",
|
14
|
+
"graph_name"=>"<2sec count",
|
15
15
|
"id"=>2},
|
16
16
|
]
|
17
17
|
}
|
@@ -33,14 +33,14 @@ shared_context "stub_get_graph" do
|
|
33
33
|
"stype"=>"AREA",
|
34
34
|
"adjustval"=>"1",
|
35
35
|
"meta"=>"",
|
36
|
-
"service_name"=>"
|
36
|
+
"service_name"=>"app name",
|
37
37
|
"gmode"=>"gauge",
|
38
38
|
"color"=>"#cc6633",
|
39
39
|
"created_at"=>"2013/02/02 00:41:11",
|
40
|
-
"section_name"=>"
|
40
|
+
"section_name"=>"host name",
|
41
41
|
"ulimit"=>1000000000,
|
42
42
|
"id"=>1,
|
43
|
-
"graph_name"=>"<
|
43
|
+
"graph_name"=>"<1sec count",
|
44
44
|
"description"=>"",
|
45
45
|
"sulimit"=>100000,
|
46
46
|
"unit"=>"",
|
@@ -71,14 +71,14 @@ shared_context "stub_get_graph_by_id" do
|
|
71
71
|
"stype"=>"AREA",
|
72
72
|
"adjustval"=>"1",
|
73
73
|
# "meta"=>"",
|
74
|
-
"service_name"=>"
|
74
|
+
"service_name"=>"app name",
|
75
75
|
"gmode"=>"gauge",
|
76
76
|
"color"=>"#cc6633",
|
77
77
|
"created_at"=>"2013/02/02 00:41:11",
|
78
|
-
"section_name"=>"
|
78
|
+
"section_name"=>"host name",
|
79
79
|
"ulimit"=>1000000000,
|
80
80
|
"id"=>1,
|
81
|
-
"graph_name"=>"<
|
81
|
+
"graph_name"=>"<1sec count",
|
82
82
|
"description"=>"",
|
83
83
|
"sulimit"=>100000,
|
84
84
|
"unit"=>"",
|
@@ -132,9 +132,9 @@ end
|
|
132
132
|
shared_context "stub_list_complex" do
|
133
133
|
let(:list_complex_example) {
|
134
134
|
[
|
135
|
-
{"service_name"=>"
|
136
|
-
"section_name"=>"
|
137
|
-
"graph_name"=>"
|
135
|
+
{"service_name"=>"app name",
|
136
|
+
"section_name"=>"host name",
|
137
|
+
"graph_name"=>"complex graph test",
|
138
138
|
"id"=>1},
|
139
139
|
]
|
140
140
|
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
shared_context "setup_growthforecast_client" do
|
4
|
+
before(:all) { @client = GrowthForecast::Client.new('http://localhost:5125') }
|
5
|
+
|
6
|
+
include_context "stub_list_graph" if ENV['MOCK'] == 'on'
|
7
|
+
let(:graphs) { @client.list_graph }
|
8
|
+
let(:graph) { graphs.first }
|
9
|
+
|
10
|
+
include_context "stub_post_graph" if ENV['MOCK'] == 'on'
|
11
|
+
include_context "stub_delete_graph" if ENV['MOCK'] == 'on'
|
12
|
+
before(:all) {
|
13
|
+
@client.delete_graph("app name", "host name", "<1sec count") rescue nil
|
14
|
+
@client.delete_graph("app name", "host name", "<2sec count") rescue nil
|
15
|
+
@client.post_graph("app name", "host name", "<1sec count", { 'number' => 0 }) rescue nil
|
16
|
+
@client.post_graph("app name", "host name", "<2sec count", { 'number' => 0 }) rescue nil
|
17
|
+
}
|
18
|
+
after(:all) {
|
19
|
+
@client.delete_graph("app name", "host name", "<1sec count") rescue nil
|
20
|
+
@client.delete_graph("app name", "host name", "<2sec count") rescue nil
|
21
|
+
}
|
22
|
+
end
|
metadata
CHANGED
@@ -1,148 +1,118 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: growthforecast-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Naotoshi Seo
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-03-18 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: httpclient
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
28
|
+
name: thor
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
|
-
type: :
|
34
|
+
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ~>
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '2.11'
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '2.11'
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: webmock
|
42
|
+
name: rake
|
64
43
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
44
|
requirements:
|
67
|
-
- -
|
45
|
+
- - '>='
|
68
46
|
- !ruby/object:Gem::Version
|
69
47
|
version: '0'
|
70
48
|
type: :development
|
71
49
|
prerelease: false
|
72
50
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
51
|
requirements:
|
75
|
-
- -
|
52
|
+
- - '>='
|
76
53
|
- !ruby/object:Gem::Version
|
77
54
|
version: '0'
|
78
55
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
56
|
+
name: rspec
|
80
57
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
58
|
requirements:
|
83
|
-
- -
|
59
|
+
- - ~>
|
84
60
|
- !ruby/object:Gem::Version
|
85
|
-
version: '
|
61
|
+
version: '2.11'
|
86
62
|
type: :development
|
87
63
|
prerelease: false
|
88
64
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
65
|
requirements:
|
91
|
-
- -
|
66
|
+
- - ~>
|
92
67
|
- !ruby/object:Gem::Version
|
93
|
-
version: '
|
68
|
+
version: '2.11'
|
94
69
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
70
|
+
name: webmock
|
96
71
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
72
|
requirements:
|
99
|
-
- -
|
73
|
+
- - '>='
|
100
74
|
- !ruby/object:Gem::Version
|
101
75
|
version: '0'
|
102
76
|
type: :development
|
103
77
|
prerelease: false
|
104
78
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
79
|
requirements:
|
107
|
-
- -
|
80
|
+
- - '>='
|
108
81
|
- !ruby/object:Gem::Version
|
109
82
|
version: '0'
|
110
83
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
84
|
+
name: pry
|
112
85
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
86
|
requirements:
|
115
|
-
- -
|
87
|
+
- - '>='
|
116
88
|
- !ruby/object:Gem::Version
|
117
89
|
version: '0'
|
118
90
|
type: :development
|
119
91
|
prerelease: false
|
120
92
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
93
|
requirements:
|
123
|
-
- -
|
94
|
+
- - '>='
|
124
95
|
- !ruby/object:Gem::Version
|
125
96
|
version: '0'
|
126
97
|
- !ruby/object:Gem::Dependency
|
127
98
|
name: tapp
|
128
99
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
100
|
requirements:
|
131
|
-
- -
|
101
|
+
- - '>='
|
132
102
|
- !ruby/object:Gem::Version
|
133
103
|
version: '0'
|
134
104
|
type: :development
|
135
105
|
prerelease: false
|
136
106
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
107
|
requirements:
|
139
|
-
- -
|
108
|
+
- - '>='
|
140
109
|
- !ruby/object:Gem::Version
|
141
110
|
version: '0'
|
142
111
|
description: A Ruby Client Library for GrowthForecast API
|
143
112
|
email:
|
144
113
|
- sonots@gmail.com
|
145
|
-
executables:
|
114
|
+
executables:
|
115
|
+
- growthforecast-client
|
146
116
|
extensions: []
|
147
117
|
extra_rdoc_files: []
|
148
118
|
files:
|
@@ -155,45 +125,44 @@ files:
|
|
155
125
|
- README.md
|
156
126
|
- Rakefile
|
157
127
|
- VERSION
|
128
|
+
- bin/growthforecast-client
|
158
129
|
- examples/create_complex.rb
|
159
130
|
- examples/edit_graph.rb
|
160
131
|
- growthforecast-client.gemspec
|
132
|
+
- lib/cli/growthforecast-client.rb
|
161
133
|
- lib/growthforecast-client.rb
|
162
134
|
- lib/growthforecast/client.rb
|
135
|
+
- spec/cli/growthforecast-client_spec.rb
|
163
136
|
- spec/growthforecast/client_spec.rb
|
164
137
|
- spec/spec_helper.rb
|
165
138
|
- spec/support/mock.rb
|
139
|
+
- spec/support/setup.rb
|
166
140
|
homepage: https://github.com/sonots/growthforecast-client
|
167
141
|
licenses: []
|
142
|
+
metadata: {}
|
168
143
|
post_install_message:
|
169
144
|
rdoc_options: []
|
170
145
|
require_paths:
|
171
146
|
- lib
|
172
147
|
required_ruby_version: !ruby/object:Gem::Requirement
|
173
|
-
none: false
|
174
148
|
requirements:
|
175
|
-
- -
|
149
|
+
- - '>='
|
176
150
|
- !ruby/object:Gem::Version
|
177
151
|
version: '0'
|
178
|
-
segments:
|
179
|
-
- 0
|
180
|
-
hash: 503186860326361050
|
181
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
|
-
none: false
|
183
153
|
requirements:
|
184
|
-
- -
|
154
|
+
- - '>='
|
185
155
|
- !ruby/object:Gem::Version
|
186
156
|
version: '0'
|
187
|
-
segments:
|
188
|
-
- 0
|
189
|
-
hash: 503186860326361050
|
190
157
|
requirements: []
|
191
158
|
rubyforge_project:
|
192
|
-
rubygems_version:
|
159
|
+
rubygems_version: 2.0.0
|
193
160
|
signing_key:
|
194
|
-
specification_version:
|
161
|
+
specification_version: 4
|
195
162
|
summary: A Ruby Client Library for GrowthForecast API
|
196
163
|
test_files:
|
164
|
+
- spec/cli/growthforecast-client_spec.rb
|
197
165
|
- spec/growthforecast/client_spec.rb
|
198
166
|
- spec/spec_helper.rb
|
199
167
|
- spec/support/mock.rb
|
168
|
+
- spec/support/setup.rb
|