[ruby-list:46517] Ruby1.8.8devでのsinatra動作について

View: New views
7 Messages — Rating Filter:   Alert me  

[ruby-list:46517] Ruby1.8.8devでのsinatra動作について

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


前川です。
Ruby1.8.8 dev sinatoraの動作確認をしたところ、エラーとなりました。

sinatraのダウンロード先
http://rubyforge.org/frs/?group_id=4415

sinatra動作確認の参考にしたページ
http://gihyo.jp/dev/serial/01/ruby/0007

Rubyのバージョン
D:\Apache2.2\htdocs\ruby_prg\em_ruby19\em_browser>ruby -v
ruby 1.8.8dev (2009-09-18) [i386-mswin32]

Rails関連のバージョン

*** LOCAL GEMS ***

actionmailer (2.3.4)
actionpack (2.3.4)
activerecord (2.3.4)
activeresource (2.3.4)
activesupport (2.3.4)
mysql (2.8.1)
rack (1.0.0)
rails (2.3.4)
rake (0.8.7)
sinatra (0.9.4)
sqlite3-ruby (1.2.5)

Hello_188dev.rb(テストプログラム)の内容
#!D:/Ruby/bin/ruby.exe -Ks

require 'rubygems'
require 'sinatra'

get '/' do
  'Hello, world!'
end

Ruby1.8.8devでの実行結果;;

D:\Apache2.2\htdocs\ruby_prg\em_ruby19\em_browser>ruby hello_188dev.rb
D:/Ruby/lib/ruby/gems/1.8/gems/sinatra-0.9.4/lib/sinatra/base.rb:807:in
`compile': undefined method `[]' for nil:NilClass (NoMethodError)
        from D:/Ruby/lib/ruby/gems/1.8/gems/sinatra-0.9.4
/lib/sinatra/base.rb:799:in `gsub'
        from D:/Ruby/lib/ruby/gems/1.8/gems/sinatra-0.9.4
/lib/sinatra/base.rb:799:in `compile'
        from D:/Ruby/lib/ruby/gems/1.8/gems/sinatra-0.9.4
/lib/sinatra/base.rb:772:in `route'
        from D:/Ruby/lib/ruby/gems/1.8/gems/sinatra-0.9.4
/lib/sinatra/base.rb:754:in `get'
        from D:/Ruby/lib/ruby/gems/1.8/gems/sinatra-0.9.4
/lib/sinatra/base.rb:1015
        from D:/Ruby/lib/ruby/gems/1.8/gems/sinatra-0.9.4
/lib/sinatra/base.rb:849:in `configure'
        from D:/Ruby/lib/ruby/gems/1.8/gems/sinatra-0.9.4
/lib/sinatra/base.rb:1014
        from
D:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
        from
D:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
        from D:/Ruby/lib/ruby/gems/1.8/gems/sinatra-0.9.4/lib/sinatra.rb:4
        from
D:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in
`gem_original_require'
        from
D:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
        from hello_188dev.rb:4


Ruby1.8.7p174では、問題なく、動作します。結果は、以下

D:\Apache2.2\htdocs\ruby_prg\em_ruby19\em_browser>ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32]

D:\Apache2.2\htdocs\ruby_prg\em_ruby19\em_browser>ruby hello_188dev.rb
== Sinatra/0.9.4 has taken the stage on 4567 for development with backup
from WEBrick
[2009-11-05 10:25:32] INFO  WEBrick 1.3.1
[2009-11-05 10:25:32] INFO  ruby 1.8.7 (2009-06-12) [i386-mswin32]
[2009-11-05 10:25:33] INFO  WEBrick::HTTPServer#start: pid=1672 port=4567
127.0.0.1 - - [05/Nov/2009 10:28:07] "GET / HTTP/1.1" 200 13 0.0312
localhost - - [05/Nov/2009:10:28:06 東京 (標準時)] "GET / HTTP/1.1" 200 13
- -> /

== Sinatra has ended his set (crowd applauds)
[2009-11-05 10:28:28] INFO  going to shutdown ...
[2009-11-05 10:28:28] INFO  WEBrick::HTTPServer#start done.

D:\Apache2.2\htdocs\ruby_prg\em_ruby19\em_browser>

よろしくお願いします。

Ruby1.8.8devは、使わないほうがいいでしょうか?
あわせて、ご指導いただければ、助かります。




[ruby-list:46518] Re: Ruby1.8.8devでのsinatra動作について

by Kazuhiro NISHIYAMA :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

西山和広です。

At Thu, 5 Nov 2009 10:35:37 +0900,
前川 映一 wrote:
>
> D:/Ruby/lib/ruby/gems/1.8/gems/sinatra-0.9.4/lib/sinatra/base.rb:807:in
> `compile': undefined method `[]' for nil:NilClass (NoMethodError)
>         from D:/Ruby/lib/ruby/gems/1.8/gems/sinatra-0.9.4
> /lib/sinatra/base.rb:799:in `gsub'
>         from D:/Ruby/lib/ruby/gems/1.8/gems/sinatra-0.9.4
> /lib/sinatra/base.rb:799:in `compile'

このあたりの挙動の違いを調べてみたところ、whenでの*による配列の展開が
おかしくなっているように見えます。

% cat a.rb
special_chars = %w{. + ( )}
case '.'
when *special_chars
  p :expected
else
  p :unexpected
end
% ruby1.8 -v a.rb
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
:expected
% ruby18 -v a.rb
ruby 1.8.8dev (2009-10-31 revision 25583) [x86_64-linux]
:unexpected
% ruby-trunk -v a.rb
ruby 1.9.2dev (2009-10-29 trunk 25559) [x86_64-linux]
:expected
%

> Ruby1.8.8devは、使わないほうがいいでしょうか?
> あわせて、ご指導いただければ、助かります。

