tfpt unshelve /shelveset:“rackupdate4;REDMOND\jimmysch”
Note: the diff has been truncated of adding a Rails example and a bunch
of gems (see below).
Fixes for running rack-based applications
- Put ESPIPE class in Errno module; it was defined at top-level which is
incorrect, and Sinatra’s error-reporting depends on it.
- Remove ‘hacks’ from irake; it doesn’t exist anymore
- request.body is always a string
- rack.input should never have a null contents (eg. StringIO.new(nil)).
- rack.version should be set to Rack::VERSION, rather than hardcoded.
- Ruby errors shouldn’t be swallowed because the error handler threw
- Generate the rack env with Ruby types the first time around, and only
execute Ruby code where needed.
- Make sure AppPath is a full path
- Lazy load web.config settings, and allow setting RACK_ENV from
- Remove locks in HttpHandler and HttpHandlerFactory; may revert this
change after speaking with the ASP.NET team to better understand
the request architecture.
- Requests are processed asynchronously
- Manually set TOPLEVEL_BINDING since it’s not set automatically when
IronRuby is embedded.
- Canonlicalize paths of files added to the load path, so Ruby files
always show “/” as the path separator.
- Always log exceptions to ironrack.log, and only show them to the HTML
page when RACK_ENV is ‘development’.
- Update Rails example app, and run all examples in RACK_ENV production
- Add Rails example that uses ActiveRecord (IronRuby.RailsDB.Example)
- Update gems: rails 2.3.5, sinatra 0.9.4, ironruby-sqlserver 0.1.0,
rspec 1.3.0, and make sure the executables are in the gembin dir.
- Add Microsoft.Dynamic.csproj to IronRuby.Rack.sln
- Update permissions instructions in README.
- Clean up little perf test, and add an actual test of IronRuby.Rack,
though testing is still very lacking.