home_wrecker 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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/home_wrecker +4 -0
  3. data/lib/home_wrecker.rb +63 -0
  4. metadata +60 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2ea593da5a2b27ed737455410f69b4c137d9cbad
4
+ data.tar.gz: 8afbf159ee7d3e1156531edb030b7470c8f7a813
5
+ SHA512:
6
+ metadata.gz: 311682ca2fb2f3df97c9335665822fd6202e424361ced6a4c4d0e4d5e9cfce20c5a5394dd32e316824ed2bf09873e4d601810c3fb2dc7f73f9d30170c4f1f5fe
7
+ data.tar.gz: 94a0575c0028ce54bf968e6a1a18531b2a60bcb1f5cc644d0fca66e5b551844572a87ccaa60d7fc3c43cc52d64cbf09172fa6a7b0c9d51a631aa7f61d464f1d2
data/bin/home_wrecker ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require 'home_wrecker'
3
+
4
+ HomeWrecker.start(ARGV)
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env ruby
2
+ require "thor"
3
+ begin
4
+ File.read "./config.rb"
5
+ rescue => err
6
+ config = File.new("config.rb", "w")
7
+ config.puts "#!/usr/bin/env ruby
8
+ $endpoints = [
9
+ # example 'users/13',
10
+ # example 'users/4',
11
+ ]
12
+ $urls = [
13
+ # example 'https://api.example.com',
14
+ # example 'https://api.example.com'
15
+ ]
16
+ # $extra_args = \" example: -H 'Authorization: Token token=\\\"example_token\\\"' -H 'X_API_EMAIL: example@example.com'\"
17
+ $verbose = false
18
+ $seconds = '3'
19
+
20
+ "
21
+ puts "confing file created. Please update config.rb and try again"
22
+ exit
23
+ end
24
+ require "./config.rb"
25
+
26
+ class HomeWrecker < Thor
27
+ desc "wreck", "Attack the Castle."
28
+
29
+ def wreck
30
+ $extra_args ||= ""
31
+ siege_check = `which siege`
32
+ if siege_check == ""
33
+ say "please ensure that siege is installed. run: $ brew install siege", :red
34
+ exit
35
+ end
36
+ file = File.new("seige_output.html", "w")
37
+ file.puts '<body><head><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" /><style>.url{background-color: orange;} td{white-space: pre; vertical-align:top}</style></head><table class="table table-striped"><thead>'
38
+ $urls.each do |url|
39
+ file.puts "<th>#{url}</th>"
40
+ end
41
+ file.puts '</thead><tbody>'
42
+ $endpoints.each do |endpoint|
43
+ file.puts '<tr align="top">'
44
+ $urls.each do |url|
45
+ final_url = "#{url}/#{endpoint}"
46
+ say "hitting #{final_url} for #{$seconds} seconds", :green
47
+ cmd = "siege -v -b -t#{$seconds}S #{final_url} #{$extra_args}"
48
+ file.puts '<td>'
49
+ file.puts "<span class='url'>#{final_url}</span><br />"
50
+ f = `#{cmd} 2>&1`
51
+ if $verbose
52
+ file.puts f
53
+ else
54
+ file.puts f.gsub(/\n\e.*$/, '')
55
+ end
56
+ file.puts '</td>'
57
+ end
58
+ file.puts '</tr>'
59
+ end
60
+ file.puts '</table></body>'
61
+ `open seige_output.html`
62
+ end
63
+ end
metadata ADDED
@@ -0,0 +1,60 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: home_wrecker
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ platform: ruby
6
+ authors:
7
+ - Nathan Brakken
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-07-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.19.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.19.1
27
+ description: A load testing gem that compares two sites using Siege
28
+ email: nathanbrakken@gmail.com
29
+ executables:
30
+ - home_wrecker
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - bin/home_wrecker
35
+ - lib/home_wrecker.rb
36
+ homepage: http://rubygems.org/gems/home_wrecker
37
+ licenses:
38
+ - MIT
39
+ metadata: {}
40
+ post_install_message:
41
+ rdoc_options: []
42
+ require_paths:
43
+ - lib
44
+ required_ruby_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ requirements: []
55
+ rubyforge_project:
56
+ rubygems_version: 2.2.1
57
+ signing_key:
58
+ specification_version: 4
59
+ summary: Hola!
60
+ test_files: []