carapace 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/carapace.rb CHANGED
@@ -3,7 +3,7 @@ module Carapace
3
3
  require 'openssl'
4
4
  include OpenSSL
5
5
  include PKey
6
- include Cipher
6
+ include Cipher if RUBY_VERSION < "1.8.7"
7
7
 
8
8
  @carapace_javascript_written = false
9
9
 
@@ -0,0 +1,124 @@
1
+ module Carapace
2
+
3
+ require 'openssl'
4
+ include OpenSSL
5
+ include PKey
6
+ include Cipher if RUBY_VERSION < "1.8.7"
7
+
8
+ @carapace_javascript_written = false
9
+
10
+ # Until I can get the below to work it will need to be done in the contoller
11
+ # helper_method :carapace_javascript
12
+
13
+
14
+ private
15
+
16
+ HEX = { 'a' => 10, 'b' => 11, 'c' => 12, 'd' => 13, 'e' => 14, 'f' => 15 } #:nodoc:
17
+
18
+ # Pass as parameter to carapace_decrypt to ensure decryption occurs or force error
19
+ CARAPACE_FORCE_DECRYPT = true
20
+
21
+ # Start a Carapace session.
22
+ #
23
+ # A Carapace session allows a Rails action to display and process
24
+ # an HTML form that returns encrypted fields. The action must start a session
25
+ # for both the initial display and the post-processing of the request.
26
+ #
27
+ # Encryption is performed using a 1024 bit RSA key (or other key
28
+ # length as specified by the optional parameter)
29
+ #
30
+ def carapace_session(key_length=1024) #:doc:
31
+ unless session[:carapace_private_key]
32
+ key = RSA.new(key_length)
33
+ session[:carapace_private_key] = key.to_s
34
+ session[:carapace_public_modulus] = key.public_key.n.to_s(base=16)
35
+ session[:carapace_public_exponent] = key.public_key.e.to_s(base=16)
36
+ end
37
+ end
38
+
39
+ # Decrypt a string. The return value is the decrypted string.
40
+ # If the string was not encrypted by the browser it is returned as-is
41
+ # unless the force_decrypt parameter is given as CARAPACE_FORCE_DECRYPT
42
+ # in which case nil is returned
43
+ #
44
+ # CARAPACE_FORCE_DECRYPT can be used to protect against accepting plaintext
45
+ # transmissions when the user's browser has Javascript disabled.
46
+ #
47
+ def carapace_decrypt(string, force_decrypt=false) #:doc:
48
+ if carapace_enabled? then # only decrypt if browser was enabled
49
+ byte = 0 # the converted byte will go here
50
+ s = "".rjust(string.length/2) # string to receive converted bytes
51
+ 0.upto(string.length-1) do |i| # iterate through string one chr at a time
52
+ ch = string[i].chr # current character
53
+ nibble = HEX[ch] || ch.to_i # converted to its binary value
54
+ if i%2 == 0 then
55
+ byte = nibble << 4 # most significant nibble is bits 5-8
56
+ else
57
+ byte += nibble # lease significant nibble is bits 1-4
58
+ s[i/2] = byte # store the converted byte
59
+ end
60
+ end
61
+ RSA.new(session[:carapace_private_key],nil).private_decrypt(s) # perform the decryption
62
+ else
63
+ force_decrypt ? nil : string # input is unencrypted - return input
64
+ end # return error if decryption was forced
65
+
66
+ end
67
+
68
+ # Decrypt a string. The return value is the decrypted string
69
+ # The string is decrypted in-situ, meaning its value is modified
70
+ # (warning, this does not call any customer accessor (e.g. "password=")
71
+ # so any custom code (such as password hashing) will not execute.)
72
+ #
73
+ def carapace_decrypt!(string, force_decrypt=false) #:doc:
74
+ decrypted_string = carapace_decrypt(string, force_decrypt)
75
+ string.replace decrypted_string unless !decrypted_string
76
+ end
77
+
78
+ private
79
+
80
+ # Helper method for use in the view rhtml to insert Carapace Javascript
81
+ # The javascript is added to a page once, no matter how often this is called.
82
+ #
83
+ def carapace_javascript #:doc:
84
+ unless @carapace_javascript_written
85
+ session[:carapace_nonce] = Time.now.to_i.to_s.reverse.crypt(rand.to_s.reverse[0,2])
86
+ @carapace_javascript_written = true
87
+ return "<script type='text/javascript'>
88
+ carapace_modulus = \"#{session[:carapace_public_modulus]}\" ;
89
+ carapace_exponent = \"#{session[:carapace_public_exponent]}\" ;
90
+ document.cookie = \"carapace_nonce=#{session[:carapace_nonce]}; path=/\";
91
+ //alert(\"Session:#{session[:carapace_nonce]}\\nCookie:\"+document.cookie)
92
+ rsa = new RSAKey();
93
+ rsa.setPublic(carapace_modulus, carapace_exponent);
94
+
95
+ function carapace_encrypt(field)
96
+ {
97
+ field.value = rsa.encrypt(field.value);
98
+ }
99
+ </script>"
100
+ end
101
+ end
102
+
103
+ # Returns TRUE if Carapace was enabled on the view. This does not mean that
104
+ # data was encrypted, just that Carapace Javascript was executed by the
105
+ # user's browser, making the Carapace encryption services available. This
106
+ # will be TRUE if everything is set up correctly AND the user's browser has
107
+ # Javascript enabled
108
+ #
109
+ # This can be used to protect against accepting plaintext
110
+ # transmissions when the user's browser has Javascript disabled.
111
+ #
112
+ def carapace_enabled? #:doc:
113
+ cookies["carapace_nonce"]==session[:carapace_nonce]
114
+ end
115
+
116
+ # This is called when Carapace is included in a controller.
117
+ # It automatically sets upn the Carapace Javascript helper.
118
+ def self.included(c)
119
+ #c.RAILS_DEFAULT_LOGGER.debug "Carapace has been included by #{c.class}"
120
+ if (c.class == Class)
121
+ c.helper_method :carapace_javascript
122
+ end
123
+ end
124
+ end
@@ -160,3 +160,141 @@ Processing MessageController#index (for 127.0.0.1 at 2012-05-30 11:57:11) [POST]
160
160
  Parameters: {"message"=>"142da1a1e8ea1c6f57d97daa94cc7393535f5f3dbf7f1c943b2c890b3b21c93569476be52b6bea71d3ee0b4c24a127a1e87a33617ec483e3c3dff1f3380a9059a8c6812289d53242374264998649386bf3de49edc8c732504ff52c7e7aa074fd01cf02238c605a5a480540e141d7980f2bf63857d9e42a0c3086d3e2eb49281e", "commit"=>"Send", "authenticity_token"=>"668fa79df92550c08b249430ac889c6be18494e1", "action"=>"index", "controller"=>"message"}
