Eu estou tendo dificuldade em fazer o Sinatra rodar na minha configuração local, o Ubuntu Karmic 9.10. O erro que ocorre quando eu exijo "sinatra" é:
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
Eu tentei:
- Desinstalando / reinstalando Sinatra
- Atualizando todas as gemas
- Garantindo que todas as dependências existam (rack)
Alguma ideia? Seu tempo e ajuda são muito apreciados!
Respostas:
1 para resposta № 1Este é um problema aparentemente apenas com o 1.8-head no Linux. Está relacionado à correspondência de expressões regulares. Se você der uma olhada no código: path
corresponde /((:w+)|[*#{special_chars.join}])/
, mas $2
é nil
, mesmo que seja uma String.
Eu recomendo trocar sua versão ruby por enquanto.