stella 0.3.2 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. data/README.txt +24 -84
  2. data/Rakefile +1 -6
  3. data/doc/classes/Crypto.html +248 -0
  4. data/doc/classes/Crypto/Key.html +308 -0
  5. data/doc/classes/Enumerable.html +309 -0
  6. data/doc/classes/FileUtil.html +310 -0
  7. data/doc/classes/HTTPUtil.html +530 -0
  8. data/doc/classes/MathUtil.html +210 -0
  9. data/doc/classes/Stella.html +238 -0
  10. data/doc/classes/Stella/Adapter.html +127 -0
  11. data/doc/classes/Stella/Adapter/ApacheBench.html +1076 -0
  12. data/doc/classes/Stella/Adapter/Base.html +432 -0
  13. data/doc/classes/Stella/Adapter/CommandNotReady.html +146 -0
  14. data/doc/classes/Stella/Adapter/Httperf.html +949 -0
  15. data/doc/classes/Stella/Adapter/Siege.html +1011 -0
  16. data/doc/classes/Stella/CLI.html +914 -0
  17. data/doc/classes/Stella/CLI/Base.html +186 -0
  18. data/doc/classes/Stella/CLI/Language.html +149 -0
  19. data/doc/classes/Stella/CLI/LocalTest.html +268 -0
  20. data/doc/classes/Stella/Command.html +111 -0
  21. data/doc/classes/Stella/Command/Base.html +335 -0
  22. data/doc/classes/Stella/Config.html +292 -0
  23. data/doc/classes/Stella/InvalidArgument.html +242 -0
  24. data/doc/classes/Stella/LocalTest.html +450 -0
  25. data/doc/classes/Stella/Logger.html +548 -0
  26. data/doc/classes/Stella/Response.html +846 -0
  27. data/doc/classes/Stella/Storable.html +928 -0
  28. data/doc/classes/Stella/Test.html +142 -0
  29. data/doc/classes/Stella/Test/DaySummary.html +249 -0
  30. data/doc/classes/Stella/Test/Definition.html +294 -0
  31. data/doc/classes/Stella/Test/Definition/Rampup.html +215 -0
  32. data/doc/classes/Stella/Test/RunSummary.html +315 -0
  33. data/doc/classes/Stella/Test/SummaryBase.html +286 -0
  34. data/doc/classes/Stella/Test/TestSummary.html +200 -0
  35. data/doc/classes/Stella/Text.html +581 -0
  36. data/doc/classes/Stella/Text/Resource.html +289 -0
  37. data/doc/classes/Stella/UnavailableAdapter.html +242 -0
  38. data/doc/classes/Stella/UnknownValue.html +242 -0
  39. data/doc/classes/Stella/UnsupportedLanguage.html +115 -0
  40. data/doc/classes/Stella/Util.html +348 -0
  41. data/doc/classes/TextGraph.html +460 -0
  42. data/doc/classes/TimerUtil.html +431 -0
  43. data/doc/created.rid +1 -0
  44. data/doc/files/LICENSE_txt.html +129 -0
  45. data/doc/files/README_txt.html +209 -0
  46. data/doc/files/lib/stella/adapter/ab_rb.html +101 -0
  47. data/doc/files/lib/stella/adapter/base_rb.html +101 -0
  48. data/doc/files/lib/stella/adapter/httperf_rb.html +101 -0
  49. data/doc/files/lib/stella/adapter/siege_rb.html +101 -0
  50. data/doc/files/lib/stella/cli/base_rb.html +101 -0
  51. data/doc/files/lib/stella/cli/language_rb.html +101 -0
  52. data/doc/files/lib/stella/cli/localtest_rb.html +101 -0
  53. data/doc/files/lib/stella/cli_rb.html +112 -0
  54. data/doc/files/lib/stella/command/base_rb.html +101 -0
  55. data/doc/files/lib/stella/command/localtest_rb.html +101 -0
  56. data/doc/files/lib/stella/logger_rb.html +101 -0
  57. data/doc/files/lib/stella/response_rb.html +101 -0
  58. data/doc/files/lib/stella/storable_rb.html +109 -0
  59. data/doc/files/lib/stella/support_rb.html +101 -0
  60. data/doc/files/lib/stella/test/daysummary_rb.html +101 -0
  61. data/doc/files/lib/stella/test/definition_rb.html +101 -0
  62. data/doc/files/lib/stella/test/runsummary_rb.html +101 -0
  63. data/doc/files/lib/stella/test/summarybase_rb.html +101 -0
  64. data/doc/files/lib/stella/test/testsummary_rb.html +108 -0
  65. data/doc/files/lib/stella/text/resource_rb.html +108 -0
  66. data/doc/files/lib/stella/text_rb.html +108 -0
  67. data/doc/files/lib/stella_rb.html +128 -0
  68. data/doc/files/lib/utils/crypto-key_rb.html +116 -0
  69. data/doc/files/lib/utils/fileutil_rb.html +108 -0
  70. data/doc/files/lib/utils/httputil_rb.html +110 -0
  71. data/doc/files/lib/utils/mathutil_rb.html +101 -0
  72. data/doc/files/lib/utils/textgraph_rb.html +138 -0
  73. data/doc/files/lib/utils/timerutil_rb.html +108 -0
  74. data/doc/fr_class_index.html +66 -0
  75. data/doc/fr_file_index.html +62 -0
  76. data/doc/fr_method_index.html +309 -0
  77. data/doc/index.html +24 -0
  78. data/doc/rdoc-style.css +208 -0
  79. data/lib/stella.rb +5 -6
  80. data/lib/stella/adapter/ab.rb +4 -31
  81. data/lib/stella/adapter/base.rb +1 -15
  82. data/lib/stella/adapter/httperf.rb +4 -35
  83. data/lib/stella/adapter/siege.rb +29 -51
  84. data/lib/stella/cli.rb +22 -45
  85. data/lib/stella/cli/language.rb +0 -2
  86. data/lib/stella/cli/localtest.rb +0 -5
  87. data/lib/stella/command/base.rb +1 -1
  88. data/lib/stella/command/localtest.rb +68 -84
  89. data/lib/stella/test/daysummary.rb +93 -0
  90. data/lib/stella/test/definition.rb +5 -10
  91. data/lib/stella/test/{run/summary.rb → runsummary.rb} +6 -4
  92. data/lib/stella/test/{base.rb → summarybase.rb} +7 -3
  93. data/lib/stella/test/{summary.rb → testsummary.rb} +29 -27
  94. data/lib/utils/mathutil.rb +34 -36
  95. data/spec/base.rb +26 -0
  96. data/spec/shell_spec.rb +12 -0
  97. data/support/text/en.yaml +1 -7
  98. metadata +102 -8
  99. data/lib/stella/cli/agents.rb +0 -73
  100. data/lib/utils/escape.rb +0 -302
