bombard 0.0.4 → 0.0.5

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.
@@ -7,7 +7,7 @@ module Bombard
7
7
  site, asset = @options.split(',')
8
8
  prefix = site + '_' + asset + '_'
9
9
 
10
- %w[response longest shortest failed].each do |p|
10
+ %w[response longest shortest failed transaction_rate concurrency data_transferred].each do |p|
11
11
  prop = 'YVALUE=' + @results.send(p).to_s
12
12
  file = File.new(prefix + p + '.properties', 'w')
13
13
  file.puts prop
@@ -1,5 +1,5 @@
1
1
  # coding: utf-8
2
2
 
3
3
  module Bombard
4
- VERSION = '0.0.4'
4
+ VERSION = '0.0.5'
5
5
  end
data/lib/siege/results.rb CHANGED
@@ -23,26 +23,26 @@ class Siege
23
23
  :response_time, :transaction_rate, :throughput, :concurrency,
24
24
  :failed_requests, :longest_request, :shortest_request
25
25
 
26
- alias_method :failed, :failed_requests
26
+ alias_method :failed, :failed_requests
27
27
  alias_method :shortest, :shortest_request
28
- alias_method :longest, :longest_request
28
+ alias_method :longest, :longest_request
29
29
  alias_method :response, :response_time
30
30
 
31
31
  def initialize(results)
32
- @transactions = Integer TRANSACTIONS.match(results)[1]
33
- @availability = Float AVAILABILITY.match(results)[1]
34
- @elapsed_time = Float ELAPSED_TIME.match(results)[1]
35
- @data_transferred = Float DATA_TRANSFERRED.match(results)[1]
36
- @response_time = Float RESPONSE_TIME.match(results)[1]
37
- @transaction_rate = Float TRANSACTION_RATE.match(results)[1]
38
- @throughput = Float THROUGHPUT.match(results)[1]
39
- @concurrency = Float CONCURRENCY.match(results)[1]
40
- @failed_requests = Integer FAILED_REQUESTS.match(results)[1]
41
- @longest_request = Float LONGEST_REQUEST.match(results)[1]
42
- @shortest_request = Float SHORTEST_REQUEST.match(results)[1]
32
+ @transactions = Integer parse(:transactions)
33
+ @availability = Float parse(:availability)
34
+ @elapsed_time = Float parse(:elapsed_time)
35
+ @data_transferred = Float parse(:data_transferred)
36
+ @response_time = Float parse(:response_time)
37
+ @transaction_rate = Float parse(:transaction_rate)
38
+ @throughput = Float parse(:throughput)
39
+ @concurrency = Float parse(:concurrency)
40
+ @failed_requests = Integer parse(:failed_requests)
41
+ @longest_request = Float parse(:longest_request)
42
+ @shortest_request = Float parse(:shortest_request)
43
43
  @results = results
44
44
  rescue ArgumentError => e
45
- (e.message.include?('invalid value')) ? abort("A Siege error cccurred:\n#{results}") : raise(e)
45
+ (e.message.include?('invalid value')) ? dump_results : raise(e)
46
46
  end
47
47
 
48
48
  def[](key)
@@ -68,5 +68,14 @@ class Siege
68
68
  shortest_request: @shortest_request
69
69
  }
70
70
  end
71
+
72
+ def parse(const)
73
+ dump_results unless match = const_get(const).match(results)
74
+ match[1]
75
+ end
76
+
77
+ def dump_results
78
+ abort "A Siege error occurred:\n#@results"
79
+ end
71
80
  end
72
81
  end
data/lib/siege.rb CHANGED
@@ -31,13 +31,23 @@ class Siege
31
31
 
32
32
  def executor
33
33
  puts "Sieging with:\n\tsiege #{cli_opts} -f#{@url_file.name} 2>&1"
34
- `siege #{cli_opts} -f#{@url_file.name} 2>&1`
34
+ `siege #{cli_opts}`
35
+ end
36
+
37
+ def url_opt
38
+ ' -f' + @url_file.name
39
+ end
40
+
41
+ def stdout_to_stdin
42
+ ' 2>&1'
35
43
  end
36
44
 
37
45
  def cli_opts
38
46
  @conf.flat_map { |opt, val| OPTIONS[opt] + val.to_s }.
39
47
  join(' ').
40
48
  gsub(/(\-\w) true/, '\1').
41
- gsub(/\-\w false/, '')
49
+ gsub(/\-\w false/, '') +
50
+ url_opt +
51
+ stdout_to_stdin
42
52
  end
43
53
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bombard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-12 00:00:00.000000000 Z
12
+ date: 2014-05-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -170,12 +170,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
170
170
  - - ! '>='
171
171
  - !ruby/object:Gem::Version
172
172
  version: '0'
173
+ segments:
174
+ - 0
175
+ hash: -1593328606361558836
173
176
  required_rubygems_version: !ruby/object:Gem::Requirement
174
177
  none: false
175
178
  requirements:
176
179
  - - ! '>='
177
180
  - !ruby/object:Gem::Version
178
181
  version: '0'
182
+ segments:
183
+ - 0
184
+ hash: -1593328606361558836
179
185
  requirements: []
180
186
  rubyforge_project:
181
187
  rubygems_version: 1.8.23
@@ -183,4 +189,3 @@ signing_key:
183
189
  specification_version: 3
184
190
  summary: Bombard is a(nother) Siege wrapper for Ruby thats extensible.
185
191
  test_files: []
186
- has_rdoc: