Sinatraが走らない人へ

C:\gae\app\WEB-INF>ruby oauth-sample.rb
C:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:753:in `read
': Invalid argument - (Errno::EINVAL)
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb
:753:in `inline_templates='
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb
:706:in `set'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb
:715:in `block in enable'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb
:715:in `each'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb
:715:in `enable'
from (__DELEGATE__):2:in `enable'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.0/lib/sinatra.rb:7:in
`'
from :33:in `require'
from :33:in `rescue in require'
from :29:in `require'
from oauth-sample.rb:2:in `'

ってなる人へ.なんの気なしにRubyも入れなおしたらこのざまなのでうp.

環境はこんな感じ
RubyGems Environment:

  • RUBYGEMS VERSION: 1.3.7
  • RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [i386-mingw32]
  • INSTALLATION DIRECTORY: C:/Ruby192/lib/ruby/gems/1.9.1
  • RUBY EXECUTABLE: C:/Ruby192/bin/ruby.exe
  • EXECUTABLE DIRECTORY: C:/Ruby192/bin
  • RUBYGEMS PLATFORMS:
  • ruby
  • x86-mingw32
  • GEM PATHS:
  • C:/Ruby192/lib/ruby/gems/1.9.1
  • C:/Documents and Settings/goth/.gem/ruby/1.9.1
  • GEM CONFIGURATION:
  • :update_sources => true
  • :verbose => true
  • :benchmark => false
  • :backtrace => false
  • :bulk_threshold => 1000
  • REMOTE SOURCES:
  • http://rubygems.org/


要するにRuby最新のを入れてSinatraをgemったらこけたっていう!
Rubyはここで→RubyForge: Ruby Installer for Windows: ファイルリスト
gemもいれちゃうぞー!!と思ってたらはいってた.不思議
この時点で$>ruby -vとg$>gem envが走るよ!


そのあとgem install sinatra
(本当はgem install sinatra oauth twitter shotgunとかいっぱい入れましたうそついてすみません.)


で,sinatra-sample.rbに
require 'rubygems'
require 'sinatra'
get '/hi' do
"Hello World!"
end
保存して

ruby sinatra-sample.rbで冒頭のエラーがでた貴様らようこそ!!

これを解決するには
C:\Ruby192\lib\ruby\gems\1.9.1\gems\sinatra-1.0\lib\sinatra\base.rbのだいたい1000行目に

public
CALLERS_TO_IGNORE = [
/\/sinatra(\/(base|main|showexceptions))?\.rb$/, # all sinatra code
/lib\/tilt.*\.rb$/, # all tilt code
/\(.*\)/, # generated code
/custom_require\.rb$/, # rubygems require hacks
/active_support/, # active_support require hacks
 
/
 
]


以上のよう1行加えます.色ってどうやって変えるんだろ

さらに,C:\Ruby192\lib\ruby\gems\1.9.1\gems\sinatra-1.0\sinatra.gemspecの6,7行目の

Gem::Specification.new do |s|
s.specification_version = 2 if s.respond_to? :specification_version=
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=

s.name = 'sinatra'
s.version = '1.0'

s.date = '2010-08-20'

のように,s.dateを変更します.多分2月とかになってると思うので.そしてこれは多分してもしなくてもいける.

で走った?sinatra動き出した?どう?