data/README.txt CHANGED
@@ -1,20 +1,13 @@
1
- Stella - Your Performance Testing Friend
2
-
3
- Release: 0.3.2-preview (2008-12-23)
4
-
5
- This is a PREVIEW release. Don't trust and double verify!
1
+ Stella Tools - Management and reporting tools for performance testing
6
2
 
3
+ Release: 0.5.1 (2008-12-23)
7
4
 
8
5
  == Prerequisites
9
6
 
10
7
  * Linux, *BSD, Solaris
11
8
  * Ruby 1.8.x or 1.9.x
12
9
  * Ruby Libraries
13
- * fastthread
14
- * mongrel
15
- * rspec
16
- * rdoc
17
-
10
+ *
18
11
  * One of:
19
12
  * Apache Bench
20
13
  * Siege
@@ -24,111 +17,58 @@ This is a PREVIEW release. Don't trust and double verify!
24
17
  == Installation
25
18
 
26
19
  Get it in one of the following ways:
27
- * RubyForge: http://stella.rubyforge.org/
28
- * gem install stella
20
+ * GitHub: http://github.com/solutious/stella
21
+ * RubyForge: http://stella.rubyforge.org/
22
+ * gem install stella
29
23
 
30
24
  Use ab, siege, and httperf like you normally would with the addition of stella at the beginning (examples are below).
