growthforecast-client 0.82.2 → 0.82.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8bfa0e7cb7a91a12649f2b549d6bd5c1e8c0faa5
4
- data.tar.gz: ca85e924dd369e2c51d1fca90da58eef4ea433f2
3
+ metadata.gz: 62c91e2c0134074675e206a974920e78f007b397
4
+ data.tar.gz: d4443209188a3b81a2eb28163d7e11e00194069a
5
5
  SHA512:
6
- metadata.gz: 079df0f839115329544636b9d34b5d8c99f7987a5a557d52ab47168f55839fd4e430b02bea4d57e2ef2c9953b676b605e15d5f42f53633e12b2209949d91b89a
7
- data.tar.gz: 3207f1fbfd37a30a2f43a35b66edec8b3f3a94dd31d1909af76c1ddd96e338a187c5e33a700cd94c08e02af9c1d233a280a0895741adf2d482cb6320dbd91c1e
6
+ metadata.gz: bf3f6b11580d9b6afe6b94f2772cc7b92a06ff4629b05a15d20b9e33777f51155c3dca228ac6bcb26744e19396517361e8a43922a9ac1d1eeb0f8d19826cb7c8
7
+ data.tar.gz: 69f14af6f9f228170478bb2a461555d5b622a9325b3ea6472e3d569cb8091ec166b12ec3c356a7892b2a62881a013e1f63ddd866c567e8b299bbc22fac9a3cd8
@@ -1,3 +1,9 @@
1
+ # 0.82.3 (2014/06/10)
2
+
3
+ Enhancement:
4
+
5
+ - Add `bench` command
6
+
1
7
  # 0.82.2 (2014/03/26)
2
8
 
3
9
  Enhancement:
data/Gemfile CHANGED
@@ -2,4 +2,3 @@
2
2
  source 'https://rubygems.org'
3
3
 
4
4
  gemspec
5
- gem 'growthforecast-client', path: '.'
@@ -3,7 +3,7 @@
3
3
 
4
4
  Gem::Specification.new do |gem|
5
5
  gem.name = 'growthforecast-client'
6
- gem.version = File.read(File.expand_path('VERSION', File.dirname(__FILE__))).chomp
6
+ gem.version = '0.82.3'
7
7
  gem.authors = ["Naotoshi Seo"]
8
8
  gem.email = ["sonots@gmail.com"]
9
9
  gem.homepage = "https://github.com/sonots/growthforecast-client"
@@ -16,8 +16,8 @@ Gem::Specification.new do |gem|
16
16
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
17
  gem.require_paths = ["lib"]
18
18
 
19
- gem.add_runtime_dependency "httpclient"
20
19
  gem.add_runtime_dependency "thor"
20
+ gem.add_runtime_dependency "parallel"
21
21
 
22
22
  # for testing
23
23
  gem.add_development_dependency "rake"
@@ -90,6 +90,36 @@ class GrowthForecast::CLI < Thor
90
90
  puts @client.post_vrule(service_name, section_name, graph_name, JSON.parse(json))
91
91
  end
92
92
 
93
+ desc 'bench <api_url>', 'benchmark the GrowthForecast'
94
+ long_desc <<-LONGDESC
95
+ Benchmark the GrowthForecast.
96
+
97
+ ex) growthforecast-client bench http://{hostname}:{port} -n 100 -c 10
98
+ LONGDESC
99
+ option :requests, :type => :numeric, :aliases => '-n', :default => 100
100
+ option :concurrency, :type => :numeric, :aliases => '-c', :default => 1
101
+ def bench(url)
102
+ requests, concurrency = options[:requests], options[:concurrency]
103
+ require 'parallel'
104
+ base_uri = split_url(url).first
105
+ @client = client(base_uri)
106
+ # generate unique paths of the same number with number of requests beforehand
107
+ paths = []
108
+ requests.times do |i|
109
+ paths << [(i/100).to_s, (i/50).to_s, i.to_s]
110
+ end
111
+ # Take a benchmark in parallel
112
+ start = Time.now
113
+ Parallel.each_with_index(paths, :in_processes => concurrency) do |path, i|
114
+ puts "Completed #{i} requests" if i % 1000 == 0 and i > 0
115
+ @client.post_graph(path[0], path[1], path[2], { "number" => rand(1000) }) rescue nil
116
+ end
117
+ puts "Completed #{requests} requests"
118
+ duration = (Time.now - start).to_f
119
+ puts "Requests per second: #{requests / duration} [#/sec] (mean)"
120
+ puts "Time per request: #{duration / requests * 1000} [ms] (mean)"
121
+ end
122
+
93
123
  no_tasks do
94
124
  def delete_graphs(graphs, graph_names = nil, section_names = nil)
95
125
  graphs.each do |graph|
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: growthforecast-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.82.2
4
+ version: 0.82.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: 2014-03-26 00:00:00.000000000 Z
11
+ date: 2014-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: httpclient
14
+ name: thor
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: thor
28
+ name: parallel
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '2.11'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2.11'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: webmock
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: pry
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: pry-nav
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: A Ruby Client Library for GrowthForecast API
@@ -116,16 +116,15 @@ executables:
116
116
  extensions: []
117
117
  extra_rdoc_files: []
118
118
  files:
119
- - .gitignore
120
- - .rdebugrc
121
- - .rspec
122
- - .travis.yml
119
+ - ".gitignore"
120
+ - ".rdebugrc"
121
+ - ".rspec"
122
+ - ".travis.yml"
123
123
  - CHANGELOG.md
124
124
  - Gemfile
125
125
  - LICENSE
126
126
  - README.md
127
127
  - Rakefile
128
- - VERSION
129
128
  - bin/growthforecast-client
130
129
  - examples/create_complex.rb
131
130
  - examples/edit_graph.rb
@@ -148,17 +147,17 @@ require_paths:
148
147
  - lib
149
148
  required_ruby_version: !ruby/object:Gem::Requirement
150
149
  requirements:
151
- - - '>='
150
+ - - ">="
152
151
  - !ruby/object:Gem::Version
153
152
  version: '0'
154
153
  required_rubygems_version: !ruby/object:Gem::Requirement
155
154
  requirements:
156
- - - '>='
155
+ - - ">="
157
156
  - !ruby/object:Gem::Version
158
157
  version: '0'
159
158
  requirements: []
160
159
  rubyforge_project:
161
- rubygems_version: 2.0.3
160
+ rubygems_version: 2.2.2
162
161
  signing_key:
163
162
  specification_version: 4
164
163
  summary: A Ruby Client Library for GrowthForecast API
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.82.2