1

I'm having a hard time getting Sinatra running on my local setup, Ubuntu Karmic 9.10. The error getting thrown when I have require 'sinatra' is:

NoMethodError: undefined method `[]' for nil:NilClass
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:891:in `compile'
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:883:in `gsub'
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:883:in `compile'
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:856:in `route'
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:838:in `get'
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:1077
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:929:in `configure'
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:1076
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra.rb:4
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from (irb):2
from :0

I've tried:

  • Uninstalling/reinstalling Sinatra
  • Updating all gems
  • Ensuring all dependencies exist (rack)

Any ideas? Your time and help is greatly appreciated!

Dan
  • 181
  • 1
  • 8
  • What was the first line seen by irb? – Fred May 02 '10 at 02:15
  • What version of ruby are you running? – Alex May 04 '10 at 14:44
  • `Error requiring Sinatra Gem` that's because it's gone: http://news.google.com/newspapers?nid=1350&dat=19521204&id=XXkTAAAAIBAJ&sjid=ZwAEAAAAIBAJ&pg=5568,1086650 (I hope the link holds) – Pekka May 05 '10 at 07:57

1 Answers1

1

This is an issue apparently only coming up with 1.8-head on Linux. It is related to regexp matching. If you take a look in the code: path does match /((:\w+)|[\*#{special_chars.join}])/, but $2 is nil, even though it is supposed to be a String.

I recommend switching your ruby version for now.

Konstantin Haase
  • 25,687
  • 2
  • 57
  • 59