31
25
 
32
- === Debian (and derivatives)
33
-
34
- Debian and its derivative (Ubunutu) handling packing a bit differently (see: http://pkg-ruby-extras.alioth.debian.org/rubygems.html). There are a couple errors to watch out for during the installation. The solutions are below:
35
-
36
- "no such file to load -- mkmf (LoadError)"
37
-
38
- apt-get install ruby1.8-dev
39
-
40
- "ERROR: RDoc documentation generator not installed!"
41
-
42
- apt-get install rdoc
43
-
44
-
45
26
  == Examples
46
27
 
47
- Run Apache Bench with a warmup and rampup from 100 to 300 virtual users in increments of 25
48
-
28
+ # Run Apache Bench with a warmup and rampup from 100 to 300 virtual users in increments of 25
49
29
  stella --warmup=0.5 --rampup=25,300 ab -c 100 -n 10000 http://stellaaahhhh.com/search?term=trooper
50
30
 
51
-
52
- Run Siege, repeat the test 5 times. Automatically creates a summary averages and standard deviations.
53
-
54
- stella --agent=ff-3-osx --testruns=5 siege -c 100 -r 100 -b http://stellaaahhhh.com/search?term=flock+of+seagulls
55
-
56
-
57
- Run Httperf like you normally would (but all the test data will be collected for you)
58
-
59
- stella httperf --hog --client=0/1 --server=127.0.0.1 --port=5600 --uri=/ --rate=50 --num-conns=3000 --timeout=5
60
-
61
-
31
+ # Run Siege, repeat the test 5 times. Automatically creates a summary averages and standard deviations.
32
+ stella --datapath=./stella --testruns=5 siege -c 100 -r 100 -b http://stellaaahhhh.com/search?term=flock+of+seagulls
33
+
34
+
62
35
  == Sample Output
63
36
 
64
- $ stella -f csv -x 5 -w 0.75 -r 25,125 -m "httpd 2.2.9-prefork" siege -c 75 -r 10 -b http://stella:5600/
65
- Writing test data to: stella/testruns/2008-12-23/test-054
66
-
67
- Warmup: 3750@37/1 100% 264.29/s 0.140s 0.024MB/s 0.340MB 14.000s .
37
+ $ stella -f csv -x 5 -w -m "httpd 2.2.9-prefork" siege -c 125 -r 100 -b http://stella:5600/
38
+ Writing test data to: ./stella/testruns/2008-12-23/test-006
68
39
 
69
- -------------------------------------------------------------------
70
- REQ@VU/s AVAIL REQ/s RTIME DATA/s DATA TIME
71
-
72
- Run 01: 7500@75/1 100% 345.30/s 0.210s 0.032MB/s 0.690MB 21.720s
73
- Run 02: 7500@75/1 100% 360.58/s 0.200s 0.033MB/s 0.690MB 20.800s
74
- Run 03: 7500@75/1 100% 359.02/s 0.210s 0.033MB/s 0.690MB 20.890s
75
- -------------------------------------------------------------------
76
- Total: 22500@73 100% 354.97/s 0.207s 0.033MB/s 2.070MB 63.410s
77
- Std Dev: 6.86/s 0.005s 0.001MB/s 0.414s
78
-
79
- Run 04: 10000@100/1 100% 384.47/s 0.260s 0.035MB/s 0.920MB 26.010s
80
- Run 05: 10000@100/1 100% 385.06/s 0.260s 0.035MB/s 0.920MB 25.970s
81
- Run 06: 10000@100/1 100% 380.95/s 0.260s 0.035MB/s 0.920MB 26.250s
82
- -------------------------------------------------------------------
83
- Total: 30000@98 100% 383.49/s 0.260s 0.035MB/s 2.760MB 78.230s
84
- Std Dev: 1.81/s 0.000s 0.000MB/s 0.124s
85
-
86
- Run 07: 12500@125/1 100% 397.20/s 0.310s 0.036MB/s 1.140MB 31.470s
87
- Run 08: 12500@125/1 100% 397.08/s 0.310s 0.036MB/s 1.140MB 31.480s
88
- Run 09: 12500@125/1 100% 397.58/s 0.310s 0.036MB/s 1.140MB 31.440s
89
- -------------------------------------------------------------------
90
- Total: 37500@123 100% 397.29/s 0.310s 0.036MB/s 3.420MB 94.390s
91
- Std Dev: 0.21/s 0.000s 0.000MB/s 0.017s
40
+ Warmup: 125@12 1.1700s 102.56/s 0.1100s (100.00%) .
92
41
 
42
+ Run 01: 1250@125 3.4800s 359.20/s 0.3200s (100.00%)
43
+ Run 02: 1250@125 3.4400s 363.37/s 0.3200s (100.00%)
44
+ Run 03: 1250@125 5.0000s 250.00/s 0.4700s (100.00%)
45
+ Run 04: 1250@125 3.3300s 375.38/s 0.3100s (100.00%)
46
+ Run 05: 1250@125 3.4100s 366.57/s 0.3100s (100.00%)
93
47
  -------------------------------------------------------------------
94
- Total: 90000@98 100% 378.58/s 0.259s 0.035MB/s 8.250MB 236.030s
95
- Std Dev: 18.09/s 0.042s 0.002MB/s 4.225s
96
-
48
+ Std Dev: 0.6359s 46.76/s 0.0622s
49
+ Total: 6250@116 18.6600s 342.90/s 0.3460s (100.00%)
97
50
 
98
51
  All test data is collected under ./stella (this can be changed with the parameter --datapath):
99
-
100
52
  $ ls -l ./stella/testruns/2008-12-23/
101
- test-001 test-002 test-003 test-004 test-005 test-006 ... test-054
53
+ test-001 test-002 test-003 test-004 test-005 test-006
102
54
 
103
-
104
55
  A symbolic link points to the most recent test:
105
-
106
56
  $ ls -l ./stella/latest/
107
57
  ID.txt MESSAGE.txt SUMMARY.csv run01 run02 run03 run04 run05 warmup
108
58
 
109
-
110
59
  Each run directory contains all associated data, including the command and configuration
111
-
112
60
  $ ls -l ./stella/latest/run01/
113
61
  COMMAND.txt STDOUT.txt siege.log STDERR.txt SUMMARY.csv siegerc
114
62
 
115
63
 
116
- == Known Issues
117
-
118
- * The output for the REQ@VU/s columns is a work in progress. It's not aligned across tools and it will likely change in the next release.
119
- * The summary data has not been audited. Don't trust and double verify!
120
- * httperf is functional but needs a lot more testing (most dev was done with ab and siege).
121
- * The Ruby API has not been finalized. It's functional but there's no example because it is subject to change.
122
- * There are no specs.
123
64
 
124
65
  == Report an issue
125
66
 
126
67
  Email issues and bugs to stella@solutious.com
127
68
 
69
+ == More Information
128
70
 
129
- == Even More Information
130
-
131
- http://www.youtube.com/watch?v=wmq-JDonTpc
71
+ http://stella.github.com/
132
72
 
133
73
  == License
134
74
 
data/Rakefile CHANGED
@@ -31,12 +31,7 @@ require 'rake/rdoctask'
31
31
  require 'fileutils'
32
32
  include FileUtils
33
33
 
34
- STELLA_HOME = File.expand_path(File.join(File.dirname(__FILE__)))
35
- $: << File.join(STELLA_HOME, 'lib')
36
-
37
- require 'stella'
38
- version = Stella::VERSION.to_s
39
-
34
+ version = "0.5.1"
40
35
  name = "stella"
41
36
 
42
37
  spec = Gem::Specification.new do |s|
@@ -0,0 +1,248 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: Crypto</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">Crypto</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/utils/crypto-key_rb.html">
59
+ lib/utils/crypto-key.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ </table>
66
+ </div>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+
71
+
72
+
73
+ <div id="contextContent">
74
+
75
+ <div id="description">
76
+ <pre>
77
+ ELSE
78
+ </pre>
79
+ <p>
80
+ module JRuby
81
+ </p>
82
+ <pre>
83
+ module OpenSSL
84
+ GEM_ONLY = false unless defined?(GEM_ONLY)
85
+ end
86
+ end
87
+
88
+ if JRuby::OpenSSL::GEM_ONLY
89
+ require 'jruby/openssl/gem'
90
+ else
91
+ module OpenSSL
92
+ class OpenSSLError &lt; StandardError; end
93
+ # These require the gem
94
+ %w[
95
+ ASN1
96
+ BN
97
+ Cipher
98
+ Config
99
+ Netscape
100
+ PKCS7
101
+ PKey
102
+ Random
103
+ SSL
104
+ X509
105
+ ].each {|c| autoload c, &quot;jruby/openssl/gem&quot;}
106
+ end
107
+ require &quot;jruby/openssl/builtin&quot;
108
+ end
109
+ </pre>
110
+ <p>
111
+ end
112
+ </p>
113
+
114
+ </div>
115
+
116
+
117
+ </div>
118
+
119
+ <div id="method-list">
120
+ <h3 class="section-bar">Methods</h3>
121
+
122
+ <div class="name-list">
123
+ <a href="#M000250">aws_sign</a>&nbsp;&nbsp;
124
+ <a href="#M000248">create_keys</a>&nbsp;&nbsp;
125
+ <a href="#M000249">sign</a>&nbsp;&nbsp;
126
+ </div>
127
+ </div>
128
+
129
+ </div>
130
+
131
+
132
+ <!-- if includes -->
133
+
134
+ <div id="section">
135
+
136
+ <div id="class-list">
137
+ <h3 class="section-bar">Classes and Modules</h3>
138
+
139
+ Class <a href="Crypto/Key.html" class="link">Crypto::Key</a><br />
140
+
141
+ </div>
142
+
143
+ <div id="constants-list">
144
+ <h3 class="section-bar">Constants</h3>
145
+
146
+ <div class="name-list">
147
+ <table summary="Constants">
148
+ <tr class="top-aligned-row context-row">
149
+ <td class="context-item-name">VERSION</td>
150
+ <td>=</td>
151
+ <td class="context-item-value">1.0</td>
152
+ </tr>
153
+ </table>
154
+ </div>
155
+ </div>
156
+
157
+
158
+
159
+
160
+
161
+
162
+ <!-- if method_list -->
163
+ <div id="methods">
164
+ <h3 class="section-bar">Public Class methods</h3>
165
+
166
+ <div id="method-M000250" class="method-detail">
167
+ <a name="M000250"></a>
168
+
169
+ <div class="method-heading">
170
+ <a href="#M000250" class="method-signature">
171
+ <span class="method-name">aws_sign</span><span class="method-args">(secret, string)</span>
172
+ </a>
173
+ </div>
174
+
175
+ <div class="method-description">
176
+ <p><a class="source-toggle" href="#"
177
+ onclick="toggleCode('M000250-source');return false;">[Source]</a></p>
178
+ <div class="method-source-code" id="M000250-source">
179
+ <pre>
180
+ <span class="ruby-comment cmt"># File lib/utils/crypto-key.rb, line 50</span>
181
+ 50: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">aws_sign</span>(<span class="ruby-identifier">secret</span>, <span class="ruby-identifier">string</span>)
182
+ 51: <span class="ruby-constant">Base64</span>.<span class="ruby-identifier">encode64</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sign</span>(<span class="ruby-identifier">secret</span>, <span class="ruby-identifier">string</span>)).<span class="ruby-identifier">strip</span>
183
+ 52: <span class="ruby-keyword kw">end</span>
184
+ </pre>
185
+ </div>
186
+ </div>
187
+ </div>
188
+
189
+ <div id="method-M000248" class="method-detail">
190
+ <a name="M000248"></a>
191
+
192
+ <div class="method-heading">
193
+ <a href="#M000248" class="method-signature">
194
+ <span class="method-name">create_keys</span><span class="method-args">(bits = 2048)</span>
195
+ </a>
196
+ </div>
197
+
198
+ <div class="method-description">
199
+ <p><a class="source-toggle" href="#"
200
+ onclick="toggleCode('M000248-source');return false;">[Source]</a></p>
201
+ <div class="method-source-code" id="M000248-source">
202
+ <pre>
203
+ <span class="ruby-comment cmt"># File lib/utils/crypto-key.rb, line 41</span>
204
+ 41: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">create_keys</span>(<span class="ruby-identifier">bits</span> = <span class="ruby-value">2048</span>)
205
+ 42: <span class="ruby-identifier">pk</span> = <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">PKey</span><span class="ruby-operator">::</span><span class="ruby-constant">RSA</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">bits</span>)
206
+ 43: <span class="ruby-keyword kw">end</span>
207
+ </pre>
208
+ </div>
209
+ </div>
210
+ </div>
211
+
212
+ <div id="method-M000249" class="method-detail">
213
+ <a name="M000249"></a>
214
+
215
+ <div class="method-heading">
216
+ <a href="#M000249" class="method-signature">
217
+ <span class="method-name">sign</span><span class="method-args">(secret, string)</span>
218
+ </a>
219
+ </div>
220
+
221
+ <div class="method-description">
222
+ <p><a class="source-toggle" href="#"
223
+ onclick="toggleCode('M000249-source');return false;">[Source]</a></p>
224
+ <div class="method-source-code" id="M000249-source">
225
+ <pre>
226
+ <span class="ruby-comment cmt"># File lib/utils/crypto-key.rb, line 46</span>
227
+ 46: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sign</span>(<span class="ruby-identifier">secret</span>, <span class="ruby-identifier">string</span>)
228
+ 47: <span class="ruby-identifier">sig</span> = <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">HMAC</span>.<span class="ruby-identifier">hexdigest</span>(<span class="ruby-ivar">@@digest</span>, <span class="ruby-identifier">secret</span>, <span class="ruby-identifier">string</span>).<span class="ruby-identifier">strip</span>
229
+ 48: <span class="ruby-comment cmt">#sig.gsub(/\+/, &quot;%2b&quot;)</span>
230
+ 49: <span class="ruby-keyword kw">end</span>
231
+ </pre>
232
+ </div>
233
+ </div>
234
+ </div>
235
+
236
+
237
+ </div>
238
+
239
+
240
+ </div>
241
+
242
+
243
+ <div id="validator-badges">
244
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
245
+ </div>
246
+
247
+ </body>
248
+ </html>
@@ -0,0 +1,308 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Crypto::Key</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Crypto::Key</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/utils/crypto-key_rb.html">
59
+ lib/utils/crypto-key.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ Object
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+
77
+
78
+
79
+ <div id="contextContent">
80
+
81
+
82
+
83
+ </div>
84
+
85
+ <div id="method-list">
86
+ <h3 class="section-bar">Methods</h3>
87
+
88
+ <div class="name-list">
89
+ <a href="#M000254">decrypt</a>&nbsp;&nbsp;
90
+ <a href="#M000253">encrypt</a>&nbsp;&nbsp;
91
+ <a href="#M000252">from_file</a>&nbsp;&nbsp;
92
+ <a href="#M000251">new</a>&nbsp;&nbsp;
93
+ <a href="#M000255">private?</a>&nbsp;&nbsp;
94
+ <a href="#M000256">public?</a>&nbsp;&nbsp;
95
+ <a href="#M000257">type</a>&nbsp;&nbsp;
96
+ </div>
97
+ </div>
98
+
99
+ </div>
100
+
101
+
102
+ <!-- if includes -->
103
+
104
+ <div id="section">
105
+
106
+
107
+
108
+
109
+
110
+ <div id="attribute-list">
111
+ <h3 class="section-bar">Attributes</h3>
112
+
113
+ <div class="name-list">
114
+ <table>
115
+ <tr class="top-aligned-row context-row">
116
+ <td class="context-item-name">data</td>
117
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
118
+ <td class="context-item-desc"></td>
119
+ </tr>
120
+ <tr class="top-aligned-row context-row">
121
+ <td class="context-item-name">key</td>
122
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
123
+ <td class="context-item-desc"></td>
124
+ </tr>
125
+ </table>
126
+ </div>
127
+ </div>
128
+
129
+
130
+
131
+ <!-- if method_list -->
132
+ <div id="methods">
133
+ <h3 class="section-bar">Public Class methods</h3>
134
+
135
+ <div id="method-M000252" class="method-detail">
136
+ <a name="M000252"></a>
137
+
138
+ <div class="method-heading">
139
+ <a href="#M000252" class="method-signature">
140
+ <span class="method-name">from_file</span><span class="method-args">(filename)</span>
141
+ </a>
142
+ </div>
143
+
144
+ <div class="method-description">
145
+ <p><a class="source-toggle" href="#"
146
+ onclick="toggleCode('M000252-source');return false;">[Source]</a></p>
147
+ <div class="method-source-code" id="M000252-source">
148
+ <pre>
149
+ <span class="ruby-comment cmt"># File lib/utils/crypto-key.rb, line 64</span>
150
+ 64: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">from_file</span>(<span class="ruby-identifier">filename</span>)
151
+ 65: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>( <span class="ruby-identifier">filename</span> )
152
+ 66: <span class="ruby-keyword kw">end</span>
153
+ </pre>
154
+ </div>
155
+ </div>
156
+ </div>
157
+
158
+ <div id="method-M000251" class="method-detail">
159
+ <a name="M000251"></a>
160
+
161
+ <div class="method-heading">
162
+ <a href="#M000251" class="method-signature">
163
+ <span class="method-name">new</span><span class="method-args">(data)</span>
164
+ </a>
165
+ </div>
166
+
167
+ <div class="method-description">
168
+ <p><a class="source-toggle" href="#"
169
+ onclick="toggleCode('M000251-source');return false;">[Source]</a></p>
170
+ <div class="method-source-code" id="M000251-source">
171
+ <pre>
172
+ <span class="ruby-comment cmt"># File lib/utils/crypto-key.rb, line 57</span>
173
+ 57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">data</span>)
174
+ 58: <span class="ruby-ivar">@data</span> = <span class="ruby-identifier">data</span>
175
+ 59: <span class="ruby-ivar">@public</span> = (<span class="ruby-identifier">data</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^-----BEGIN (RSA|DSA) PRIVATE KEY-----$/</span>).<span class="ruby-identifier">nil?</span>
176
+ 60: <span class="ruby-ivar">@key</span> = <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">PKey</span><span class="ruby-operator">::</span><span class="ruby-constant">RSA</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@data</span>)
177
+ 61: <span class="ruby-keyword kw">end</span>
178
+ </pre>
179
+ </div>
180
+ </div>
181
+ </div>
182
+
183
+ <h3 class="section-bar">Public Instance methods</h3>
184
+
185
+ <div id="method-M000254" class="method-detail">
186
+ <a name="M000254"></a>
187
+
188
+ <div class="method-heading">
189
+ <a href="#M000254" class="method-signature">
190
+ <span class="method-name">decrypt</span><span class="method-args">(text)</span>
191
+ </a>
192
+ </div>
193
+
194
+ <div class="method-description">
195
+ <p><a class="source-toggle" href="#"
196
+ onclick="toggleCode('M000254-source');return false;">[Source]</a></p>
197
+ <div class="method-source-code" id="M000254-source">
198
+ <pre>
199
+ <span class="ruby-comment cmt"># File lib/utils/crypto-key.rb, line 72</span>
200
+ 72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">decrypt</span>(<span class="ruby-identifier">text</span>)
201
+ 73: <span class="ruby-ivar">@key</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">&quot;#{type}_decrypt&quot;</span>, <span class="ruby-constant">Base64</span>.<span class="ruby-identifier">decode64</span>(<span class="ruby-identifier">text</span>))
202
+ 74: <span class="ruby-keyword kw">end</span>
203
+ </pre>
204
+ </div>
205
+ </div>
206
+ </div>
207
+
208
+ <div id="method-M000253" class="method-detail">
209
+ <a name="M000253"></a>
210
+
211
+ <div class="method-heading">
212
+ <a href="#M000253" class="method-signature">
213
+ <span class="method-name">encrypt</span><span class="method-args">(text)</span>
214
+ </a>
215
+ </div>
216
+
217
+ <div class="method-description">
218
+ <p><a class="source-toggle" href="#"
219
+ onclick="toggleCode('M000253-source');return false;">[Source]</a></p>
220
+ <div class="method-source-code" id="M000253-source">
221
+ <pre>
222
+ <span class="ruby-comment cmt"># File lib/utils/crypto-key.rb, line 68</span>
223
+ 68: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">encrypt</span>(<span class="ruby-identifier">text</span>)
224
+ 69: <span class="ruby-constant">Base64</span>.<span class="ruby-identifier">encode64</span>(<span class="ruby-ivar">@key</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">&quot;#{type}_encrypt&quot;</span>, <span class="ruby-identifier">text</span>))
225
+ 70: <span class="ruby-keyword kw">end</span>
226
+ </pre>
227
+ </div>
228
+ </div>
229
+ </div>
230
+
231
+ <div id="method-M000255" class="method-detail">
232
+ <a name="M000255"></a>
233
+
234
+ <div class="method-heading">
235
+ <a href="#M000255" class="method-signature">
236
+ <span class="method-name">private?</span><span class="method-args">()</span>
237
+ </a>
238
+ </div>
239
+
240
+ <div class="method-description">
241
+ <p><a class="source-toggle" href="#"
242
+ onclick="toggleCode('M000255-source');return false;">[Source]</a></p>
243
+ <div class="method-source-code" id="M000255-source">
244
+ <pre>
245
+ <span class="ruby-comment cmt"># File lib/utils/crypto-key.rb, line 76</span>
246
+ 76: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">private?</span>() <span class="ruby-operator">!</span><span class="ruby-ivar">@public</span>; <span class="ruby-keyword kw">end</span>
247
+ </pre>
248
+ </div>
249
+ </div>
250
+ </div>
251
+
252
+ <div id="method-M000256" class="method-detail">
253
+ <a name="M000256"></a>
254
+
255
+ <div class="method-heading">
256
+ <a href="#M000256" class="method-signature">
257
+ <span class="method-name">public?</span><span class="method-args">()</span>
258
+ </a>
259
+ </div>
260
+
261
+ <div class="method-description">
262
+ <p><a class="source-toggle" href="#"
263
+ onclick="toggleCode('M000256-source');return false;">[Source]</a></p>
264
+ <div class="method-source-code" id="M000256-source">
265
+ <pre>
266
+ <span class="ruby-comment cmt"># File lib/utils/crypto-key.rb, line 78</span>
267
+ 78: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">public?</span>() <span class="ruby-ivar">@public</span>; <span class="ruby-keyword kw">end</span>
268
+ </pre>
269
+ </div>
270
+ </div>
271
+ </div>
272
+
273
+ <div id="method-M000257" class="method-detail">
274
+ <a name="M000257"></a>
275
+
276
+ <div class="method-heading">
277
+ <a href="#M000257" class="method-signature">
278
+ <span class="method-name">type</span><span class="method-args">()</span>
279
+ </a>
280
+ </div>
281
+
282
+ <div class="method-description">
283
+ <p><a class="source-toggle" href="#"
284
+ onclick="toggleCode('M000257-source');return false;">[Source]</a></p>
285
+ <div class="method-source-code" id="M000257-source">
286
+ <pre>
287
+ <span class="ruby-comment cmt"># File lib/utils/crypto-key.rb, line 80</span>
288
+ 80: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">type</span>
289
+ 81: <span class="ruby-ivar">@public</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">:public</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">:private</span>
290
+ 82: <span class="ruby-keyword kw">end</span>
291
+ </pre>
292
+ </div>
293
+ </div>
294
+ </div>
295
+
296
+
297
+ </div>
298
+
299
+
300
+ </div>
301
+
302
+
303
+ <div id="validator-badges">
304
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
305
+ </div>
306
+
307
+ </body>
308
+ </html>