[Ironruby-core] FYI Code Review: rackupdate4

Jimmy Schementi Jimmy.Schementi at microsoft.com
Mon Jan 25 02:41:18 EST 2010


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

Ruby changes:
- 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

IronRuby.Rack changes:
- 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 
  web.config.
- 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 
  mode.
- 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.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: rackupdate4.diff
Type: application/octet-stream
Size: 157871 bytes
Desc: rackupdate4.diff
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100125/1241d2bf/attachment-0001.obj>


More information about the Ironruby-core mailing list