161
161
  Rendering message/index
162
162
  Completed in 0.00840 (119 reqs/sec) | Rendering: 0.00137 (16%) | 200 OK [http://localhost/]
163
+
164
+
165
+ Processing ApplicationController#index (for 127.0.0.1 at 2012-05-31 11:08:50) [GET]
166
+ Session ID: BAh7CzoTY2FyYXBhY2Vfbm9uY2UiEjQ2aFJHSHlicThHR0E6GWNhcmFwYWNl%0AX3ByaXZhdGVfa2V5IgJ3Ay0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0t%0ALS0KTUlJQ1d3SUJBQUtCZ1FEdFRpZCsvYUV5UlkxNlhYOXFQS1I1N1FNM1l2%0Ab09sSUxJeGxNbi9YTk50M043QjhLMgpvYVdYb1RhK1BhWm5TUm1qUTk4MzZm%0AeExrcitYUWI4bXRsbGg0L0c2Vlc5bHFiNTloU0ZsNCsvS3QvUVJrL3NFCkow%0ASDV0WUtQVkpDaFBYRHIyTHF0VnMwNysrU2xtNU9HeDR3UHF0VENnbmpIUyto%0AMnpMejJTSVY0SXdJREFRQUIKQW9HQUtzUlNBK1hydmlhZ3g3Ty8rY0p5RmZN%0Ac0NEaFRQbnR2VW9YRGlNcDVsRUVDaytLaktjemFEZ2lrMkFZKwpUaER6aU9Q%0AN2Y1VXd2ZUgxbTJuaTdEUWl5Vk93YkVPUEkwSXA4QjRMZ2t2Vk5VUXlsbGln%0Ac2pVOUdoY0tHUlZrCnBqaTBnZG1iV2c1V3g0RkZLSmM2aDd4aFk4WGdhbXAw%0AN24yWlhyTENTVUY5cy9FQ1FRRDhpVnl0cTFmVnl1akQKVFZiZmpUSWZMZkNl%0ATDVEMGY4R3VhYS9xamFFTkE1aHB0Wnp3Zmp6aWgvYUZ1aXc5Y3JBOWVMK2FZ%0Aa1BmNFF5RApoenFVUVNaTEFrRUE4STlRK2R4bUR5UVBza3V5RnhubG5yRytJ%0AL1lBUWpwS0pRd3JMYUc3cFdQQlhZWWZZakdtCi9ZUndPR1ZaOU1lQkNmU0NI%0Aa1JtWGNxdEd6ZHNiRU91aVFKQVJWMHhjSjVjbk9PRDlZajdzS0dtdjd1dG1M%0AVjEKK2tKUkg2ZjE0dFlPQTNZV1dnckJWYWxHN2Uzc2Y2UzRYQlJ4WmlFUmQ4%0AVS80WEYrTDI1b1g2cFphd0pBQlZSbgppdUdqTVRxdlRsZjIvaVFJdmxkWnl4%0Ab3NMMHR6VVJiUDdoYmpQV3JVWWVvU3orNGhzUVE2S0VXMmxJSEhEaDFvCnRK%0AcjNXYVNmNlRaMUpJRHJZUUpBWEVHUGhBQ0d4L0NaQzYzeDVaRWhxeWNqdXlI%0ANEt6ejU0dlMyb1MxYmE0WmYKSVpVYlZJMTJOMDdhT0tLalFrY04xeFpPVFRm%0AMVI4eTk4dFNUTVEzRUlBPT0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0t%0ALS0KOhxjYXJhcGFjZV9wdWJsaWNfbW9kdWx1cyICAAFFRDRFMjc3RUZEQTEz%0AMjQ1OEQ3QTVEN0Y2QTNDQTQ3OUVEMDMzNzYyRkEwRTk0ODJDOEM2NTMyN0ZE%0ANzM0REI3NzM3QjA3QzJCNkExQTU5N0ExMzZCRTNEQTY2NzQ5MTlBMzQzREYz%0AN0U5RkM0QjkyQkY5NzQxQkYyNkI2NTk2MUUzRjFCQTU1NkY2NUE5QkU3RDg1%0AMjE2NUUzRUZDQUI3RjQxMTkzRkIwNDI3NDFGOUI1ODI4RjU0OTBBMTNENzBF%0AQkQ4QkFBRDU2Q0QzQkZCRTRBNTlCOTM4NkM3OEMwRkFBRDRDMjgyNzhDNzRC%0ARTg3NkNDQkNGNjQ4ODU3ODIzOgxjc3JmX2lkIiUwNTAxOWRjNjI4NWMwMDNh%0AZjk4ZjZkZDIyNTNhYjI0ZjodY2FyYXBhY2VfcHVibGljX2V4cG9uZW50Igsw%0AMTAwMDEiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNoOjpGbGFz%0AaEhhc2h7AAY6CkB1c2VkewA%3D--65113f1e5e7c6151190aed43dda953b0e6a61172
167
+ Parameters: {"controller"=>"message", "action"=>"index"}
168
+
169
+
170
+ TypeError (wrong argument type Class (expected Module)):
171
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/carapace-0.1.0/lib/carapace.rb:6:in `include'
172
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/carapace-0.1.0/lib/carapace.rb:6
173
+ /usr/local/rvm/rubies/ruby-1.8.7-p358/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:60:in `gem_original_require'
174
+ /usr/local/rvm/rubies/ruby-1.8.7-p358/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:60:in `require'
175
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require'
176
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in'
177
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require'
178
+ /app/controllers/message_controller.rb:3
179
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:203:in `load_without_new_constant_marking'
180
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:203:in `load_file'
181
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in'
182
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:202:in `load_file'
183
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:94:in `require_or_load'
184
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:248:in `load_missing_constant'
185
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:453:in `const_missing'
186
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:465:in `const_missing'
187
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/inflector.rb:257:in `constantize'
188
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/core_ext/string/inflections.rb:148:in `constantize'
189
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/actionpack-2.0.2/lib/action_controller/routing.rb:1426:in `recognize'
190
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:170:in `handle_request'
191
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:115:in `dispatch'
192
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:126:in `dispatch_cgi'
193
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:9:in `dispatch'
194
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:76:in `process'
195
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:74:in `synchronize'
196
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:74:in `process'
197
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:159:in `process_client'
198
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in `each'
199
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in `process_client'
200
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `run'
201
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `initialize'
202
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `new'
203
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `run'
204
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `initialize'
205
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `new'
206
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `run'
207
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:282:in `run'
208
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in `each'
209
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in `run'
210
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/mongrel_rails:128:in `run'
211
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/command.rb:212:in `run'
212
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/mongrel_rails:281
213
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/bin/mongrel_rails:19:in `load'
214
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/bin/mongrel_rails:19
215
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/bin/ruby_noexec_wrapper:14
216
+
217
+ Rendering /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/actionpack-2.0.2/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
218
+
219
+
220
+ Processing ApplicationController#index (for 127.0.0.1 at 2012-05-31 11:13:36) [GET]
221
+ Session ID: BAh7CzoTY2FyYXBhY2Vfbm9uY2UiEjQ2aFJHSHlicThHR0E6DGNzcmZfaWQi%0AJTA1MDE5ZGM2Mjg1YzAwM2FmOThmNmRkMjI1M2FiMjRmOhljYXJhcGFjZV9w%0Acml2YXRlX2tleSICdwMtLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0t%0ACk1JSUNXd0lCQUFLQmdRRHRUaWQrL2FFeVJZMTZYWDlxUEtSNTdRTTNZdm9P%0AbElMSXhsTW4vWE5OdDNON0I4SzIKb2FXWG9UYStQYVpuU1JtalE5ODM2ZnhM%0Aa3IrWFFiOG10bGxoNC9HNlZXOWxxYjU5aFNGbDQrL0t0L1FSay9zRQpKMEg1%0AdFlLUFZKQ2hQWERyMkxxdFZzMDcrK1NsbTVPR3g0d1BxdFRDZ25qSFMraDJ6%0ATHoyU0lWNEl3SURBUUFCCkFvR0FLc1JTQStYcnZpYWd4N08vK2NKeUZmTXND%0ARGhUUG50dlVvWERpTXA1bEVFQ2srS2pLY3phRGdpazJBWSsKVGhEemlPUDdm%0ANVV3dmVIMW0ybmk3RFFpeVZPd2JFT1BJMElwOEI0TGdrdlZOVVF5bGxpZ3Nq%0AVTlHaGNLR1JWawpwamkwZ2RtYldnNVd4NEZGS0pjNmg3eGhZOFhnYW1wMDdu%0AMlpYckxDU1VGOXMvRUNRUUQ4aVZ5dHExZlZ5dWpEClRWYmZqVElmTGZDZUw1%0ARDBmOEd1YWEvcWphRU5BNWhwdFp6d2ZqemloL2FGdWl3OWNyQTllTCthWWtQ%0AZjRReUQKaHpxVVFTWkxBa0VBOEk5UStkeG1EeVFQc2t1eUZ4bmxuckcrSS9Z%0AQVFqcEtKUXdyTGFHN3BXUEJYWVlmWWpHbQovWVJ3T0dWWjlNZUJDZlNDSGtS%0AbVhjcXRHemRzYkVPdWlRSkFSVjB4Y0o1Y25PT0Q5WWo3c0tHbXY3dXRtTFYx%0ACitrSlJINmYxNHRZT0EzWVdXZ3JCVmFsRzdlM3NmNlM0WEJSeFppRVJkOFUv%0ANFhGK0wyNW9YNnBaYXdKQUJWUm4KaXVHak1UcXZUbGYyL2lRSXZsZFp5eG9z%0ATDB0elVSYlA3aGJqUFdyVVllb1N6KzRoc1FRNktFVzJsSUhIRGgxbwp0SnIz%0AV2FTZjZUWjFKSURyWVFKQVhFR1BoQUNHeC9DWkM2M3g1WkVocXljanV5SDRL%0Aeno1NHZTMm9TMWJhNFpmCklaVWJWSTEyTjA3YU9LS2pRa2NOMXhaT1RUZjFS%0AOHk5OHRTVE1RM0VJQT09Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t%0ACjocY2FyYXBhY2VfcHVibGljX21vZHVsdXMiAgABRUQ0RTI3N0VGREExMzI0%0ANThEN0E1RDdGNkEzQ0E0NzlFRDAzMzc2MkZBMEU5NDgyQzhDNjUzMjdGRDcz%0ANERCNzczN0IwN0MyQjZBMUE1OTdBMTM2QkUzREE2Njc0OTE5QTM0M0RGMzdF%0AOUZDNEI5MkJGOTc0MUJGMjZCNjU5NjFFM0YxQkE1NTZGNjVBOUJFN0Q4NTIx%0ANjVFM0VGQ0FCN0Y0MTE5M0ZCMDQyNzQxRjlCNTgyOEY1NDkwQTEzRDcwRUJE%0AOEJBQUQ1NkNEM0JGQkU0QTU5QjkzODZDNzhDMEZBQUQ0QzI4Mjc4Qzc0QkU4%0ANzZDQ0JDRjY0ODg1NzgyMzodY2FyYXBhY2VfcHVibGljX2V4cG9uZW50Igsw%0AMTAwMDEiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNoOjpGbGFz%0AaEhhc2h7AAY6CkB1c2VkewA%3D--6b58f07bb807e98b88fb76a8bb2e1ac0ab551484
222
+ Parameters: {"controller"=>"message", "action"=>"index"}
223
+
224
+
225
+ TypeError (wrong argument type Class (expected Module)):
226
+ /lib/carapace.rb:6:in `include'
227
+ /lib/carapace.rb:6
228
+ /usr/local/rvm/rubies/ruby-1.8.7-p358/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
229
+ /usr/local/rvm/rubies/ruby-1.8.7-p358/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
230
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require'
231
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in'
232
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require'
233
+ /app/controllers/message_controller.rb:3
234
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:203:in `load_without_new_constant_marking'
235
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:203:in `load_file'
236
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in'
237
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:202:in `load_file'
238
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:94:in `require_or_load'
239
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:248:in `load_missing_constant'
240
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:453:in `const_missing'
241
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:465:in `const_missing'
242
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/inflector.rb:257:in `constantize'
243
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/activesupport-2.0.2/lib/active_support/core_ext/string/inflections.rb:148:in `constantize'
244
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/actionpack-2.0.2/lib/action_controller/routing.rb:1426:in `recognize'
245
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:170:in `handle_request'
246
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:115:in `dispatch'
247
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:126:in `dispatch_cgi'
248
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:9:in `dispatch'
249
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:76:in `process'
250
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:74:in `synchronize'
251
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:74:in `process'
252
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:159:in `process_client'
253
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in `each'
254
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in `process_client'
255
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `run'
256
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `initialize'
257
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `new'
258
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `run'
259
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `initialize'
260
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `new'
261
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `run'
262
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:282:in `run'
263
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in `each'
264
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in `run'
265
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/mongrel_rails:128:in `run'
266
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/../lib/mongrel/command.rb:212:in `run'
267
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/mongrel-1.1.5/bin/mongrel_rails:281
268
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/bin/mongrel_rails:19:in `load'
269
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/bin/mongrel_rails:19
270
+ /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/bin/ruby_noexec_wrapper:14
271
+
272
+ Rendering /usr/local/rvm/gems/ruby-1.8.7-p358@rails-2.0.2/gems/actionpack-2.0.2/lib/action_controller/templates/rescues/layout.erb (internal_server_error)
273
+
274
+
275
+ Processing MessageController#index (for 127.0.0.1 at 2012-05-31 11:31:11) [GET]
276
+ Session ID: BAh7CzoTY2FyYXBhY2Vfbm9uY2UiEjQ2aFJHSHlicThHR0E6DGNzcmZfaWQi%0AJTA1MDE5ZGM2Mjg1YzAwM2FmOThmNmRkMjI1M2FiMjRmIgpmbGFzaElDOidB%0AY3Rpb25Db250cm9sbGVyOjpGbGFzaDo6Rmxhc2hIYXNoewAGOgpAdXNlZHsA%0AOhljYXJhcGFjZV9wcml2YXRlX2tleSICdwMtLS0tLUJFR0lOIFJTQSBQUklW%0AQVRFIEtFWS0tLS0tCk1JSUNXd0lCQUFLQmdRRHRUaWQrL2FFeVJZMTZYWDlx%0AUEtSNTdRTTNZdm9PbElMSXhsTW4vWE5OdDNON0I4SzIKb2FXWG9UYStQYVpu%0AU1JtalE5ODM2ZnhMa3IrWFFiOG10bGxoNC9HNlZXOWxxYjU5aFNGbDQrL0t0%0AL1FSay9zRQpKMEg1dFlLUFZKQ2hQWERyMkxxdFZzMDcrK1NsbTVPR3g0d1Bx%0AdFRDZ25qSFMraDJ6THoyU0lWNEl3SURBUUFCCkFvR0FLc1JTQStYcnZpYWd4%0AN08vK2NKeUZmTXNDRGhUUG50dlVvWERpTXA1bEVFQ2srS2pLY3phRGdpazJB%0AWSsKVGhEemlPUDdmNVV3dmVIMW0ybmk3RFFpeVZPd2JFT1BJMElwOEI0TGdr%0AdlZOVVF5bGxpZ3NqVTlHaGNLR1JWawpwamkwZ2RtYldnNVd4NEZGS0pjNmg3%0AeGhZOFhnYW1wMDduMlpYckxDU1VGOXMvRUNRUUQ4aVZ5dHExZlZ5dWpEClRW%0AYmZqVElmTGZDZUw1RDBmOEd1YWEvcWphRU5BNWhwdFp6d2ZqemloL2FGdWl3%0AOWNyQTllTCthWWtQZjRReUQKaHpxVVFTWkxBa0VBOEk5UStkeG1EeVFQc2t1%0AeUZ4bmxuckcrSS9ZQVFqcEtKUXdyTGFHN3BXUEJYWVlmWWpHbQovWVJ3T0dW%0AWjlNZUJDZlNDSGtSbVhjcXRHemRzYkVPdWlRSkFSVjB4Y0o1Y25PT0Q5WWo3%0Ac0tHbXY3dXRtTFYxCitrSlJINmYxNHRZT0EzWVdXZ3JCVmFsRzdlM3NmNlM0%0AWEJSeFppRVJkOFUvNFhGK0wyNW9YNnBaYXdKQUJWUm4KaXVHak1UcXZUbGYy%0AL2lRSXZsZFp5eG9zTDB0elVSYlA3aGJqUFdyVVllb1N6KzRoc1FRNktFVzJs%0ASUhIRGgxbwp0SnIzV2FTZjZUWjFKSURyWVFKQVhFR1BoQUNHeC9DWkM2M3g1%0AWkVocXljanV5SDRLeno1NHZTMm9TMWJhNFpmCklaVWJWSTEyTjA3YU9LS2pR%0Aa2NOMXhaT1RUZjFSOHk5OHRTVE1RM0VJQT09Ci0tLS0tRU5EIFJTQSBQUklW%0AQVRFIEtFWS0tLS0tCjocY2FyYXBhY2VfcHVibGljX21vZHVsdXMiAgABRUQ0%0ARTI3N0VGREExMzI0NThEN0E1RDdGNkEzQ0E0NzlFRDAzMzc2MkZBMEU5NDgy%0AQzhDNjUzMjdGRDczNERCNzczN0IwN0MyQjZBMUE1OTdBMTM2QkUzREE2Njc0%0AOTE5QTM0M0RGMzdFOUZDNEI5MkJGOTc0MUJGMjZCNjU5NjFFM0YxQkE1NTZG%0ANjVBOUJFN0Q4NTIxNjVFM0VGQ0FCN0Y0MTE5M0ZCMDQyNzQxRjlCNTgyOEY1%0ANDkwQTEzRDcwRUJEOEJBQUQ1NkNEM0JGQkU0QTU5QjkzODZDNzhDMEZBQUQ0%0AQzI4Mjc4Qzc0QkU4NzZDQ0JDRjY0ODg1NzgyMzodY2FyYXBhY2VfcHVibGlj%0AX2V4cG9uZW50IgswMTAwMDE%3D--33d8d88ac4d65835a84196b8218c5e08943bec51
277
+ Parameters: {"controller"=>"message", "action"=>"index"}
278
+ Rendering message/index
279
+ Completed in 0.03211 (31 reqs/sec) | Rendering: 0.03063 (95%) | 200 OK [http://localhost/]
280
+
281
+
282
+ Processing MessageController#index (for 127.0.0.1 at 2012-05-31 11:31:17) [POST]
283
+ Session ID: BAh7CyIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo%0ASGFzaHsABjoKQHVzZWR7ADoTY2FyYXBhY2Vfbm9uY2UiEjgyUkFXWERONDJJ%0Ac0E6DGNzcmZfaWQiJTA1MDE5ZGM2Mjg1YzAwM2FmOThmNmRkMjI1M2FiMjRm%0AOhljYXJhcGFjZV9wcml2YXRlX2tleSICdwMtLS0tLUJFR0lOIFJTQSBQUklW%0AQVRFIEtFWS0tLS0tCk1JSUNXd0lCQUFLQmdRRHRUaWQrL2FFeVJZMTZYWDlx%0AUEtSNTdRTTNZdm9PbElMSXhsTW4vWE5OdDNON0I4SzIKb2FXWG9UYStQYVpu%0AU1JtalE5ODM2ZnhMa3IrWFFiOG10bGxoNC9HNlZXOWxxYjU5aFNGbDQrL0t0%0AL1FSay9zRQpKMEg1dFlLUFZKQ2hQWERyMkxxdFZzMDcrK1NsbTVPR3g0d1Bx%0AdFRDZ25qSFMraDJ6THoyU0lWNEl3SURBUUFCCkFvR0FLc1JTQStYcnZpYWd4%0AN08vK2NKeUZmTXNDRGhUUG50dlVvWERpTXA1bEVFQ2srS2pLY3phRGdpazJB%0AWSsKVGhEemlPUDdmNVV3dmVIMW0ybmk3RFFpeVZPd2JFT1BJMElwOEI0TGdr%0AdlZOVVF5bGxpZ3NqVTlHaGNLR1JWawpwamkwZ2RtYldnNVd4NEZGS0pjNmg3%0AeGhZOFhnYW1wMDduMlpYckxDU1VGOXMvRUNRUUQ4aVZ5dHExZlZ5dWpEClRW%0AYmZqVElmTGZDZUw1RDBmOEd1YWEvcWphRU5BNWhwdFp6d2ZqemloL2FGdWl3%0AOWNyQTllTCthWWtQZjRReUQKaHpxVVFTWkxBa0VBOEk5UStkeG1EeVFQc2t1%0AeUZ4bmxuckcrSS9ZQVFqcEtKUXdyTGFHN3BXUEJYWVlmWWpHbQovWVJ3T0dW%0AWjlNZUJDZlNDSGtSbVhjcXRHemRzYkVPdWlRSkFSVjB4Y0o1Y25PT0Q5WWo3%0Ac0tHbXY3dXRtTFYxCitrSlJINmYxNHRZT0EzWVdXZ3JCVmFsRzdlM3NmNlM0%0AWEJSeFppRVJkOFUvNFhGK0wyNW9YNnBaYXdKQUJWUm4KaXVHak1UcXZUbGYy%0AL2lRSXZsZFp5eG9zTDB0elVSYlA3aGJqUFdyVVllb1N6KzRoc1FRNktFVzJs%0ASUhIRGgxbwp0SnIzV2FTZjZUWjFKSURyWVFKQVhFR1BoQUNHeC9DWkM2M3g1%0AWkVocXljanV5SDRLeno1NHZTMm9TMWJhNFpmCklaVWJWSTEyTjA3YU9LS2pR%0Aa2NOMXhaT1RUZjFSOHk5OHRTVE1RM0VJQT09Ci0tLS0tRU5EIFJTQSBQUklW%0AQVRFIEtFWS0tLS0tCjocY2FyYXBhY2VfcHVibGljX21vZHVsdXMiAgABRUQ0%0ARTI3N0VGREExMzI0NThEN0E1RDdGNkEzQ0E0NzlFRDAzMzc2MkZBMEU5NDgy%0AQzhDNjUzMjdGRDczNERCNzczN0IwN0MyQjZBMUE1OTdBMTM2QkUzREE2Njc0%0AOTE5QTM0M0RGMzdFOUZDNEI5MkJGOTc0MUJGMjZCNjU5NjFFM0YxQkE1NTZG%0ANjVBOUJFN0Q4NTIxNjVFM0VGQ0FCN0Y0MTE5M0ZCMDQyNzQxRjlCNTgyOEY1%0ANDkwQTEzRDcwRUJEOEJBQUQ1NkNEM0JGQkU0QTU5QjkzODZDNzhDMEZBQUQ0%0AQzI4Mjc4Qzc0QkU4NzZDQ0JDRjY0ODg1NzgyMzodY2FyYXBhY2VfcHVibGlj%0AX2V4cG9uZW50IgswMTAwMDE%3D--5052d4fcc8672ae9a966f81438d8146db39c6421
284
+ Parameters: {"commit"=>"Send", "controller"=>"message", "action"=>"index", "message"=>"e5eba9304c96df3541931fa2e292e6da8c86f52f91fdcc5558364e40ee3026ee94f9835cc4835e05ce30ffa1d2f11e04a815d525a8ef9c1dc4ff742373b03c763f2bb75ad427376f654908599a2a00a6b48c34a9c3e096bda0aa81f6d7dfc29378c0c311e81d755234781383da46542683986a49e07e43741a5964bd8f0a9d21", "authenticity_token"=>"92773f3d737f3a6b91ecc37e9dbf78d08875eb39"}
285
+ Rendering message/index
286
+ Completed in 0.04743 (21 reqs/sec) | Rendering: 0.00371 (7%) | 200 OK [http://localhost/]
287
+
288
+
289
+ Processing MessageController#index (for 127.0.0.1 at 2012-05-31 11:34:49) [GET]
290
+ Session ID: BAh7CyIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo%0ASGFzaHsABjoKQHVzZWR7ADoTY2FyYXBhY2Vfbm9uY2UiEjY2RE8xS09tbHhu%0ARzI6DGNzcmZfaWQiJTA1MDE5ZGM2Mjg1YzAwM2FmOThmNmRkMjI1M2FiMjRm%0AOhljYXJhcGFjZV9wcml2YXRlX2tleSICdwMtLS0tLUJFR0lOIFJTQSBQUklW%0AQVRFIEtFWS0tLS0tCk1JSUNXd0lCQUFLQmdRRHRUaWQrL2FFeVJZMTZYWDlx%0AUEtSNTdRTTNZdm9PbElMSXhsTW4vWE5OdDNON0I4SzIKb2FXWG9UYStQYVpu%0AU1JtalE5ODM2ZnhMa3IrWFFiOG10bGxoNC9HNlZXOWxxYjU5aFNGbDQrL0t0%0AL1FSay9zRQpKMEg1dFlLUFZKQ2hQWERyMkxxdFZzMDcrK1NsbTVPR3g0d1Bx%0AdFRDZ25qSFMraDJ6THoyU0lWNEl3SURBUUFCCkFvR0FLc1JTQStYcnZpYWd4%0AN08vK2NKeUZmTXNDRGhUUG50dlVvWERpTXA1bEVFQ2srS2pLY3phRGdpazJB%0AWSsKVGhEemlPUDdmNVV3dmVIMW0ybmk3RFFpeVZPd2JFT1BJMElwOEI0TGdr%0AdlZOVVF5bGxpZ3NqVTlHaGNLR1JWawpwamkwZ2RtYldnNVd4NEZGS0pjNmg3%0AeGhZOFhnYW1wMDduMlpYckxDU1VGOXMvRUNRUUQ4aVZ5dHExZlZ5dWpEClRW%0AYmZqVElmTGZDZUw1RDBmOEd1YWEvcWphRU5BNWhwdFp6d2ZqemloL2FGdWl3%0AOWNyQTllTCthWWtQZjRReUQKaHpxVVFTWkxBa0VBOEk5UStkeG1EeVFQc2t1%0AeUZ4bmxuckcrSS9ZQVFqcEtKUXdyTGFHN3BXUEJYWVlmWWpHbQovWVJ3T0dW%0AWjlNZUJDZlNDSGtSbVhjcXRHemRzYkVPdWlRSkFSVjB4Y0o1Y25PT0Q5WWo3%0Ac0tHbXY3dXRtTFYxCitrSlJINmYxNHRZT0EzWVdXZ3JCVmFsRzdlM3NmNlM0%0AWEJSeFppRVJkOFUvNFhGK0wyNW9YNnBaYXdKQUJWUm4KaXVHak1UcXZUbGYy%0AL2lRSXZsZFp5eG9zTDB0elVSYlA3aGJqUFdyVVllb1N6KzRoc1FRNktFVzJs%0ASUhIRGgxbwp0SnIzV2FTZjZUWjFKSURyWVFKQVhFR1BoQUNHeC9DWkM2M3g1%0AWkVocXljanV5SDRLeno1NHZTMm9TMWJhNFpmCklaVWJWSTEyTjA3YU9LS2pR%0Aa2NOMXhaT1RUZjFSOHk5OHRTVE1RM0VJQT09Ci0tLS0tRU5EIFJTQSBQUklW%0AQVRFIEtFWS0tLS0tCjocY2FyYXBhY2VfcHVibGljX21vZHVsdXMiAgABRUQ0%0ARTI3N0VGREExMzI0NThEN0E1RDdGNkEzQ0E0NzlFRDAzMzc2MkZBMEU5NDgy%0AQzhDNjUzMjdGRDczNERCNzczN0IwN0MyQjZBMUE1OTdBMTM2QkUzREE2Njc0%0AOTE5QTM0M0RGMzdFOUZDNEI5MkJGOTc0MUJGMjZCNjU5NjFFM0YxQkE1NTZG%0ANjVBOUJFN0Q4NTIxNjVFM0VGQ0FCN0Y0MTE5M0ZCMDQyNzQxRjlCNTgyOEY1%0ANDkwQTEzRDcwRUJEOEJBQUQ1NkNEM0JGQkU0QTU5QjkzODZDNzhDMEZBQUQ0%0AQzI4Mjc4Qzc0QkU4NzZDQ0JDRjY0ODg1NzgyMzodY2FyYXBhY2VfcHVibGlj%0AX2V4cG9uZW50IgswMTAwMDE%3D--1451a9b3f36bd96993cfe26873025e13aff76ab9
291
+ Parameters: {"controller"=>"message", "action"=>"index"}
292
+ Rendering message/index
293
+ Completed in 0.00537 (186 reqs/sec) | Rendering: 0.00392 (73%) | 200 OK [http://localhost/]
294
+
295
+
296
+ Processing MessageController#index (for 127.0.0.1 at 2012-05-31 11:34:56) [POST]
297
+ Session ID: BAh7CzoTY2FyYXBhY2Vfbm9uY2UiEjI3Q1Vma2FjZVkzWTY6DGNzcmZfaWQi%0AJTA1MDE5ZGM2Mjg1YzAwM2FmOThmNmRkMjI1M2FiMjRmOhljYXJhcGFjZV9w%0Acml2YXRlX2tleSICdwMtLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0t%0ACk1JSUNXd0lCQUFLQmdRRHRUaWQrL2FFeVJZMTZYWDlxUEtSNTdRTTNZdm9P%0AbElMSXhsTW4vWE5OdDNON0I4SzIKb2FXWG9UYStQYVpuU1JtalE5ODM2ZnhM%0Aa3IrWFFiOG10bGxoNC9HNlZXOWxxYjU5aFNGbDQrL0t0L1FSay9zRQpKMEg1%0AdFlLUFZKQ2hQWERyMkxxdFZzMDcrK1NsbTVPR3g0d1BxdFRDZ25qSFMraDJ6%0ATHoyU0lWNEl3SURBUUFCCkFvR0FLc1JTQStYcnZpYWd4N08vK2NKeUZmTXND%0ARGhUUG50dlVvWERpTXA1bEVFQ2srS2pLY3phRGdpazJBWSsKVGhEemlPUDdm%0ANVV3dmVIMW0ybmk3RFFpeVZPd2JFT1BJMElwOEI0TGdrdlZOVVF5bGxpZ3Nq%0AVTlHaGNLR1JWawpwamkwZ2RtYldnNVd4NEZGS0pjNmg3eGhZOFhnYW1wMDdu%0AMlpYckxDU1VGOXMvRUNRUUQ4aVZ5dHExZlZ5dWpEClRWYmZqVElmTGZDZUw1%0ARDBmOEd1YWEvcWphRU5BNWhwdFp6d2ZqemloL2FGdWl3OWNyQTllTCthWWtQ%0AZjRReUQKaHpxVVFTWkxBa0VBOEk5UStkeG1EeVFQc2t1eUZ4bmxuckcrSS9Z%0AQVFqcEtKUXdyTGFHN3BXUEJYWVlmWWpHbQovWVJ3T0dWWjlNZUJDZlNDSGtS%0AbVhjcXRHemRzYkVPdWlRSkFSVjB4Y0o1Y25PT0Q5WWo3c0tHbXY3dXRtTFYx%0ACitrSlJINmYxNHRZT0EzWVdXZ3JCVmFsRzdlM3NmNlM0WEJSeFppRVJkOFUv%0ANFhGK0wyNW9YNnBaYXdKQUJWUm4KaXVHak1UcXZUbGYyL2lRSXZsZFp5eG9z%0ATDB0elVSYlA3aGJqUFdyVVllb1N6KzRoc1FRNktFVzJsSUhIRGgxbwp0SnIz%0AV2FTZjZUWjFKSURyWVFKQVhFR1BoQUNHeC9DWkM2M3g1WkVocXljanV5SDRL%0Aeno1NHZTMm9TMWJhNFpmCklaVWJWSTEyTjA3YU9LS2pRa2NOMXhaT1RUZjFS%0AOHk5OHRTVE1RM0VJQT09Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t%0ACjocY2FyYXBhY2VfcHVibGljX21vZHVsdXMiAgABRUQ0RTI3N0VGREExMzI0%0ANThEN0E1RDdGNkEzQ0E0NzlFRDAzMzc2MkZBMEU5NDgyQzhDNjUzMjdGRDcz%0ANERCNzczN0IwN0MyQjZBMUE1OTdBMTM2QkUzREE2Njc0OTE5QTM0M0RGMzdF%0AOUZDNEI5MkJGOTc0MUJGMjZCNjU5NjFFM0YxQkE1NTZGNjVBOUJFN0Q4NTIx%0ANjVFM0VGQ0FCN0Y0MTE5M0ZCMDQyNzQxRjlCNTgyOEY1NDkwQTEzRDcwRUJE%0AOEJBQUQ1NkNEM0JGQkU0QTU5QjkzODZDNzhDMEZBQUQ0QzI4Mjc4Qzc0QkU4%0ANzZDQ0JDRjY0ODg1NzgyMyIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6%0ARmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7ADodY2FyYXBhY2VfcHVibGlj%0AX2V4cG9uZW50IgswMTAwMDE%3D--d5df4076915916b3df1d0ed8fc329d11bfd7f4ca
298
+ Parameters: {"controller"=>"message", "action"=>"index", "commit"=>"Send", "message"=>"055ecb0eb0835395c0885b0b46a9095539d20a9f01e47e06c98df71b6fb7bfd5d276673b4947cf0a7e4570e97a1d008f92f5b199f1b8defac305a910dce3de00b3923e8a73285fc42193ba0109829b0a5f6e1edded2e7df996d6f9109d718d1f67216c39d52245c00659e121a72488fb1efc1e98d3f89dfb91947474f5430211", "authenticity_token"=>"92773f3d737f3a6b91ecc37e9dbf78d08875eb39"}
299
+ Rendering message/index
300
+ Completed in 0.07173 (13 reqs/sec) | Rendering: 0.00283 (3%) | 200 OK [http://localhost/]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carapace
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease: false
4
+ hash: 25
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - John Lane
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-05-30 00:00:00 +01:00
19
- default_executable:
18
+ date: 2012-05-31 00:00:00 Z
20
19
  dependencies: []
21
20
 
22
21
  description: Allows field contents to be encrypted between broswer and webserver
@@ -38,6 +37,7 @@ files:
38
37
  - test/rails_app/log/server.log
39
38
  - test/rails_app/log/production.log
40
39
  - test/rails_app/README.md
40
+ - test/rails_app/lib/carapace.rb
41
41
  - test/rails_app/script/performance/request
42
42
  - test/rails_app/script/performance/benchmarker
43
43
  - test/rails_app/script/performance/profiler
@@ -89,8 +89,7 @@ files:
89
89
  - README.md
90
90
  - Rakefile
91
91
  - CHANGELOG.md
92
- has_rdoc: true
93
- homepage: http://rubygems.org/gems/carapace
92
+ homepage: https://github.com/johnlane/carapace
94
93
  licenses:
95
94
  - MIT
96
95
  post_install_message:
@@ -119,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
118
  requirements: []
120
119
 
121
120
  rubyforge_project:
122
- rubygems_version: 1.3.7
121
+ rubygems_version: 1.8.24
123
122
  signing_key:
124
123
  specification_version: 3
125
124
  summary: RSA encryption for HTML form fields