wasp 0.2.0

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.
@@ -0,0 +1,131 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'fileutils'
4
+
5
+ def usage
6
+ puts "USAGE: makeplot.rb [DIRECTORY]"
7
+ exit false
8
+ end
9
+
10
+ def contents(title, list, output="out.png")
11
+ content = "
12
+ # output as png image
13
+ set terminal png size 1024, 768
14
+
15
+ # save file to #{output}
16
+ set output \"#{output}\"
17
+
18
+ # graph title
19
+ set title \"#{title}\"
20
+
21
+ # nicer aspect ratio for image size
22
+ set size 1, 1
23
+
24
+ # y-axis grid
25
+ set grid y
26
+
27
+ # x-axis label
28
+ set xlabel \"request\"
29
+
30
+ # y-axis label
31
+ set ylabel \"response time (ms)\"\n\n"
32
+
33
+ plots = ''
34
+
35
+ if output == "summary.png" then
36
+ plots = "plot \"#{list}\" using 9 smooth frequency title \"request\", \
37
+ \"#{list}\" using 7 smooth frequency title \"connect\""
38
+ elsif output == "out.png" then
39
+ files = list.dup
40
+ return nil if files.nil?
41
+
42
+ if files.count > 0 then
43
+ first_file = files.pop
44
+ without_ext = first_file.sub(File.extname(first_file), '')
45
+ line = "plot \"#{first_file}\" using 9 smooth frequency title \"#{without_ext}\""
46
+ plots += line
47
+ end
48
+
49
+ files.each do |file|
50
+ without_ext = file.sub(File.extname(file), '')
51
+ line = ", \"#{file}\" using 9 smooth frequency title \"#{without_ext}\""
52
+ plots += line
53
+ end
54
+ end
55
+
56
+ plotfile = content + plots
57
+
58
+ plotfile
59
+ end
60
+
61
+ args = ARGV
62
+ directory = args.shift
63
+
64
+ usage if directory.nil?
65
+
66
+ dir = Dir.open(directory)
67
+
68
+ files = []
69
+ print "Find and unzip files..\n"
70
+ dir.each do |file|
71
+ if File.extname(file) == ".zip" then
72
+ `unzip "#{directory}/#{file}"`
73
+ `rm #{directory}/#{file}`
74
+ file.sub!(".zip", ".plot")
75
+ files.push(file)
76
+ puts "pushing #{file}"
77
+ end
78
+ end
79
+
80
+ print "Generate gnuplot file..\n"
81
+ dirname = directory.sub('/', '')
82
+ content = contents(dirname, files)
83
+
84
+ File.open(dirname + '.p', "w") do |file|
85
+ file.write(content)
86
+ end
87
+ print "Creating big one..\n"
88
+
89
+ fp = []
90
+ files.each do |f|
91
+ fd = File.open(f, "r")
92
+ fp.push(fd)
93
+ end
94
+
95
+ File.open("total.plot", "w+") do |file|
96
+ totalsize = 0
97
+ fp.each do |f|
98
+ totalsize += f.size
99
+ end
100
+ while file.size < totalsize do
101
+ begin
102
+ fp.each do |p|
103
+ line = p.readline
104
+ file.write(line)
105
+ end
106
+ rescue => ex
107
+ puts "#{ex.message}"
108
+ end
109
+ end
110
+ end
111
+
112
+ content = contents(dirname + "-summary", "total.plot", "summary.png")
113
+
114
+ File.open('total.p', "w") do |file|
115
+ file.write(content)
116
+ end
117
+
118
+ print "Generate graph image..\n"
119
+ `gnuplot #{dirname}.p`
120
+ `gnuplot total.p`
121
+
122
+ begin
123
+ FileUtils.mv(files + [dirname+'.p', "total.p", "total.plot", "out.png", "summary.png"], dirname)
124
+ rescue => ex
125
+ puts "#{ex.message}"
126
+ end
127
+ print "End.\n"
128
+ print "You can see the report image in #{dirname}/out.png\n"
129
+
130
+ exit true
131
+
@@ -0,0 +1,9 @@
1
+ require 'test/unit'
2
+ require 'wasp'
3
+
4
+ class WaspTest < Test::Unit::TestCase
5
+ def test_english_wasp
6
+ assert_equal "wasp world",
7
+ Wasp.hi("english")
8
+ end
9
+ end
@@ -0,0 +1,38 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'wasp'
3
+ s.version = '0.2.0'
4
+ s.summary = "Wasps!"
5
+ s.description = "Wasps!"
6
+ s.authors = ["arkemiq"]
7
+ s.email = 'arkemiq@gmail.com'
8
+ s.files = %w[
9
+ Gemfile
10
+ Rakefile
11
+ LICENSE
12
+ README.md
13
+ wasp.gemspec
14
+ bin/wasp
15
+ config/aws.yml
16
+ lib/wasp.rb
17
+ lib/wasp/wasp.rb
18
+ lib/wasp/nest.rb
19
+ lib/wasp/config.rb
20
+ lib/wasp/const.rb
21
+ lib/wasp/core_ext.rb
22
+ lib/wasp/ec2.rb
23
+ lib/wasp/queenwasp.rb
24
+ lib/wasp/stingab.rb
25
+ report/makeplot.rb
26
+ test/test_wasp.rb
27
+ ]
28
+ s.license = 'MIT'
29
+ s.required_ruby_version = '>= 1.9.2'
30
+ s.platform = Gem::Platform::RUBY
31
+ s.homepage = 'http://github.com/arkemiq'
32
+ s.add_dependency("aws-sdk", ">= 1.3.2")
33
+ s.add_dependency("net-ssh", ">= 2.3.0")
34
+ s.add_dependency("net-scp", ">= 1.0.4")
35
+ s.require_paths = ['lib']
36
+ s.bindir = 'bin'
37
+ s.executables = ['wasp']
38
+ end
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wasp
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - arkemiq
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-08-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: aws-sdk
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.3.2
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.3.2
30
+ - !ruby/object:Gem::Dependency
31
+ name: net-ssh
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 2.3.0
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 2.3.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: net-scp
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 1.0.4
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.4
62
+ description: Wasps!
63
+ email: arkemiq@gmail.com
64
+ executables:
65
+ - wasp
66
+ extensions: []
67
+ extra_rdoc_files: []
68
+ files:
69
+ - Gemfile
70
+ - Rakefile
71
+ - LICENSE
72
+ - README.md
73
+ - wasp.gemspec
74
+ - bin/wasp
75
+ - config/aws.yml
76
+ - lib/wasp.rb
77
+ - lib/wasp/wasp.rb
78
+ - lib/wasp/nest.rb
79
+ - lib/wasp/config.rb
80
+ - lib/wasp/const.rb
81
+ - lib/wasp/core_ext.rb
82
+ - lib/wasp/ec2.rb
83
+ - lib/wasp/queenwasp.rb
84
+ - lib/wasp/stingab.rb
85
+ - report/makeplot.rb
86
+ - test/test_wasp.rb
87
+ homepage: http://github.com/arkemiq
88
+ licenses:
89
+ - MIT
90
+ post_install_message:
91
+ rdoc_options: []
92
+ require_paths:
93
+ - lib
94
+ required_ruby_version: !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: 1.9.2
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ! '>='
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ requirements: []
107
+ rubyforge_project:
108
+ rubygems_version: 1.8.23
109
+ signing_key:
110
+ specification_version: 3
111
+ summary: Wasps!
112
+ test_files: []