個人的には開発環境で動作確認対象の1つとして使うとか、
リリースされるまで1.8.8devを追いかけ続けるのが問題に
ならない環境とかで使うのならいいのではないかと思います。


--
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)


[ruby-list:46519] Re: Ruby1.8.8devでのsinatra動作について

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

西山さん ありがとうございました。


> 個人的には開発環境で動作確認対象の1つとして使うとか、
> リリースされるまで1.8.8devを追いかけ続けるのが問題に
> ならない環境とかで使うのならいいのではないかと思います。

1.8.8devは、動作確認のみにとどめることにします。

> % ruby1.8 -v a.rb
> ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
> :expected
> % ruby18 -v a.rb
> ruby 1.8.8dev (2009-10-31 revision 25583) [x86_64-linux]
> :unexpected
> % ruby-trunk -v a.rb
> ruby 1.9.2dev (2009-10-29 trunk 25559) [x86_64-linux]
> :expected
> %

1.8.8devのみ、unexpectedですね。
1.9.2devでも正常に動作しました。

D:\Apache2.2\htdocs\ruby_prg\em_ruby19\em_browser>ruby hello.rb
== Sinatra/0.9.4 has taken the stage on 4567 for development with backup
from WEBrick
[2009-11-05 11:39:50] INFO  WEBrick 1.3.1
[2009-11-05 11:39:50] INFO  ruby 1.9.2 (2009-07-18) [i386-mswin32]
[2009-11-05 11:39:50] INFO  WEBrick::HTTPServer#start: pid=736 port=4567
127.0.0.1 - - [05/Nov/2009 11:41:26] "GET / HTTP/1.1" 200 13 0.0000
localhost - - [05/Nov/2009:11:41:25 東京 (標準時)] "GET / HTTP/1.1" 200 13
- -> /
[2009-11-05 11:41:33] ERROR Errno::ECONNRESET: 既存の接続はリモート ホスト
に強制的に切断されました。
        D:/Ruby/lib/ruby/1.9.1/webrick/httpserver.rb:56:in `eof?'
        D:/Ruby/lib/ruby/1.9.1/webrick/httpserver.rb:56:in `run'
        D:/Ruby/lib/ruby/1.9.1/webrick/server.rb:183:in `block in
start_thread'

== Sinatra has ended his set (crowd applauds)
[2009-11-05 11:41:53] INFO  going to shutdown ...
[2009-11-05 11:41:53] INFO  WEBrick::HTTPServer#start done.

D:\Apache2.2\htdocs\ruby_prg\em_ruby19\em_browser>ruby -v
ruby 1.9.2dev (2009-07-18) [i386-mswin32]

ruby1.8.8devそのものの問題で、sinatraではないのですね。

ありがとうございました。<m(_ _)m>





[ruby-list:46520] Re: Ruby1.8.8devでのsinatra動作について

by NARUSE, Yui-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

成瀬です。

2009/11/05 11:44, 前川 映一 wrote:
>> ruby 1.8.8dev (2009-10-31 revision 25583) [x86_64-linux]
>> :unexpected
> ruby1.8.8devそのものの問題で、sinatraではないのですね。

はい、ruby1.8.8dev の問題でした。
r25658 で修正しました、報告ありがとうございました。

--
NARUSE, Yui  <naruse@...>


[ruby-list:46521] Re: Ruby1.8.8devでのsinatra動作について

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

下記に関連して、
windows版のRuby1.8.8devを探しているのですが、
http://core.ring.gr.jp/archives/lang/ruby/binaries/mswin32/
でも見つかりません。
ruby1.8.8devは、どこで入手可能か、ご存知でしたら、ご教示ください。
(恥ずかしい話ですが、ダウンロードしたページを控えるのを、忘れてしまいまし
た。)
よろしくお願いします。


"NARUSE, Yui" <naruse@...> wrote on 2009/11/05 12:13:18:

> 成瀬です。

> 2009/11/05 11:44, 前川 映一 wrote:
> >> ruby 1.8.8dev (2009-10-31 revision 25583) [x86_64-linux]
> >> :unexpected
> > ruby1.8.8devそのものの問題で、sinatraではないのですね。

> はい、ruby1.8.8dev の問題でした。
> r25658 で修正しました、報告ありがとうございました。



[ruby-list:46522] Re: Ruby1.8.8devでのsinatra動作について

by NARUSE, Yui-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

成瀬です。

2009/11/05 13:34, 前川 映一 wrote:
> 下記に関連して、
> windows版のRuby1.8.8devを探しているのですが、
> http://core.ring.gr.jp/archives/lang/ruby/binaries/mswin32/
> でも見つかりません。
> ruby1.8.8devは、どこで入手可能か、ご存知でしたら、ご教示ください。
> (恥ずかしい話ですが、ダウンロードしたページを控えるのを、忘れてしまいまし
> た。)
> よろしくお願いします。

開発版は公式には配布していません。

基本的にはソースコードから自分で作るもので、
以前はたまたま誰かが作ったのを入手したのでしょう。

使ってバグを見つけてくださるのはありがたいのですが、
基本的にはソースコードから自分でビルドできる人向けになりますね。

--
NARUSE, Yui  <naruse@...>


[ruby-list:46523] Re: Ruby1.8.8devでのsinatra動作について

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

成瀬さん

ありがとうございました。
了解しました。

"NARUSE, Yui" <naruse@...> wrote on 2009/11/05 14:17:23:

> 成瀬です。


> 開発版は公式には配布していません。

> 基本的にはソースコードから自分で作るもので、
> 以前はたまたま誰かが作ったのを入手したのでしょう。

> 使ってバグを見つけてくださるのはありがたいのですが、
> 基本的にはソースコードから自分でビルドできる人向けになりますね。