blitz 0.1.8 → 0.1.9

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.
data/blitz.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{blitz}
8
- s.version = "0.1.8"
8
+ s.version = "0.1.9"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["pcapr"]
12
- s.date = %q{2011-07-13}
12
+ s.date = %q{2011-07-14}
13
13
  s.default_executable = %q{blitz}
14
14
  s.description = %q{Make load and performance testing a fun sport}
15
15
  s.email = %q{support@blitz.io}
data/lib/blitz.rb CHANGED
@@ -5,7 +5,7 @@ require 'pp'
5
5
 
6
6
  class Blitz # :nodoc:
7
7
  require 'blitz/helper'
8
- Version = "0.1.8"
8
+ Version = "0.1.9"
9
9
 
10
10
  extend Blitz::Helper
11
11
 
@@ -152,6 +152,8 @@ class Curl < Command # :nodoc:
152
152
  duration = recent.duration * 1000
153
153
  if duration >= 0
154
154
  output << "%13u " % duration
155
+ else
156
+ output << "%13s " % 'no data'
155
157
  end
156
158
 
157
159
  output << "%7u " % recent.errors
@@ -180,7 +182,8 @@ class Curl < Command # :nodoc:
180
182
  { :short => '-T', :long => '--timeout', :value => '<ms>', :help => 'Wait time for both connect and responses' },
181
183
  { :short => '-u', :long => '--user', :value => '<user[:pass]>', :help => 'User and password for authentication' },
182
184
  { :short => '-X', :long => '--request', :value => '<string>', :help => 'Request method to use (GET, HEAD, PUT, etc.)' },
183
- { :short => '-v', :long => '--verbose', :value => '', :help => 'Print the request/response headers' },
185
+ { :short => '-v', :long => '--variable', :value => '<string>', :help => 'Define a variable to use' },
186
+ { :short => '-V', :long => '--verbose', :value => '', :help => 'Print the request/response headers' },
184
187
  { :short => '-1', :long => '--tlsv1', :value => '', :help => 'Use TLSv1 (SSL)' },
185
188
  { :short => '-2', :long => '--sslv2', :value => '', :help => 'Use SSLv2 (SSL)' },
186
189
  { :short => '-3', :long => '--sslv3', :value => '', :help => 'Use SSLv3 (SSL)' }
@@ -199,6 +202,8 @@ class Curl < Command # :nodoc:
199
202
 
200
203
  def parse_cli argv
201
204
  hash = Hash.new
205
+ hash['text'] = argv.join(' ')
206
+
202
207
  while not argv.empty?
203
208
  break if argv.first[0,1] != '-'
204
209
 
@@ -289,7 +294,43 @@ class Curl < Command # :nodoc:
289
294
  next
290
295
  end
291
296
 
292
- if [ '-v', '--verbose' ].member? k
297
+ if /-v:(\S+)/ =~ k or /--variable:(\S+)/ =~ k
298
+ variable_name = $1
299
+ variable_parameter = shift(k, argv)
300
+
301
+ assert_match(/^[a-zA-Z][a-zA-Z0-9]*$/, variable_name, "variable name must be alphanumeric: #{variable_name}")
302
+
303
+ hash['variables'] ||= Hash.new
304
+
305
+ parameter_hash = {}
306
+ if variable_parameter.match(/^(list)?\[([^\]]+)\]$/)
307
+ parameter_hash['type'] = 'list'
308
+ parameter_hash['entries'] = $2.split(',')
309
+ elsif variable_parameter.match(/^(a|alpha)$/)
310
+ parameter_hash['type'] = 'alpha'
311
+ elsif variable_parameter.match(/^(a|alpha)\[(\d+)(,(\d+)(,(\d+))?)?\]$/)
312
+ parameter_hash['type'] = 'alpha'
313
+ parameter_hash['min'] = $2.to_i
314
+ parameter_hash['max'] = $3.to_i
315
+ parameter_hash['count'] = $4 ? $4 : 1000
316
+ elsif variable_parameter.match(/^(n|number)$/)
317
+ parameter_hash['type'] = 'number'
318
+ elsif variable_parameter.match(/^(n|number)\[(-?\d+),(-?\d+)(,(\d+))?\]$/)
319
+ parameter_hash['type'] = 'number'
320
+ parameter_hash['min'] = $2.to_i
321
+ parameter_hash['max'] = $3.to_i
322
+ parameter_hash['count'] = $4 ? $4.to_i : 1000
323
+ elsif variable_parameter.match(/^(u|udid)$/)
324
+ parameter_hash['type'] = 'udid'
325
+ else
326
+ raise ArgumentError, "Invalid variable parameter to #{variable_name}: #{variable_parameter}"
327
+ end
328
+
329
+ hash['variables'][variable_name] = parameter_hash
330
+ next
331
+ end
332
+
333
+ if [ '-V', '--verbose' ].member? k
293
334
  hash['verbose'] = true
294
335
  next
295
336
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: blitz
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.8
5
+ version: 0.1.9
6
6
  platform: ruby
7
7
  authors:
8
8
  - pcapr
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-07-13 00:00:00 -07:00
13
+ date: 2011-07-14 00:00:00 -07:00
14
14
  default_executable: blitz
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -135,7 +135,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
- hash: 848882337
138
+ hash: 63947055
139
139
  segments:
140
140
  - 0
141
141
  version: "0"